天天看點

業務系統 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的,需要及時停止施壓并分析目标系統為何會出現異常

繼續閱讀