Jmeter性能監控
- 配置好測試機器上的jmeter環境:http://jmeter-plugins.org/downloads/all/ 網站下載兩個東西: JMeterPlugins-Standard-1.1.3.zip、 ServerAgent-2.2.1.zip
- Standard的zip包解壓縮之后,將JMeterPlugins-Standard.jar 放在XXX\Apache\jmeter\lib\ext下,重啟jmeter就可以看到在 線程組右鍵的監聽器中可以看到增加了很多內容,在現有的項目中增加jp@gc - PerfMon Metrics Collector,作為監控服務器端的數據。
- 增加了jp@gc - PerfMon Metrics Collector之后,在其中Add Row,增加需要監控的數據信息,比如Cpu,Memory,Disks/IO,TCP等之類的信息,端口默認為4444。
- 服務器端配置,解壓縮ServerAgent.zip包,放到服務器上:
- Linux:CD命令到該文件夾下,輸入命令./XXXXXX/startAgent.sh。注意,如果客戶端配置的不是4444端口,則需要啟動客戶端設置的端口,命令為./startAgent.sh --udp-port 0 --tcp-port Xxxx,當然Xxxx為設定好的端口號。
- Windows:,雙擊startAgent.bat即可,啟動的是默認端口4444.
5. 在測試機器上,點擊啟動就可以開始接口的測試和壓力測試工作了,在選擇的jp@gc - PerfMon Metrics Collector可以看到來自服務器的性能信息。
Jmeter分布式部署
使用多台機器產生負載的操作步驟如下:
- 在所有期望運行jmeter作為 負載生成器的機器上安裝jmeter, 並確定其中一台機器作為 controller ,其他的的機器作為agent 。
- 在controller機器的jmeter的%JMeter_home%/bin目錄下,找到jmeter.properties 文件,編輯該文件:
查找:remote_hosts=127.0.0.1,修改為:remote_hosts=10.8.39.114:1099,10.8.33.181:1099,localhost:1099
這里要特別注意端口后,有些資料說明端口1644為jmeter的controller 和agent 之間進行通信的默認RMI端口號,但是在測試時發現,設置為1644運行不成功,改成1099后運行通過。另外還要留意agent的機子是否開啟了防火牆等。
3. 運行所有 agent 機器上的jmeter-server 文件
4. 啟動controller 機子上的jmeter應用jmeter.bat,選擇菜單“Run”--->“Remote Start”(“運行”--->“遠程啟動”),來分別啟動agent ,也可以直接選擇“Remote Start All”(“遠程全部啟動”)來將所有的agent啟動。當
遠程訪問時,會看到控制台上打印出一行:Starting the test on host [ip]:1099 @....,遠程執行結束,會打印一行:Finished the test on host [ip]:1099 @...。
需要注意的點:
1)Jmeter分布式控制過程中,各個Agent啟動的線程數等於線程組中的配置,不是均分線程組中的配置,每個Agent所單獨測試的線程數都是你在Controller上配置的線程數,也就是說我在controller上的線程數為100,立即
執行,循環一次,那么我的部署就會有同事觸發300(100X3)的線程數,立即執行,執行一次。而不是三台機器共同分擔100個線程。
2)在contrller機器上想要運行agent的時候,需要先執行jmeter-server 文件,再執行jmeter.bat
3)配置的時候保證機器的防火牆都處於關閉狀態。
參考資料:
性能監控插件:
http://www.tuicool.com/articles/RbAN3ea
性能監控介紹:
http://blog.csdn.net/defonds/article/details/41650813