JMeter 壓測Server Agent無法監控資源問題,PerfMon Metrics Collector報Waiting for sample,Error loading results file - see file log, Can't accept UDP connections java.net.BindException: Address already in use 各種疑難雜症


 

如何安裝插件此博主已經說得很詳細了。

https://www.cnblogs.com/saryli/p/6596647.html

但是需注意幾點:

1.修改默認端口,這樣可以避免掉一個問題。ServerAgent默認是4444端口,當然你可以修改,比如:./startAgent.sh –-udp-port 0 –-tcp-port 3450這樣。

2.ServerAgent-2.2.1.zip下載下來之后拷貝到服務器上之后再進行解壓。unzip ServerAgent-2.2.1.zip

 我的安裝目錄是/usr/local/Jmeter/ServerAgent-2.2.3

 

 (Jmeter從入門到MMP)

在使用Jmeter的性能監控插件時遇到了幾個問題mark一下:

1.防火牆未關閉

2.端口號被占用。linux下輸入命令 lsof -i:4444查看是否有被占用。如果有,使用kill -9 25601關閉

 

被占用會報如下錯誤

[root@business01 ServerAgent-2.2.3]# sh startAgent.sh
INFO 2019-01-25 15:52:36.544 [kg.apc.p] (): Binding UDP to 4444
ERROR 2019-01-25 15:52:36.582 [kg.apc.p] (): Can't accept UDP connections
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.DatagramChannelImpl.bind(DatagramChannelImpl.java:691)
at sun.nio.ch.DatagramSocketAdaptor.bind(DatagramSocketAdaptor.java:91)
at kg.apc.perfmon.PerfMonWorker.listenUDP(PerfMonWorker.java:144)
at kg.apc.perfmon.PerfMonWorker.startAcceptingCommands(PerfMonWorker.java:107)
at kg.apc.perfmon.AgentTool.processParams(AgentTool.java:72)
at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:63)
at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:174)
INFO 2019-01-25 15:52:36.583 [kg.apc.p] (): Binding TCP to 4444
ERROR 2019-01-25 15:52:36.586 [kg.apc.p] (): Can't accept TCP connections
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
at kg.apc.perfmon.PerfMonWorker.listenTCP(PerfMonWorker.java:135)
at kg.apc.perfmon.PerfMonWorker.startAcceptingCommands(PerfMonWorker.java:114)
at kg.apc.perfmon.AgentTool.processParams(AgentTool.java:72)
at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:63)
at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:174)

3.未成功啟動startAgent。下圖是成功啟動圖。

啟動時使用此命令nohup sh startAgent.sh &(注意后面有一個&符號,此命令是不中斷在后台運行)

 

 

4.(這是主要問題)很多人都會出現如下問題Waiting for samples,

執行了就是不出圖形結果。解決方法:寫入一個文件。

但是不知道怎么寫入文件呀,報Error loading results file - see file log錯誤。

 

解決方法:新建一個txt文件,並添加以下文本之后保存。

<?xml version="1.0" encoding="UTF-8"?>
<testResults version="1.2">
</testResults>

 

 也可直接,D:\服務器性能監控數據.csv

 

成功效果圖

 

 

彈出下圖警告直接Overwrite existing file ,此警告是提示文件已存在。

從左到右的按鈕意思是:添加到現有文件、不要開始、覆蓋現有文件

 

 

5(這個也重要)如果有生成文件或者已創建的txt里有文字了,但是 還是顯示Waiting for samples。那是因為你只發送了一條請求,執行時間少於1秒,所以線程組循環次數設置為永遠吧!

 

 

 

 

 

 

 

 

 

 

 

 2號問題報錯的開始

[root@web01 ServerAgent-2.2.3]# sh startAgent.sh
INFO 2018-12-11 17:39:44.960 [kg.apc.p] (): Binding UDP to 4444
ERROR 2018-12-11 17:39:45.022 [kg.apc.p] (): Can't accept UDP connections
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.DatagramChannelImpl.bind(DatagramChannelImpl.java:691)
at sun.nio.ch.DatagramSocketAdaptor.bind(DatagramSocketAdaptor.java:91)
at kg.apc.perfmon.PerfMonWorker.listenUDP(PerfMonWorker.java:144)
at kg.apc.perfmon.PerfMonWorker.startAcceptingCommands(PerfMonWorker.java:107)
at kg.apc.perfmon.AgentTool.processParams(AgentTool.java:72)
at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:63)
at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:174)
INFO 2018-12-11 17:39:45.024 [kg.apc.p] (): Binding TCP to 4444
ERROR 2018-12-11 17:39:45.029 [kg.apc.p] (): Can't accept TCP connections
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
at kg.apc.perfmon.PerfMonWorker.listenTCP(PerfMonWorker.java:135)
at kg.apc.perfmon.PerfMonWorker.startAcceptingCommands(PerfMonWorker.java:114)
at kg.apc.perfmon.AgentTool.processParams(AgentTool.java:72)
at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:63)
at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:174)

 2號問題的結束

 

--udp-port 0 --tcp-port


免責聲明!

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



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