一.系統吞度量要素:
乙個系統的吞度量(承壓能力)與request對cpu的消耗、外部介面、io等等緊密關聯。
單個reqeust 對cpu消耗越高,外部系統介面、io影響速度越慢,系統吞吐能力越低,反之越高。
系統吞吐量幾個重要引數:qps(tps)、併發數、響應時間
qps(tps):每秒鐘request/事務 數量
併發數:系統同時處理的request/事務數
(很多人經常會把併發數和tps理解混淆)
理解了上面三個要素的意義之後,就能推算出它們之間的關係:
qps(tps)= 併發數/平均響應時間
乙個系統吞吐量通常由qps(tps)、併發數兩個因素決定,每套系統這兩個值都有乙個相對極限值,在應用場景訪問壓力下,只要某一項達到系統最高值,系統的吞吐量就上不去了,如果壓力繼續增大,系統的吞吐量反而會下降,原因是系統超負荷工作,上下文切換、記憶體等等其它消耗導致系統效能下降。
決定系統響應時間要素
我們做專案要排計畫,可以多人同時併發做多項任務,也可以乙個人或者多個人序列工作,始終會有一條關鍵路徑,這條路徑就是專案的工期。
系統一次呼叫的響應時間跟專案計畫一樣,也有一條關鍵路徑,這個關鍵路徑是就是系統影響時間;
關鍵路徑是有cpu運算、io、外部系統響應等等組成。
二.系統吞吐量評估:
我們在做系統設計的時候就需要考慮cpu運算、io、外部系統響應因素造成的影響以及對系統效能的初步預估。
而通常境況下,我們面對需求,我們評估出來的出來qps、併發數之外,還有另外乙個維度:日pv。
通過觀察系統的訪問日誌發現,在使用者量很大的情況下,各個時間週期內的同一時間段的訪問流量幾乎一樣。比如工作日的每天早上。只要能拿到日流量圖和qps我們就可以推算日流量。
通常的技術方法:
1. 找出系統的最高tps和日pv,這兩個要素有相對比較穩定的關係(除了放假、季節性因素影響之外)
2. 通過壓力測試或者經驗預估,得出最高tps,然後跟進1的關係,計算出系統最高的日吞吐量。
一、軟體效能的關注點
對乙個軟體做效能測試時需要關注那些效能呢?
我們想想在軟體設計、部署、使用、維護中一共有哪些角色的參與,然後再考慮這些角色各自關注的效能點是什麼,作為乙個軟體效能測試工程師,我們又該關注什麼?
首先,開發軟體的目的是為了讓使用者使用,我們先站在使用者的角度分析一下,使用者需要關注哪些效能。
對於使用者來說,當點選乙個按鈕、鏈結或發出一條指令開始,到系統把結果已使用者感知的形式展現出來為止,這個過程所消耗的時間是使用者對這個軟體效能的直觀印象。也就是我們所說的響應時間,當相應時間較小時,使用者體驗是很好的,當然使用者體驗的響應時間包括個人主觀因素和客觀響應時間,在設計軟體時,我們就需要考慮到如何更好地結合這兩部分達到使用者最佳的體驗。如:使用者在大資料量查詢時,我們可以將先提取出來的資料展示給使用者,在使用者看的過程中繼續進行資料檢索,這時使用者並不知道我們後台在做什麼。
使用者關注的是使用者操作的相應時間。
其次,我們站在管理員的角度考慮需要關注的效能點。
1、 相應時間
2、 伺服器資源使用情況是否合理
3、 應用伺服器和資料庫資源使用是否合理
4、 系統能否實現擴充套件
5、 系統最多支援多少使用者訪問、系統最大業務處理量是多少
6、 系統效能可能存在的瓶頸在**
7、 更換那些裝置可以提高效能
8、 系統能否支援7×24小時的業務訪問
再次,站在開發(設計)人員角度去考慮。
1、 架構設計是否合理
2、 資料庫設計是否合理
3、 **是否存在效能方面的問題
4、 系統中是否有不合理的記憶體使用方式
5、 系統中是否存在不合理的執行緒同步方式
6、 系統中是否存在不合理的資源競爭
那麼站在效能測試工程師的角度,我們要關注什麼呢?
一句話,我們要關注以上所有的效能點。
二、軟體效能的幾個主要術語
響應時間=n1+n2+n3+n4+a1+a3+a2
2、併發使用者數的計算公式
系統使用者數:系統額定的使用者數量,如乙個oa系統,可能使用該系統的使用者總數是5000個,那麼這個數量,就是系統使用者數。
平均併發使用者數的計算:c=nl / t
其中c是平均的併發使用者數,n是平均每天訪問使用者數(login session),l是一天內使用者從登入到退出的平均時間(login session的平均時間),t是考察時間長度(一天內多長時間有使用者使用系統)
併發使用者數峰值計算:c^約等於c + 3*根號c
其中c^是併發使用者峰值,c是平均併發使用者數,該公式遵循泊松分布理論。
3、吞吐量的計算公式
指單位時間內系統處理使用者的請求數
從業務角度看,吞吐量可以用:請求數/秒、頁面數/秒、人數/天或處理業務數/小時等單位來衡量
從網路角度看,吞吐量可以用:位元組/秒來衡量
對於互動式應用來說,吞吐量指標反映的是伺服器承受的壓力,他能夠說明系統的負載能力
以不同方式表達的吞吐量可以說明不同層次的問題,例如,以位元組數/秒方式可以表示數要受網路基礎設施、伺服器架構、應用伺服器制約等方面的瓶頸;已請求數/秒的方式表示主要是受應用伺服器和應用**的制約體現出的瓶頸。
當沒有遇到效能瓶頸的時候,吞吐量與虛擬使用者數之間存在一定的聯絡,可以採用以下公式計算:f=vu * r /
其中f為吞吐量,vu表示虛擬使用者個數,r表示每個虛擬使用者發出的請求數,t表示效能測試所用的時間
4、效能計數器
是描述伺服器或作業系統效能的一些資料指標,如使用記憶體數、程序時間,在效能測試中發揮著「監控和分析」的作用,尤其是在分析統統可擴充套件性、進行新能瓶頸定位時有著非常關鍵的作用。
資源利用率:指系統各種資源的使用情況,如cpu佔用率為68%,記憶體佔用率為55%,一般使用「資源實際使用/總的資源可用量」形成資源利用率。
5、思考時間的計算公式
think time,從業務角度來看,這個時間指使用者進行操作時每個請求之間的時間間隔,而在做新能測試時,為了模擬這樣的時間間隔,引入了思考時間這個概念,來更加真實的模擬使用者的操作。
在吞吐量這個公式中f=vu * r / t說明吞吐量f是vu數量、每個使用者發出的請求數r和時間t的函式,而其中的r又可以用時間t和使用者思考時間ts來計算:r = t / ts
下面給出乙個計算思考時間的一般步驟:
a、首先計算出系統的併發使用者數
c=nl / t f=r×c
b、統計出系統平均的吞吐量
f=vu * r / t r×c = vu * r / t
c、統計出平均每個使用者發出的請求數量
r=u*c*t/vu
d、根據公式計算出思考時間
ts=t/r
sysbench測試伺服器效能
sysbench目前已經有0.5的版本,不過最普遍使用的依舊是0.4.12,所以接下來我們會以0.4.12這個版本作為測試 step2 執行測試指令碼 請不要直接貼上此指令碼到你機器上執行,除非你知道它在做什麼 root dbserver data cat sysbench all.sh bin b...
如何測試伺服器效能
如何測試伺服器效能?伺服器的穩定性對我們來說是最重要的,如果在效能方面不能夠保證業務執行的需要,那麼相當於白白浪費錢。今天壹基比小七為大家講解從以下角度來進行伺服器效能的測試。穩定性測試 已知系統高峰期使用人數 各事務操作頻率等。設計綜合測試場景,測試時,將每個場景按照一定人數比例一起執行,模擬使用...
sysbench測試伺服器效能
sysbench目前已經有0.5的版本,不過最普遍使用的依舊是0.4.12,所以接下來我們會以0.4.12這個版本作為測試 step2 執行測試指令碼 請不要直接貼上此指令碼到你機器上執行,除非你知道它在做什麼 root dbserver data cat sysbench all.sh bin b...