如何正確配置jmeter的分佈式壓測,避免踩坑

一、問題背景

當有些項目的用戶數比較大的時候,我們進行壓測的時候也需要較大的併發,而單臺服務器的能夠發送的併發量畢竟是有限的,那如何增加併發量呢?


二、解決方法

利用jmeter的分佈式壓測,jmeter爲了提升併發量,支持分佈式壓測,1臺master,多臺salve,一般來說,master只做統計收集、下發腳本的工作,而不作爲施壓機,主要是出於性能考慮。
Linux下安裝jmeter簡單,直接把jmeter上傳到Linux服務器(服務器上只需要安裝好java即可)。進入apache-jmeter的bin目錄下,更改jmeter爲可執行權限。即安裝成功。
在其他多臺機器上按照同樣的方法部署好jmeter。


三、舉例說明

下面具體舉例說明,

現在假設,壓力機共4臺,10.151.71.185、10.151.71.186、10.151.71.187、10.151.71.192
其中10.151.71.185同時作爲master,其他3臺只做slaver。

1、在作爲slaver的機器上運行jmeter-server;
上面4臺按照安裝的步驟,同時把jmeter安裝在同一個目錄/home後,進入bin目錄,修改3臺slaver機器下的jmeter-server爲可執行,並執行./jmeter-server。執行成功後顯示如下:

0 .jpeg

2、上傳壓測腳本和外部讀取的csv文件;
只需要上傳UDPtest.jmx腳本到master服務器,節點機不需要上傳,壓測腳本自動會發到slaver試壓機上;但是,如果腳本中涉及從外部讀取的csv文件,那該文件就需要上傳到各個slaver施壓機上。
3、在master機器上修改remote_hosts;
進入到master 185這臺服務器的jmeter的bin目錄下,修改jmeter.properties。修改如下,添加各個slaver節點機的ip,默認通信端口爲1099;

1.jpeg

上述方法是寫死了各個slaver機器ip到配置文件中,若想動態的挑選其中部分壓測機,可以採用命令行選項的方式,即在master機器運行命令的時候添加 -R ip:port,ip:port的方法;
4、在master 運行腳本;
發起壓測,在master機器上進入jmeter的bin目錄下,執行如下命令:./jmeter –n –r –t /home/UDPtest.jmx
要提前結束需要ctrl+c,若要重新啓動分佈式壓測,需要在各個slaver上啓動./jmeter-server。然後再master上重新執行步驟4即可。


【友情提示】

A、若是腳本中設置的併發線程數是100,採用3臺slaver機器去施加壓力,那麼對於服務端來說,此時的併發線程數是300。
B、爲了減少出錯的可能性,最好按照如下Jmeter 分佈式要求:
1、各個機器在相同目錄下安裝相同版本的jdk;
2、各個機器在相同的目錄下安裝相同版本的jmeter;
3、配置/etc/hosts的IP和hostname的映射。
4、修改各個機器的jmeter的默認內存參數,從512m調整爲合適大小。

以上就是jmeter的分佈式壓測的實踐中具體配置和小結提示,大家可以收藏。


更多工作中的測試技能幹貨,大家可以關注微信公衆號<大話性能>,會持續不斷分享,更多測試好文章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章