性能测试指标(一)
介紹性能測試的教程和文章比較多,總結性能測試的指標為多、快、好、省。
- 多:并發數量
- 快:延時,響應時間
- 好:長時間運行
- 省:資源使用率
在介紹吞吐量直接先從幾個大家熟知的概念說起,
1.響應時間
響應時間為各個時間段往返時間之和。包括:用戶客戶端呈現時間,請求/響應數據網絡傳輸時間,應用處理服務器處理時間,數據庫系統處理時間。如果是Web系統,接受的時間為2/5/8原則。
2.并發用戶數
所謂的用戶數有三種類型,分別是:
所謂的并發也有兩種類型,嚴格并發和廣義并發:
- 嚴格并發:所有用戶在同一時間做同一件時間,如同一時間點擊同一個button
- 廣義并發:同一時間做不同的事情,比如用戶userA做查詢,userB做下單,userC支付
在確認并發用戶之前,必須先對業務場景進行分析,得出最典型的業務場景,然后基于該場景獲得并發用戶數。
常見場景:訪問網站首頁,登錄功能,核心業務功能,個人中心
平均并發用戶數計算:
并發用戶數的峰值:
例如一個業務系統,該系統有30k個用戶,平均每天大約有500個用戶訪問改系統,對于一個典型的用戶來說,一天有8小時訪問該系統,且從登錄到退出的平均時間為5h
當然這個是估算值且基于一定的用戶訪問。如果是新增一個系統,此時沒有任何登錄用戶數據如何估算呢?可以估計為系統用戶數*(5%-20%)
有了上面的概念之后介紹一下吞吐量
3.吞吐量
一個系統的吞度量(承壓能力)與request對CPU的消耗、外部接口、IO等等緊密關聯。單個reqeust 對CPU消耗越高,外部系統接口、IO影響速度越慢,系統吞吐能力越低,反之越高。因此可以從以下幾個角度理解吞吐量:
- 性能測試:單位時間內系統能處理的用戶請求量
- 業務角度:請求數/秒,處理業務數/h,頁面數/秒等方面
- 網絡傳輸:byte/s
系統吞吐量幾個重要參數:QPS(TPS)、并發數、響應時間
- QPS(TPS):每秒鐘request/事務 數量
- 并發數: 系統同時處理的request/事務數
- 響應時間: 一般取平均響應時間
3.1 TPS
TPS 即Transactions Per Second的縮寫,每秒處理的事務數目。一個事務是指一個用戶向服務器發送請求然后服務器做出反應的過程**(完整處理,即客戶端發起請求到得到響應)**。用戶在發送請求時開始計時,收到服務器響應后結束計時,以此來計算使用的時間和完成的事務個數,最終利用這些信息作出的評估分。一個事務可能對應多個請求,可以參考下數據庫的事務操作
3.2 QPS
QPS 即Queries Per Second的縮寫,每秒能處理查詢數目(完整處理,即客戶端發起請求到得到響應,比如get請求)。是一臺服務器每秒能夠相應的查詢次數,是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標準。
從它的英文全名可以得出它是查詢意思,原來在因特網上,作為域名系統服務器的機器的性能經常用每秒查詢率來衡量。對應fetches/sec,即每秒的響應請求數。 雖然名義上是查詢的意思,但實際上,現在習慣于對單一接口服務的處理能力用QPS進行表述(即使它并不是查詢操作)
3.3平均處理時間
RT:響應時間,處理一次請求所需要的平均處理時間。通常情況下一般還會關注**90%**請求的的平均處理時間,因為可能因網絡情況出現極端情況。
這幾個參數之間的關系:
QPS = 并發數/平均響應時間
并發量 = QPS * 平均響應時間
4拐點
通過模擬人為真實場景下,不斷按階梯比例增加并發用戶數,直到系統性能曲線出現拐點,這個拐點就是我們經常提及的性能瓶頸處。那究竟什么是性能測試曲線的拐點,性能測試曲線拐點是對性能測試結果的分析,“拐點分析"方法是一種利用性能計數器曲線圖上的拐點進行性能分析的方法。
由于在測試性能之前并不知道當前系統能承受的并發請求量有多大,因此查詢拐點是一個摸索的過程。拐點分析法的基本思想就是性能產生瓶頸的現象,主要原因就是某個資源(如內存,cpu,網絡等)的使用達到了極限,此時表現為隨著并發用戶壓力的增大,系統性能卻出現急劇下降,這樣就產生了"拐點"現象。當得到"拐點"附近的資源使用情況時,就能定位出系統的性能瓶頸。舉個簡單的例子,比如系統隨著用戶的增多,事務響應時間緩慢增加,當用戶數達到100k個虛擬用戶時,系統響應時間急劇增加,表現為一個明顯的"折線”,這就說明了系統承載不了如此多的用戶做這個事務,也就是存在性能瓶頸。要判斷系統能否滿足現狀,滿足不了就需要繼續進行系統調優。
對于容量測試尋找性能拐點可以使用二分逼近法,容量測試的拐點是非常明確地,在拐點上下的性能有明顯的區別。只是容量測試的間距一開始注意取得大一些。但是對于并發測試而言,拐點是不太明晰的,所以第一次找到拐點的時候最好做二到三次的確認。
總結
- 上一篇: linux之awk命令解读
- 下一篇: Jemeter对HTTP接口压测(二)