壓測全稱爲壓力測試,是確立系統穩定性的一種測試方法,通常在系統正常運作範圍之外進行,以考察其功能極限和隱患。
在開發接口或者功能點完成後,就需要對接口或功能點壓力測試,測試出接口的極限以應對較大併發,舉一個最直接的例子:淘寶雙十一購物節,2018年淘寶交易創建峯值達到49.1萬筆/秒,而在雙十一之前淘寶都要對系統進行壓測,看是否能夠抗住每年創新高的併發!
大白話:不停地請求服務的接口,設置每秒的請求量以及持續時間,看看什麼時候服務開始處理失敗,從而得出服務的性能指標。
文章目錄
簡單認識壓測(的目的)
介紹壓測平臺應該有哪些能力
一、壓測目的
挖掘系統瓶頸點
cpu計算能力
業務代碼(頻繁full gc等)
DB性能
線程模型
帶寬等
建立性能基線
qps (request per second)
rt (response time)
用於線上擴容策略配置等
優化系統性能
配置DB主從
jvm參數優化
緩存改造
線程模型改造等
二、壓測平臺應該具備的能力
1.壓測場景
rpc場景(一般爲壓測單個服務的性能)
回放錄製的流量
自定義的流量
http場景(一般爲全鏈路壓測)
回放錄製的流量
自定義的流量
2.數據(準備數據用於壓測的時候使用)
錄製任務
http請求的錄製
rpc請求的錄製
3.壓測參數配置
壓測類型
普通壓測(普通循環播放流量)
調試(單次流量播放,一般用於調試鏈路是否接通)
遞增(設置壓測的多個階段,每個階段配置不同的qps以及持續時長)
配置
變量配置(單是流量錄製是不夠的,特殊的接口(比如關注行爲)需要變化請求的參數,因此需要支持變量配置)
自增變量
設置起止值
設置步長
文件變量
讀取變量列
時間變量
對當前毫秒戳做加減操作
計算變量
uuid
區間random
預定義變量(就是寫死一個值)
請求配置
指定配置好的變量
指定接口與方法/url
指定機器
超時時間
變量
壓測配置
初始qps
期望最大qps
詞表配置
循環回放流量錄製中的流量
資源隔離
DB隔離
緩存隔離
MQ隔離
靜默期(那個時間段不可以進行壓測)
4.保護策略(配置不同的監控項以及異常的處理策略:比如停止壓測或者降低壓測流量等)
db保護策略
告警之後自動降低指定的qps或者停止壓測
配置db的告警閾值
機器保護策略
監控cpu gc 內存等等等等
降低qps或者停止
服務保護策略
監測請求的響應情況
降低qps或者停止
5.監控(配置不同的監控項用於判斷性能瓶頸)
客戶端響應情況監控
qps
rt
錯誤率
服務端監控
cpu
線程池
服務接口等待隊列大小等
業務日誌
機器
三、壓測報告
需要輸出壓測報告用於分析和記錄
各個監控項的指標
壓測結果的指標
等等
今天大家簡單介紹了一些關於壓測的知識點,這些都是在實際項目生命週期中需要用到的知識點,文章開頭已經講過壓測的重要性,希望大家能有所瞭解並掌握!
歡迎大家評論區交流
本文分享自微信公衆號 - 豬哥Java(pig-python)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。