業務系統 Over 阿里雲性能壓測的最佳實踐

業務系統性能壓測的最佳實踐

壓測工具的選擇

目前主流的壓測工具有

  1. ab
  2. Jmeter
  3. 阿里雲PTS

如何來選擇呢,我們建議如果是簡單壓測,可以直接使用ab來進行,它可以通過一條命令來快速的發起指定併發數的請求。但如果需要進行復雜的壓測,建議使用後兩者:

Jmeter是開源的壓測工具,可以實現非常複雜的壓測需求,比如設定一個包含很多URL的場景、配置一個施壓集群來發起壓測測試等等,而阿里雲PTS服務,相較於Jmeter增加了許多獨特的功能,比如:

  1. 施壓流量來自真實CDN節點,最大限度模擬真實流量的路徑
  2. 純SaaS,無需額外安裝和部署
  3. 兼容Jmeter腳本,可以平滑的複用之前的jmx腳本文件
  4. 配置界面所見即所得,對於新手非常友好

所以,我們建議大家根據實際的壓測需求來選擇壓測工具。另外,如果您對PTS感興趣,可以前往PTS控制檯進一步瞭解。


阿里雲上業務壓測流程上的注意事項

施壓前

  1. 對業務系統容量有一個預估,比如QPS、併發用戶量
  2. 確定好壓測時間和壓測環境,儘量不要直接對生產環境壓測,避免影響業務
  3. 若鏈路上存在SLB,建議至少使用4臺施壓機來壓測,施壓機越多,SLB的轉發會越均衡
  4. 合理安排施壓機的壓測能力,若單臺施壓機無法滿足施壓需求,可以構建Jmeter施壓集群或者使用PTS進行壓測
  5. 若鏈路上存在安全模塊,如高防、Web應用防火牆等,建議對施壓機的源IP添加白名單,避免施壓機被安全模塊攔截

施壓中

  1. 密切關注被壓測的模塊的各項監控
  2. 當出現瓶頸時就可以考慮停止或延遲若干分鐘停止壓測,避免產生無效的壓測流量

施壓後

  1. 結合業務數據對施壓結果進行分析,確定系統是否可以達到預期的目標
  2. 出現瓶頸後,需要及時優化業務程序

壓測結果相關

如何判斷目標系統是否出現瓶頸?

判斷瓶頸的方法非常多,比較簡單的方法之一是增加併發用戶數量,查看目標系統的TPS是否同步上漲,如果沒有出現增加,甚至出現了下降,說明業務系統處理每個請求的時間變長,可以近似理解為此時的業務系統就出現了瓶頸。

併發用戶、RPS、TPS如何解讀

名詞的定義千差萬別,但歸根結底的形容都是類似的,以下可以作參考:

併發用戶:施壓機上同時去請求的用戶數量,比如500個併發用戶,配置的施壓目標是串行的兩個URL,那麼施壓過程中,就會有500個客戶端,不停地去請求URL 1和URL 2,用戶之間的請求互不影響,併發的請求,而每個用戶是先請求URL 1,得到結果後在請求URL 2,得到結果後再循環請求URL 1,以此類推。

RPS:在PTS中,RPS被定義為施壓機每秒發出的請求數

TPS:在PTS中,TPS被定義為壓測目標每秒執行的事物數,若目標系統是基於HTTP(S),可以理解為每秒能夠執行多少HTTP請求。

那麼有的同學會問了,TPS和RPS有什麼差別呢?在正常情況下,RPS的數值近似等同於TPS,TPS對於一個系統來說,是恆定的,但只要施壓機性能還夠,RPS還可以提升,只是此時目標系統已經無法處理,可能會出現連接失敗、請求超時等異常的響應,那麼此時,RPS是大於TPS的,需要及時停止施壓並分析目標系統為何會出現異常


分享到:


相關文章: