1、錄腳本
cmd 輸入 jmeter 啟動jmeter
添加線程組,添加http代理服務器
打開瀏覽器代理
導入ca證書
證書位置
設置好代理,網頁定位到需要錄制的地方,開始錄制
錄制完,選擇需要的信息,其他刪掉,根據需要添加請求頭、斷言、查看結果樹、聚合報告
添加服務器監聽器
2、線程組設置線程數,500個線程同時跑,一共持續10分鍾,點擊啟動,線程數參考需求
3、結果分析
設置線程數,先設置接近需求的數量,看樣本數量,通過后,設置極限值
主要看以上幾個參數是否符合需求,需求范圍內,錯誤率應為0,響應時間應小於1s
服務器資源占用,配合運維,看內存、網絡、cpu占用是否過多
網絡單位換算:1TB=1024GB、1GB=1024MB、1MB=1024KB、1KB=1024字節
b是比特,是最小單位,B是字節,B=8b,K、M、G、T是1024倍的關系
問題分析:報錯后先看腳本是否有問題,確認腳本沒問題,查看單接口是否有問題
接口調試通過后,如果持續加壓導致的報錯,查看數據庫、內存是否溢出,或者是否cpu、網絡占用過高導致響應緩慢,如果數據庫內存網絡占用都不高,分析是否是清理session機制導致,例如登陸后,重新打開頁面,某些緩存信息會自動清空,這種操作常有,是一種安全保護機制,例如token清空,但是壓測會不停打開頁面,所以會不停的清空再讀取再清空,導致沖突,數據進不到數據庫,但是導致響應慢,可以單壓有問題的接口查看結果並分析
網絡占用過大,分析是代碼問題,cpu和內存占用過高或者不變,同樣分析代碼問題
性能指標問題分析
cpu、內存、數據庫、磁盤、網絡、錯誤請求、響應時間、tps
錯誤率為0
95%響應時間<100ms
tps根據具體需求
性能項 | 資源 | 評價 |
CPU占用率 | 70% | 好 |
85% | 壞 | |
90%+ | 很差 | |
磁盤I/O | <30% | 好 |
<40% | 壞 | |
<50% | 很差 | |
網絡 | <30%帶寬 | 好 |
運行隊列 | <2*CPU數量 | 好 |
內存 | 沒有頁交換 | 好 |
每個CPU每秒10個頁交換 | 壞 | |
更多的頁交換 | 很差 |
tps上不去原因:網絡帶寬、垃圾回收機制、數據庫、硬件資源、壓力機配置、業務邏輯復雜、產生緩存、壓測腳本參數配置
隨着線程數增加,報502和504:服務器承受不住,系統外部服務調接入層方法,接入層業務邏輯采用RPC 同步方式實現,並發大,方法可用率下降,同時調用次數也會急劇上升,導致大量的502錯誤。建議:異步實現並添加緩沖隊列。調整Nginx、服務器配置參數,優化后,綜合考慮TPS和錯誤率,找到服務器能承受的最大壓力值。
2、接口超時原因:網絡慢、執行進程多、接口問題調用的方法多或者代碼邏輯問題,或者調用其他的接口,其他的接口返回慢了