Jmeter分布式


在進行性能測試的時候,隨着壓力的不斷增大,會出現tps的瓶頸。

出現瓶頸,會有兩個原因,1.服務器導致的瓶頸 ,2壓力不夠。

如果是壓力不夠的情況,要么換更好的機器進行壓測,或者多台機器進行分布式壓測。

Jmeter 如何開展分布式?

原理如下:

1.Jmeter分布式壓測時,一台機器作為master,其他的則為slave,master負責請求的分發,slave負責執行。

2.執行時,master會把腳本發送到每台slaver上,slaver 拿到腳本后就開始執行,slaver執行時不需要啟動GUI,如果引用到csv等外部的文件,則每台slaver所在的機器都需要相應位置放置該文件。

3.執行完成后,slaver會把結果回傳給master,master會收集所有slaver的信息並匯總。

這里有一個坑,如果slave 和master是多網卡的機器,master去slave執行的時候,會把網卡中的任意一個網卡ip傳過去,最后slave執行完后,把結果回傳給master,如果這時回傳給master是一個錯誤的ip,則會導致請求超時的情況,導致失敗。

正確步驟如下:

1.啟動slave,在slave機中jmeter-server中

windows 修改RMI_HOST_DEF=-Djava.rmi.server.hostname=10.120.11.82(slave機的ip)

運行jmeter-server,Windows運行jmeter-serve.bat

linux:

 ./jmeter-server -Djava.rmi.server.hostname=10.120.11.82(slave機的ip)

2.啟動master

雙網卡需要注意:master機需要指定自己機器的ip,要不則會出問題。

window:

新增set rmi_host=-Djava.rmi.server.hostname=10.120.11.214(master 的ip)

修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

linux:

新增 rmi_host=“-Djava.rmi.server.hostname=10.120.11.214”(master 的ip)

修改ARGS="$SERVER $DUMP $HEAP $NEW $SURVIVOR $TENURING $PERM $CLASS_UNLOAD $rmi_host"

 修改完了后,開始壓力測試:

windows:

修改jmeter.properties,

remote_hosts=10.120.11.82:1099(更換為slave的ip)

遠程啟動這台機器

linux:

./jmeter -n -t testPlan.jmx  -R 115.28.108.130 -l remote.jtl

linux下運行結果存在remote.jtl中。

 

注意:master和slave機中的jmeter版本必須一致(小版本也得一致)。

java的版本也得一致,不能一個java7一個java8.

 


免責聲明!

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



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