性能测试时我们关注的重要指标是:并发用户数,TPS,请求成功率,响应时间,服务器的CPU,memory, I/O disk等。Jmeter的聚合报告可以查看并发数、吞吐量、请求成功率、响应时间等;如果要查看服务器端的CPU,memory, I/O disk等就需要安装插件PerfMon Metrics Collecto。

1、下载插件 首先进入网址https://jmeter-plugins.org/downloads/old/ 下载Jmeter插件资源 JMeterPlugins-Standard-1.4.0.zip JMeterPlugins-Extras-1.4.0.zip

进入网址https://jmeter-plugins.org/wiki/PerfMon/ 下载Perf Mon 插件 ServerAgent-2.2.1.zip

其中JMeterPlugins-Standard和JMeterPlugins-Extras是客户端的,ServerAgent是服务器端的

2、使用插件

将 JMeterPlugins-Standard-1.4.0.zip 解压后,把 lib\ext 目录下的 JmeterPlugins-Standard.jar 文件都放到apache-jmeter-3.1\lib\ext目录中。

将 JMeterPlugins-Extras-1.4.0.zip 解压后,把 lib\ext 目录下的 JMeterPlugins-Extras.jar 文件放到apache-jmeter-3.1\lib\ext目录中。

jmeter怎么监控cpu等服务器性能 jmeter如何查看cpu_jmeter

3、正常启动打开JMeter,可在监听器中看到Permon Metrics Collector,客户端配置成功

jmeter怎么监控cpu等服务器性能 jmeter如何查看cpu_jmeter_02

4、将ServerAgent-2.2.1.jar上传到被测服务器(根目录或任意位置),解压,进入目录,Windows环境,双击startAgent.bat启动;linux环境执行startAgent.sh启动,默认使用4444端口,这里以linux环境来说明,启动后从图中可以看到agent服务绑定了4444端口,至此,服务端启动成功。

jmeter怎么监控cpu等服务器性能 jmeter如何查看cpu_jmeter怎么监控cpu等服务器性能_03

5、添加HTTP请求并填写好,添加监听器jp@gc - PerfMon Metrics Collector,如下图,并填写好要监控的服务器ip,端口号,还有需要监控的对象。

jmeter怎么监控cpu等服务器性能 jmeter如何查看cpu_jar_04

6、一切准备就绪,启动线程组就可以监控到各项指标的使用情况(线程运行时间如果太短可能会捕捉不到这个图表,可以设置多循环几次或者无限循环来延长时间。

jmeter怎么监控cpu等服务器性能 jmeter如何查看cpu_linux_05

遇到的问题

1、报错Connection refused: connect,原因是本地有个进程占用了该端口。

jmeter怎么监控cpu等服务器性能 jmeter如何查看cpu_端口号_06

解决办法:(1) 关闭占用4444端口的进程,再次启动ServerAgent服务,成功。(2) 进入ServerAgent的目录,此时可以看到ServerAgent.jar,使用命令改变ServerAgent服务的默认端口:java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port xxxx --tcp-port xxxx(xxxx为新端口号)如下图

jmeter怎么监控cpu等服务器性能 jmeter如何查看cpu_端口号_07

2、报错java.io.IOException: Agent is unreachable via TCP,这个问题原因也是默认端口被占用,更换其他端口即可。

jmeter怎么监控cpu等服务器性能 jmeter如何查看cpu_linux_08

注:jmeter里面填写的服务器端口必须与Agent服务启动起来的端口一致

jmeter怎么监控cpu等服务器性能 jmeter如何查看cpu_linux_09

jmeter怎么监控cpu等服务器性能 jmeter如何查看cpu_linux_10

3、报错java.net.ConnectException: Connection timed out: connect。

jmeter怎么监控cpu等服务器性能 jmeter如何查看cpu_jmeter怎么监控cpu等服务器性能_11

(1) 服务器开启了防火墙导致无法连接

解决办法:是关闭防火墙。

其中:

查看防火墙状态 systemctl status firewalld ( Active: active (running) 代表防火墙是开启状态,Active: inactive (dead)为关闭状态)

开启防火墙 systemctl start firewalld

关闭防火墙 systemctl stop firewalld

(2) 端口号冲突,可以在本地Telnet一下,检查端口号是否冲突,冲突的话按照上述方法修改端口号。