jmeter(二十七)分布式壓測注意事項


之前的博客:jemter(二十三):分布式測試簡略的介紹了利用jmeter做分布式測試的方法,當時只是介紹了背景和原因,以及基本的配置操作,有同學說寫得不夠詳細。

正好今年雙十一,我司的全鏈路壓測,也嘗試了jmeter分布式壓測的手段。這篇博客,介紹下利用jmeter在NGUI模式下進行分布式壓測的一些小技巧和注意事項。

 

一、壓測機

1、數量&成本

無論是從成本角度還是維護的難易方面,壓測機的數量,適量就好。

舉個例子,8C16G的一台服務器,部署jmeter后,根據我個人的測試比對數據,配置≤1500個線程數,最好。太多了性能損耗較大,延時高;太少了又浪費。

2、controller&agent

模擬的並發線程數超過5K,我個人建議留出一台做專門的controller機器,主要是避免agent機器數據上報帶來的影響(如果有其他的數據存儲+可視化服務,可以忽略)。

3、服務授權

如果壓測啟動和服務配置都是root權限,那么在linux環境下,需要給jmeter和jmeter-server授權,命令為 chmod 777 jmeter ,授權后,顯示如下:

 

二、服務通信

1、網絡

所有的壓測機和被測服務,最好在同一個網段內,盡可能減少時延問題(如果不在同一個網段,就需要找運維建立專門的網絡通道,這個很浪費)。

2、端口

在分布式壓測配置時,需要在controller機器的jmeter.properties文件中配置agent機器的IP+端口,默認端口1099,如果該端口沒有被占用,則無需配置端口信息,比如:

3、內網和公網

如果壓測機在內網,而訪問的請求地址(現在都是統一的網關域名)在外網,就要注意一點:內網到公網一般是有帶寬限制的,最好在壓測開始前和運維確認。

 

三、數據切割

壓測時候需要用到參數化數據,有些業務場景是需要先登錄再進行操作的,或者某些數據具有唯一屬性。

在分布式壓測時候,需要注意,進行均勻的數據切割,確保每個請求的入參請求都是唯一的(可共用的參數不用切割)。

其實,在參數化數據准備階段,就應該考慮到這個問題,數據的可用性、唯一性以及數量級。

 

四、服務啟動

壓測機到位,服務授權配置好了,腳本也寫好了,網絡也沒問題,那么如何在NGUI模式(即linux環境)下啟動呢?

1、以服務形式啟動agent機

網上很多其他博客都寫着利用命令 ./jmeter-server 啟動壓測服務,但這樣有個缺點,只要服務連接中斷,這個壓測服務就不可用了。

但是以后台服務的形式啟動agent機器的jemter-server,就不用擔心服務不可用的問題,命令為 nohup sh jmeter-server & ,示意如下:

PS:注意,輸入如上命令后,需要回車兩次,然后通過命令,即可查看服務是否啟動成功。

2、壓測啟動的2種方式

①、指定壓測機啟動,命令: ./jmeter -n -t /path/test.jmx -R 127.0.0.1,127.0.0.2 

②、啟動所有壓測機,命令: ./jmeter -n -t /path/test.jmx -r ,示意如下:

3、更多命令

Apache-Jmeter-用戶手冊:命令行選項列表

 

以上,就是jmeter分布式壓測相關的一些容易踩坑的地方,僅供參考。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM