1、問題背景java
當有些項目的用戶數比較大的時候,咱們進行壓測的時候也須要較大的併發,而單臺服務器的可以發送的併發量畢竟是有限的,那如何增長併發量呢?apache
2、解決方法服務器
利用jmeter的分佈式壓測,jmeter爲了提高併發量,支持分佈式壓測,1臺master,多臺salve,通常來講,master只作統計收集、下發腳本的工做,而不做爲施壓機,主要是出於性能考慮。
Linux下安裝jmeter簡單,直接把jmeter上傳到Linux服務器(服務器上只須要安裝好java便可)。進入apache-jmeter的bin目錄下,更改jmeter爲可執行權限。即安裝成功。
在其餘多臺機器上按照一樣的方法部署好jmeter。微信
3、舉例說明併發
下面具體舉例說明,
分佈式
如今假設,壓力機共4臺,10.151.71.18五、10.151.71.18六、10.151.71.18七、10.151.71.192
其中10.151.71.185同時做爲master,其餘3臺只作slaver。ide
一、在做爲slaver的機器上運行jmeter-server;
上面4臺按照安裝的步驟,同時把jmeter安裝在同一個目錄/home後,進入bin目錄,修改3臺slaver機器下的jmeter-server爲可執行,並執行./jmeter-server。執行成功後顯示以下:性能
二、上傳壓測腳本和外部讀取的csv文件;
只須要上傳UDPtest.jmx腳本到master服務器,節點機不須要上傳,壓測腳本自動會發到slaver試壓機上;可是,若是腳本中涉及從外部讀取的csv文件,那該文件就須要上傳到各個slaver施壓機上。
三、在master機器上修改remote_hosts;
進入到master 185這臺服務器的jmeter的bin目錄下,修改jmeter.properties。修改以下,添加各個slaver節點機的ip,默認通訊端口爲1099;測試
上述方法是寫死了各個slaver機器ip到配置文件中,若想動態的挑選其中部分壓測機,能夠採用命令行選項的方式,即在master機器運行命令的時候添加 -R ip:port,ip:port的方法;
四、在master 運行腳本;
發起壓測,在master機器上進入jmeter的bin目錄下,執行以下命令:./jmeter –n –r –t /home/UDPtest.jmx
要提早結束須要ctrl+c,若要從新啓動分佈式壓測,須要在各個slaver上啓動./jmeter-server。而後再master上從新執行步驟4便可。spa
【友情提示】
A、如果腳本中設置的併發線程數是100,採用3臺slaver機器去施加壓力,那麼對於服務端來講,此時的併發線程數是300。
B、爲了減小出錯的可能性,最好按照以下Jmeter 分佈式要求:
一、各個機器在相同目錄下安裝相同版本的jdk;
二、各個機器在相同的目錄下安裝相同版本的jmeter;
三、配置/etc/hosts的IP和hostname的映射。
四、修改各個機器的jmeter的默認內存參數,從512m調整爲合適大小。
以上就是jmeter的分佈式壓測的實踐中具體配置和小結提示,你們能夠收藏。
更多工做中的測試技能幹貨,你們能夠關注微信公衆號<大話性能>,會持續不斷分享,更多測試好文章