壓測--完善個人測試體系重要的一環(待完善)

目錄

 

一、壓測是個啥?爲啥要壓測?

二、壓測方案設計

1、壓力場景

2、壓測方案設計關注點

3、涉及到的知識點:

三、壓測執行

四、壓測報告關注點


一、壓測是個啥?爲啥要壓測?

壓測的目的是爲了觀察當前系統的負載能力,考察系統高負載的穩定性。

  • 給出系統當前的性能狀況
  • 定位系統性能瓶頸或潛在性能瓶頸

題外話:壓測經常和負載測試讓人分不清楚,從一篇博客看到一句說的很明白的話:

負載測試就是不斷增加壓力,進行測試。壓力測試就是最大負載下的測試。
 

負載測試是通過改變系統負載方式、增加負載等來發現系統中所存在的性能問題。負載測試是一種測試方法,可以爲性能測試、壓力測試所採用,負載測試的加載方式也有很多種,可以根據測試需要來選擇。

  • 性能測試是爲獲取或驗證系統性能指標而進行測試,多數情況下,性能測試會在不同負載情況下進行。
  • 壓力測試通常是在高負載情況下來對系統的穩定性進行測試,更有效地發現系統穩定性的隱患和系統在負載峯值的條件下功能隱患等。

 

二、壓測方案設計

1、壓力場景

壓測包括兩種場景:

一種是單場景只壓一個接口的;第二種是混合場景,多個有關聯的接口。

2、壓測方案設計關注點

1、調研下游接口和基礎組件的負載能力,查看調用次數,確定人員和接口是否可以承受;
2、梳理下游接口的時候,整理出具體調的服務和次數;
3、確認是否有緩存,預估每個服務的QPS;
4、設計方案時候,預估風險;
5、壓測前測試時需要通過鏈路驗證,確定是否漏掉部分服務;
6、數據量大的時候,考慮壓測是否對線上真實數據有影響,比如寫數據庫,用影子緩存,如果只是讀,可以考慮直接用線上數據;
7、在壓測中考慮是否回放,具體和緩存的失效時間也都有關;
8、報警需要把無關的mock掉,否則干擾定位問題;

3、涉及到的知識點:

1.TP指標&QPS(TPS)

TP指標: TP50:指在一個時間段內(如5分鐘),統計該方法每次調用所消耗的時間,並將這些時間按從小到大的順序進行排序,取第50%的那個值作爲TP50 值;配置此監控指標對應的報警閥值後,需要保證在這個時間段內該方法所有調用的消耗時間至少有50%的值要小於此閥值,否則系統將會報警。

需要指出的是,響應時間的絕對值並不能直接反映軟件的性能的高低,軟件性能的高低實際上取決於用戶對該響應時間的接受程度。對於一個遊戲軟件來說,響應時間小於100毫秒應該是不錯的,響應時間在1秒左右可能屬於勉強可以接受,如果響應時間達到3秒就完全難以接受了。而對於編譯系統來說,完整編譯一個較大規模軟件的源代碼可能需要幾十分鐘甚至更長時間,但這些響應時間對於用戶來說都是可以接受的。 

TP90,TP99,TP999與TP50值計算方式一致,它們分別代表着對方法的不同性能要求,TP50相對較低,TP90則比較高,TP99,TP999則對方法性能要求很高

這裏麪包含了兩個概念一個是TP指標,一個是QPS。

QPS(TPS):每秒鐘request/事務的數量。比如一秒內只有一個請求,那麼qps=1;如果每秒50,那麼qps=50;


2. 吞吐量(Throughput) 
     吞吐量是指系統在單位時間內處理請求的數量。對於無併發的應用系統而言,吞吐量與響應時間成嚴格的反比關係,實際上此時吞吐量就是響應時間的倒數。前面已經說過,對於單用戶的系統,響應時間(或者系統響應時間和應用延遲時間)可以很好地度量系統的性能,但對於併發系統,通常需要用吞吐量作爲性能指標。 
  對於一個多用戶的系統,如果只有一個用戶使用時系統的平均響應時間是t,當有你n個用戶使用時,每個用戶看到的響應時間通常並不是n×t,而往往比n×t小很多(當然,在某些特殊情況下也可能比n×t大,甚至大很多)。這是因爲處理每個請求需要用到很多資源,由於每個請求的處理過程中有許多不走難以併發執行,這導致在具體的一個時間點,所佔資源往往並不多。也就是說在處理單個請求時,在每個時間點都可能有許多資源被閒置,當處理多個請求時,如果資源配置合理,每個用戶看到的平均響應時間並不隨用戶數的增加而線性增加。實際上,不同系統的平均響應時間隨用戶數增加而增長的速度也不大相同,這也是採用吞吐量來度量併發系統的性能的主要原因。

3. 併發用戶數 
  併發用戶數是指系統可以同時承載的正常使用系統功能的用戶的數量。與吞吐量相比,併發用戶數是一個更直觀但也更籠統的性能指標。實際上,併發用戶數是一個非常不準確的指標,因爲用戶不同的使用模式會導致不同用戶在單位時間發出不同數量的請求。對於網站系統我們會有三個關於用戶數的統計數字:註冊用戶數、在線用戶數和同時發請求用戶數。由於註冊用戶可能長時間不登陸網站,使用註冊用戶數作爲性能指標會造成很大的誤差。而在線用戶數和同事發請求用戶數都可以作爲性能指標。相比而言,以在線用戶作爲性能指標更直觀些,而以同時發請求用戶數作爲性能指標更準確些。 
 

三、壓測執行

生成報告:

  1. 本次壓測的要求指標,性能要求
  2. 本次壓測的機器性能
  3. 本次壓測的各項各項指標
  4. 本次壓測的報告結果分析
  5. 壓測報告建議
  6. 壓測報告等級

四、壓測報告關注點

1、壓測報告怎麼看?

行業經驗:對於遊戲行業而言,對於性能的要求是非常高的,響應和延遲是其中最爲重要的指標。其性能底線往往是要求90%用戶的響應時間是在1秒內,對於2-3秒的用戶響應只有一些非常小點擊率的請求時纔會適當允許!   對於一般的商業系統,性能不錯的在1~2秒作用,3~5秒則稍微難以接受。

這個性能指標是指90%的用戶響應秒數。

Min:最小響應時間

Max:最大響應時間

TP90,TP99,TP999等:例如,TP90代表的是90%請求的響應時間

Average :每個請求的平均響應時間

Median :中值,即50%請求的平均響應時間

Samples :各個測試的樣本總數 ,也即是說線程數*循環次數,

Error%:本次測試中出現錯誤的請求的數量/請求的總數

KB/Sec:每秒從服務器端接收到的數據量,相當於LoadRunner中的Throughput/Sec

當併發在多少(線程數)的時候,每秒的TPS是多少,每秒的查詢率QPS是多少QPS;當前系統90%Line用戶的響應時間是多少,最長的響應時間是多少Max,最快的響應時間是多少MIN。壓測中出現多少錯誤率Error,與目標允許的容錯率xxxx 不符合/符合。

壓測的結果一般情況可以通過吞吐量與併發數的比例來觀察,吞吐量與併發數呈正相關關係,在一定併發數的情況下,吞吐量越高,說明系統性能越好!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章