在使用Jmeter進行接口的性能測試時,因爲Jmeter 是JAVA應用,對負載機的CPU和內存消耗比較大。因此當須要模擬數以萬計的併發用戶時,可能會致使單臺負載自己扛不住,出現的瓶頸。爲了解決以上的問題,Jmeter提供的分佈式功能,同時啓動多臺電腦進行分佈式測試。html
一、在進行壓測的過程當中若是出現Jmeter未響應,卡住,反應慢等現象。隨即啓動任務管理器進行查看,若是cup和內存都特別大。就能夠說明如今的負載機出現了瓶頸,須要進行分佈式測試。java
二、隨着併發數的增加,TPS再也不增加,即出現瓶頸(排除服務器瓶頸及其餘)。多是如今的負載機出現了瓶頸,須要進行分佈式測試。服務器
三、在進行壓測的過程當中出現錯誤,如Unrecognized Windows Sockets error: 0: recv failed。多是如今的負載機出現了瓶頸,須要進行分佈式測試。併發
一、Jmeter分佈式測試時,選擇其中一臺做爲調度機(master),其它機器作爲執行機(slave)。 分佈式
二、執行時:master會把腳本發送到每臺slave上,slave拿到腳本後開始執行,slave執行時不須要啓動Jmeter。只須要把jmeter-server.bat文件打開,它會自動經過非GUI模式來執行。(注意:若是引用到csv等外部的文件,則每臺slaver所在的機器都須要相應位置放置該文件。)性能
三、執行後:slave會把結果回傳給master,master會收集全部slave的信息並彙總。測試
一、slave機上須要安裝JDK、Jmeter。而且配置好環境變量。spa
二、打開Jmeter/bin/jmeter.properties,找到」remote_hosts=127.0.0.1」,把這一行修改成」remote_hosts=192.168.11.14:1099,1099是端口號(本人使用的是3.3的版本,能夠不用寫端口號,Jmeter會自動識別)。.net
三、打開jmeter-server.bat文件,就設置完成了,等待控制機(Controller)啓動。3d
一、Controller機上須要安裝JDK、Jmeter。而且配置好環境變量。
二、打開jmeter-server.bat文件,就設置完成了,等待控制機(Controller)啓動。
三、打開Jmeter/bin/jmeter.properties,找到」remote_hosts=127.0.0.1」,把這一行修改成」remote_hosts=192.168.8.149:1099,192.168.8.174:1099,1099是端口號(本人使用的是3.3的版本,能夠不用寫端口號,jmeter會自動識別)。
(此處寫的是執行機的ip),若是有多臺代理機,這裏須要把全部的代理機的IP地址都加入進來。
四、打開jmeter-server.bat文件,設置完成了。
以訪問百度爲例:
一、JMeter 的 Controller 和 Agent 之間進行通信的默認 RMI
二、master和slave機中的jmeter版本必須一致(小版本也得一致)。
三、java的版本也得一致,不能一個java7一個java8(只要大版本一致便可)
四、單個運行某個執行機的IP時,若是提示錯誤:Engine is busy - please try later。
或者提示: Connection refused to host: 192.168.11.14; nested exception is:
java.net.ConnectException: Connection timed out: connect
解決方法:
參考:
---------------------------------------------------------------------------------------------------------------------------
https://www.cnblogs.com/fennudexiaoniao/p/6913395.htmlhttps://www.cnblogs.com/fennudexiaoniao/p/6913395.htmlhttps://www.cnblogs.com/whitewasher/p/6946207.html