效能測試分析思路(未完待續)
一.效能測試步驟
二.效能測試通過標準
吞吐量:
響應時間:90%小於200ms
失敗率:<0.01%
cpu使用率:<80%
三.效能測試指標和監控
業務效能指標
吞吐量,響應時間,失敗率
1.吞吐量
以jmeter工具為例,每次執行完效能測試之後可以通過聚合報告裡面看到吞吐量,
圖1
在這份報告裡面throughput也就是吞吐量(tps),一般情況下我們不可能執行一次就能夠得到最大吞吐量,我們一般採用二分增加,如對執行緒數20、40、80、160,當發現增大後降低,再對該區間二分嘗試,最後對拐點附近精細嘗試得到最大吞吐量;那麼我們如何得到理想的tps呢?當我們得到了最大的tps,那麼這種情況下是否就可以任務效能滿足了呢?
這裡有兩種方法可供參考:
1.1.這裡面涉及到使用者訪問量(pv)和tps的一個對應關係,一般我們會從運維那裡得到整個系統在一天pv的一個趨勢圖,按小時進行統計可以看到24個小時裡面pv的趨勢,我們取其中最大的值換算成每秒最大pv,看tps是否大於日最高pv數;
1.2.二八原則:指80%的業務量在20%的時間裡完成
如何理解,下面我們來個例子吧
使用者登入場景:早高峰時段,8:50---9:10,5000坐席上線登陸。
業務量:5000個
時間:20x60=1200秒
吞吐量=80%x業務量/(20%*時間)=4000/240=16.7/秒
而並非5000/1200=4.1/秒
實際上,登入請求數分佈是一個正態分佈,最高峰時肯定比4.1/秒更高,高峰段實際上完成了80%的業務量,卻只花了20%的時間,二八原則計算的結果並非在線併發使用者數,是系統要達到的處理能力(吞吐量),初學者容易被誤導,那這這個資料就去設定併發數,這是錯誤滴。
基於以上,如果我們通過計算得到了系統最大的吞吐量,當我們通過壓測,得到的吞吐量大於計算出來的吞吐量,那麼系統系統就是安全的;
另外一點,由於在這裡可以看到tps的值,但是看不到tps的變化趨勢,不過jmeter裡面提供了這項功能,右鍵執行緒組-新增-監聽器-圖形結果,這裡可以檢視tps的趨勢;
2.響應時間
在圖1的第3-7列依次表示的是平均響應時間、50%使用者響應時間、90%使用者響應時間,最小最大響應時間;
一般我們在測試的過程中
3.失敗率
資源效能指標
1.如何分析cpu
通過top命令:
顯示出來的指標有很多,主要關注的指標有load average(參考:cpu中的load average),%us,%sy
load average顯示的是最近1分鐘、5分鐘和15分鐘的系統平均負載。評估系統性能時,不僅僅看load average的數值,而且應該結合系統的CPU核數(top命令下按1可以顯示出有幾個cpu核),系統的負載均值是基於核心的數量決定的,例如該伺服器有24核,則單核的CPU負載為7/24。
依據經驗分析,單核CPU負載<2時,系統性能是良好的,當單核CPU負載>5時,那麼就表明這個機器存在嚴重的效能問題。
如果CPU在滿負荷執行,應該符合下列分佈,
a) User Time:65%~70%
b) System Time:30%~35%
2.如何分析記憶體
3.如何分析網路
4.如何分析IO
5.資料庫負載
三.效能測試分析
四.
參考文章:
http://blog.csdn.net/musen518/article/details/50441473