1 测试环境及部署
- Ubuntu
- Java8
- Jmeter
- Win10
1.1Win10环境部署
- Java8环境部署
- Jmeter安装
1.2 Ubuntu环境部署
- Java8环境部署
- Jmeter环境部署
2 插件安装
2.1 win10插件
JMeterPlugins-Standard-1.4.0.zip
JMeterPlugins-Extras-1.4.0.zip
2.2 Ubuntu插件
ServerAgent-2.2.1.zip
sh ./startAgent.sh
3 测试结果及分析
4 问题总结
问题1
ERROR: java.net.ConnectException: Connection refused: connect
原因
服务器端未使用代理
解决方案
服务器端安装ServerAgent插件
下载ServerAgent
解压至自定义文件夹
安装Java8环境
运行startAgent.sh
sh ./startAgent.sh
#默认绑定端口4444
INFO 2018-09-18 09:50:40.480 [kg.apc.p] (): Binding UDP to 4444
INFO 2018-09-18 09:50:41.481 [kg.apc.p] (): Binding TCP to 4444
INFO 2018-09-18 09:50:41.484 [kg.apc.p] (): JP@GC Agent v2.2.3 started
#绑定指定端口8099,port可更改为空闲任意端口
java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 8099 --tcp-port 8099
INFO 2018-09-18 09:57:09.517 [kg.apc.p] (): Binding UDP to 8099
INFO 2018-09-18 09:57:10.518 [kg.apc.p] (): Binding TCP to 8099
INFO 2018-09-18 09:57:10.521 [kg.apc.p] (): JP@GC Agent v2.2.3 started
问题2
java.net.SocketException: Permission denied
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)
原因
Ubuntu非root用户不可使用1024以下的端口,改用1024以上的端口,如1025,且需要检查端口冲突,命令如下:
解决方案
#检查端口是否空闲
xindq@localhost:lsof -i:port
#端口被占用
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 14458 xindq 4u IPv4 15392149 0t0 TCP *:8090 (LISTEN)
python 14474 xindq 4u IPv4 15392149 0t0 TCP *:8090 (LISTEN)
python 14474 xindq 5u IPv4 15392149 0t0 TCP *:8090 (LISTEN)
#端口未占用则直接进入命令行
xindq@localhost:lsof -i:8099
xindq@localhost:
#修改服务器ServerAgent端口
java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 8099 --tcp-port 8099
INFO 2018-09-18 09:57:09.517 [kg.apc.p] (): Binding UDP to 8099
INFO 2018-09-18 09:57:10.518 [kg.apc.p] (): Binding TCP to 8099
INFO 2018-09-18 09:57:10.521 [kg.apc.p] (): JP@GC Agent v2.2.3 started