一、前言
性能测试时我们关注的重要指标是:并发用户数,TPS,请求成功率,响应时间,服务器的CPU,memory, I/O disk等。Jmeter的聚合报告可以查看并发数、吞吐量、请求成功率、响应时间等;如果要查看服务器端的CPU,memory, I/O disk等就需要安装插件ServerAgent。
二、ServerAgent插件安装
1.需要下载三个文件,其中JMeterPlugins-Standard和JMeterPlugins-Extras是客户端的,ServerAgent是服务端的。
前两个的下载地址是:https://jmeter-plugins.org/downloads/old/。
服务端的下载地址:https://github.com/undera/perfmon-agent
2.解压客户端的两个文件,进入其路径JMeterPlugins-Extras\lib\ext,JMeterPlugins-Standard\lib\ext,复制JmeterPlugins-Extras.jar,JmeterPlugins-Standard.jar两个文件,放到JMeter客户端的apache-jmeter-4.0\lib\ext下面。
3.打开JMeter,可在监听器中看到Permon Metrics Collector,客户端配置成功
4.将ServerAgent-2.2.1.jar上传到被测服务器(根目录或任意位置),解压,进入目录,Windows环境,双击startAgent.bat启动;linux环境执行startAgent.sh启动,默认使用4444端口(如果没有执行权限,可先赋予执行权限:chmod a+x startAgent.sh)
注意:在linux启动 #./startAgent.sh时,报./startAgent.sh: line 3: java: command not found,应该是ServerAgent-2.2.1.jar上传的位置没有jdk,要先安装jdk
1.查看云端目前支持安装的jdk版本 [root@localhost ~]# yum search java|grep jdk 2.选择版本后,安装(执行以下命令会自动安装jdk相关依赖 [root@localhost ~]# yum install -y java-1.8.0-openjdk 3.安装完成,验证是否安装成功 [root@localhost ~]# java -version 4.通过搜索java文件,查找jdk默认安装目录 [root@localhost ~]# find / -name 'java'
5.在Jmeter脚本的线程组中添加一个监听器jp@gc - PerfMon Metrics Collector
注意:
- 一定要添加要监控的服务器的IP,serveragent的4444端口号,监控的指标CPU、Memory、DISK I/O,Network I/O。
- 一定要有将结果导出的文件如果添加文件时提示:Error loading results file - see file log,解决办法为:在文件(什么类型都可以)中加上一段
-
<?xml version="1.0" encoding="UTF-8"?> <testResults version="1.2"> </testResults>
6.启动线程组就可以监控到(线程运行时间如果太短可能会捕捉不到这个图表,可以设置循环几次来延长时间。
说明:CPU(X100 000 000)等,需要乘的,是因为Swap的值比较大,如果展示在一起的话,其他值就忽略不计了,所以乘100 000 000!
7.监控资源配置
8.Settings
1.use relative times:用于配置曲线图x轴表示相对时间(测试开始时为0)还是实际系统时间。
2.Auto-zoom rows for best fit:默认勾选,则会有上一节讲数值时提到的展示数据自动放大的功能,取消勾选则全部展示采集的实际数值。
3.Limit number of points in row to xx points:勾选后可以设定曲线图展示的采样点数量,我们的测试报告会有不同的角色查看,其中一些角色可能不具备也不需要对监控数据的细节理解能力,此时我们提供的监控曲线图应该是易读的,如果按照实际的所有采样点来渲染出曲线图,可能会有很多偏离趋势的噪点数据,这对于不了解的人来说可能会有很多疑惑,所以当我们有了分析结论,最后报告呈现的时候,可以考虑通过调整采样点,来让曲线图更好的展示资源使用趋势,消除其他不必要的信息。
4.Force maximum Y axis value to xx:实际上我更多会选择不勾选,不勾选的情况下,插件在描绘曲线图的时候,会根据数值大小自动调整Y轴最大值,以达到更佳可读性。不过与上一项类似,可能在对外出具报告时,为了更少的解释说明,可能需要某个指定的数值。