Jmeter工具使用-分布式架構和服務器性能監控解決方案


 

在對項目做大並發性能測試時,常會碰到並發數比較大(比如需要支持10000並發),單台電腦的配置(CPU和內存)可能無法支持,這時可以使用Jmeter提供的分布式測試的功能來搭建分布式並發環境。

一、Jmeter分布式執行原理

架構示意圖

 

 

 

1、Jmeter分布式測試時,選擇其中一台作為調度機(Master),其它機器作為執行機(Slave)。

2、執行時,Master會把腳本發送到每台Slave上,Slave拿到腳本后就開始執行,Slave執行時不需要啟動GUI,只需要在Slave上執行對應的啟動命令,可以理解它是通過命令行模式執行的。

3、在被監控的Server服務器上安裝性能數據采集插件Agent后,在執行過程中,Agent會把結果實時回傳給Master,Master會收集所有Server的信息並匯總。

二、Jmeter安裝教程

1、JMeter需要JDK環境,所以需要先安裝JDK,安裝教程請看:

http://blog.sina.com.cn/s/blog_6751e16f0101kdwu.html

2、下載JMeter的zip包,下載地址:http://jmeter.apache.org/download_jmeter.cgi

3、這里下載的是apache-jmeter-3.0.zip, 進行解壓

Windows使用工具解壓,例如:D:\Program Files (x86)\apache-jmeter-3.0

Linux使用unzip命令解壓,例如:unzip apache-jmeter-3.0.zip  -d apache-jmeter-3.0 (-d 為指定要解壓到的文件夾名)

4、設置環境變量

Windows:右鍵“我的電腦”-》高級-》環境變量,在“系統變量”中點擊“新建”,在變量名中輸入:JMETER_HOME,變量值中輸入:D:\Program Files (x86)\apache-jmeter-3.0,點擊確定即可,再修改CLASSPATH變量,變量值中添加如下值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;% JMETER_HOME %\bin;  然后點擊確定即可

Linux:不配置環境變量,執行的時候只需要先切換到安裝的目錄

5、檢查jmeter是否安裝OK

Windows:打開cmd命令,輸入jmeter.bat回車,也可以打開Jmeter的目錄,雙擊jmeter.bat文件,如果正常啟動Jmeter GUI界面則說明安裝配置成功

Linux:使用cd命令切換至Jmeter目錄下的bin目錄,然后使用輸入sh jmeter.sh啟動Jmeter GUI界面,彈出界面則說明安裝成功

三、執行機(slave)配置

執行機只負責接收調度機的任務去執行並發,配置比較簡單。

1、切換至已安裝好的Jmeter目錄下的bin目錄

Windows 雙擊jmeter-server.bat,啟動成功如下圖:

 

 

Linux 通過cd命令切換至Jmeter目錄的bin目錄,執行

./jmeter-server -Djava.rmi.server.hostname=192.168.0.178 (后面為ifconfig查到的IP地址)

2、上圖上標紅的IP和端口會在master里配置時用到。IP就是slave機器IP,端口默認是1099,端口也可以自定義,見第五點。 

3、如果有多台slave機,重復1步驟。 

四、調度機(Master)配置

調度機用作腳本配置、觸發啟動,服務器性能數據監控

1) 調度機負責腳本的分發

1、腳本創建:訪問百度

 

 

 

 

2、配置Slave機信息,找到Jmeter的bin目錄下jmeter.properties文件,修改remote_hosts的內容,IP和Port是slave機的IP以及默認端口1099,此處的端口可以自定義,見第五點:

remote_hosts=192.168.0.178:1099,192.168.0.179:1099 多台slave之前用","隔開,可以看到標紅的這個就是上面截圖slave的IP,端口默認為1099

3、打開Jmeter,選擇運行,有運程啟動、運程全部啟動兩個選項:

 

 

4、選擇遠程啟動-->啟動單個Slave或者全部啟動

這里啟動了192.168.0.178:1099一台slave,所以只有一個結果(線程數和循環次數都是1)

 

 

 

slave控制台信息:

 

 

2)調度機負責性能數據的采集

性能測試時,我們的關注點有兩部分,第一服務本身並發、響應時間、QPS,第二服務器的資源使用情況:cpu memory I/O disk等,JMeter的plugins插件可以實現對"二"的監控,具體操作步驟如下(主要記錄我的實踐過程):

1、下載插件

訪問網址http://jmeter-plugins.org/downloads/all/,下載三個文件。其中JMeterPlugins-Standard和JMeterPlugins-Extras是Master調度機的,ServerAgent是Server服務機的。

 

 

2、解壓Master調度機的兩個文件,進入其路徑JMeterPlugins-Extras(Standard)-1.3.1\lib\ex、JmeterPlugins-Extras.jar(JmeterPlugins-Standard.jar)兩個文件,放到JMeter客戶端的 lib/ext文件夾中,打開JMeter,可在監聽器中看到Permon Metrics Collector,客戶端配置成功。

 

 

3、將ServerAgent-2.2.1.zip上傳到被測服務器,解壓,進入目錄,Windows環境,雙擊ServerAgent.bat啟動;linux環境執ServerAgent.sh啟動,默認使用4444端口,出現如下情況即服務端成功:

 

 

4、ServerAgent啟動的校驗

a、 在筆記本電腦打開telnet監聽(控制面板-程序-打開或關閉Windows功能-telnet客戶端勾選打開)

b、cmd進入命令框,輸入如下內容:

telnet yourip  4444   #連接ServerAgent

test                  #發送test進行測試

exit                  #退出,即斷開連接

c 、觀察server端是否有接收到消息,有出現則說明ServerAgent打開成功

5、Jmeter客戶端的監聽測試

a、打開JMeter.bat,添加監聽器Permon Metrics Collector-Add Row添加一行monitor配置(修改Host/IP為測試IP)-運行-觀察server日志即chart圖標內容。

 

 

 

b、添加線程組,設置循環次數為"永遠";為線程組任意添加一個Sampler(並不設置參數),點擊運行。如無意外可以獲取chart圖,點擊stop,即結束監聽數據。全部配置圖如下

 

 

 

 

 

 

五、自定義端口:

上面其實已經實現了Jmeter的分布式測試,這部分主要介紹下如何自定義slave端口:

1、Slave:在slave機的Jmeter的bin目錄下,找到jmeter.properties文件,修改如下兩個配置項,比如修改為1888:

server_port=1888

server.rmi.localport=1888

2、啟動slave機上的jmeter-server.bat,如下圖,端口已經修改為:1888

 

 

3、Master:修改master機器的jmeter.properties文件:

remote_hosts=10.13.223.202:1000,10.13.225.12:1888

4、重啟jmeter.bat,如下圖,端口已經變了:

 

 

六、命令行啟動

http://blog.csdn.net/defonds/article/details/40858005

七、其它說明:

1、調度機(master)和執行機(slave)最好分開,由於master需要發送信息給slave並且會接收slave回傳回來的測試數據,所以mater自身會有消耗,所以建議單獨用一台機器作為mater。

2、參數文件:如果使用csv進行參數化,那么需要把參數文件在每台slave上拷一份且路徑需要設置成一樣的。

3、每台機器上安裝的Jmeter版本和插件最好都一致,否則會出一些意外的問題。

八、參考資料

服務器需要安裝監控插件:https://jmeter-plugins.org/wiki/PerfMonAgent/

監控機需要安裝的插件:https://jmeter-plugins.org/wiki/PerfMon/

服務器性能指標說明:https://jmeter-plugins.org/wiki/PerfMonMetrics/


免責聲明!

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



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