記一次近期的性能項目,負載測試尋找TPS拐點的過程。由於環境限制,本次並沒有進行壓力測試、極限測試、穩定性測試。
按照步驟梳理如下:
1、通過跳板機登錄到服務器(mac的跳板機和termius配置,后續整理),啟動每個負載機的jmeter-server
2、啟動被測集群中,每個服務器上的serverAgent,用以收集服務端的CPU、內存、network I/O
3、基准測試
只用一台負載機,循環跑1000次,得到平均響應時間,作為基准RT。
4、小並發找拐點
因為目的是找系統處理能力飽和時的拐點,所以采用小並發逐漸增加線程數的方式。先用50個線程,無限循環,執行一段時間,記錄RT和TPS;再用100,150,觀察數據的大小,可在中間加些采樣點。根據自己的服務不同,探索值要嘗試很多次,這也是最耗時的地方,對於得到的拐點值,也要多跑幾次,驗證准確性。
得到的一組數據:
5、根據分析出的拐點值,考察下此並發數時的服務端性能,看是否達到飽和狀態。這里通過linux自身的top快照,和perfmon的數據指標圖一起驗證。
top快照如下,CPU折算為約81%(4核):
perfmon圖如下內存穩定在27%,CPU穩定在80%,network I/O折算后為3.05M/s:
再看下負載機的性能曲線,內存為20%,CPU在最初達到80%,后續負載穩定后,降到20%,network I/O折算后為9.45M/s(master機收集被測集群中3台服務器的指標,與上面的數據能夠對應):
6、此時一個接口的拐點指標就找到了。如果環境支持,需要用大並發來找到系統支持的最大並發數,即響應時間90分位值小於閾值的點。
7、利用最大並大數,做壓力測試,執行半小時看下效果。
8、80%最大並發數,進行穩定性測試,至少壓4小時。