在我们做项目的性能测试时,需要查看相关服务器的资源使用情况;本文以apache-Jmeter-5.5版本为例,使用PerfMon进行服务器资源监控的方案由两部分来实现:ServerAgent部署在被测服务器,负责资源耗用数据的采集,其功能实现主要基于hyperic的SIGAR;PerfMon Listener以插件形式集成到Jmeter,作为其中一个Listener。
01、准备插件
若想要监控服务器资源,需要先下载三个插件包,分别为
JMeterPlugins-Standard
JMeterPlugins-Extras
ServerAgent-2.2.3
🎯 Jmeter客户端插件安装:
安装有两种方式:
第一种方式:到Jmeter-plugins官网搜索PerfMon并下载,将得到的jar包放置于JMeter安装目录的lib/ext/路径下,重启JMeter,从Listener中选择使用插件。
第二种方式:使用Plugins Manager,直接在插件管理中心进行搜索下载安装即可,本文推荐使用第一方式进行;
首先需要下载插件管理插件,下载地址:https://jmeter-plugins.org/install/Install/, 点击【plugins-manager.jar】链接进行下载。
下载完成后的文件是plugins-manager.jar格式,将其放到Jmeter安装目录下的lib/ext目录。插件下载地址:https://jmeter-plugins.org/downloads/old/, 已下载插件中的jar包,并放到jmeter的安装目录lib/ext下。
重启Jmeter查看是否加载成功,当在项目计划下添加监听组件时,可以看到下图所示监听器“jp@gc - PerfMon Metrics Collector”,客户端的准备工作基本结束。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛 分享他们的经验,还会分享很多直播讲座和技术沙龙 可以免费学习!划重点!开源的!!! qq群号:485187702【暗号:csdn11】
🎯 服务器代理插件(PerfMon Server Agent)安装:
ServerAgent与Jmeter进行数据传输时使用简单的文本协议,默认使用TCP协议,默认端口4444。前提:ServerAgent运行需要jre1.4以上版本支持。
下载地址:https://github.com/undera/perfmon-agent,选择ServerAgent-2.2.3版本即可;下载后把对应的文件上传到目标服务器的usr/localmul 目录下解压即可。如果是Windows服务器,直接点击文件夹中的startAgent.bat,如果是linux服务器,在需要运行startAgent.sh文件。
在Linux,我们通常将其放在后台运行,比如用nohup。
操作步骤如下:
进入插件目录:cd /usr/local/ServerAgent-2.2.3
先调试查看:./startAgent.sh --loglevel debug,主要看startAgent.sh能否正常的启动,该文本必须具有执行权限,如果没有择需要给对应文件添加权限,执行命令:chmod 777 startAgent.sh ,将startAgent.sh设置成可执行文件;如果执行命令看到如下图所示,说明文件可以正常执行,可以启动代理服务,如果出现异常择根据异常进行相应处理,可以访问 https://github.com/undera/perfmon-agent,查看官方的使用说明。
最终以后台运行方式启动:nohup ./startAgent.sh > /dev/null 2>&1 &
通过netstat -lnpt 命令,可以查看到该服务已经正常启动,使用端口4444。
nohup /dev/null 2>&1 & 命令介绍:
nohup
nohup(n ohang up)的意思是不挂起、永久执行
nohup运行命令可以使运行的命令永久的执行下去,和用户终端没有关系,可以在你退出帐户/关闭终端之后继续运行相应的进程。例如我们断开SSH连接并不会影响他的运行(注意:nohup没有后台运行的意思,&才是后台运行)
&
&是指在后台运行,当用户退出(挂起)、关闭终端的时候,后台运行的这条命令也会退出
/dev/null
/dev/null表示垃圾桶的意思,类似windows的回收站
2>&1
2表示错误输出,1表示标准输出,>表示重定向
所以2>&1连起来就是:将错误输出重定向到标准输出
02、设置监听服务器资源
监控插件设置完毕,远程目标服务上的插件服务已经启动后,在客户端监听组件进行设置,可选择添加,配置监控指标CPU、内存、网络等,根据实际需要添加即可,设置成功后如下图所示:
对几种主要的资源类型的指标项简单说明下:
CPU:
数值都是代表百分比,比如默认配置(combined)下在曲线图中看到个时间的数值是20,即代表此时总的cpu使用时间占比为20%。在Scope区域,可以通过Per Process选项来获取指定进程的CPU使用情况,二是在CPU Cores区域,我们可以选择监控指定的单个Core。
Memory:
指标项中,usedperc(默认)和freeperc两项的数值代表与总内存的百分比,其余指标项的数值都是指内存大小,选中对应项目,可以看到Metric Unit区域单位配置将变为可用,通常Mb会比较适合查看。
Disk I/O:
各指标项中,queue(默认)的数值代表等待I/O队列长度,reads、writes分别代表每秒处理的读/写次数,readbytes、writebytes,代表每秒读/写的数据量,单位同样在Metric Unit区域配置,通常Mb会比较适合查看。
03、远程服务器监听数据查看和保存
在使用GUI模式进行调试时,测试启动后,可以直接在对应窗口观察到根据采集数据描绘的图形。而要在使用NO GUI模式正式执行测试后,查看监控数据,可以在设计测试计划时,在下图所示的Filename位置配置数据要保存的地址,可以根据需要存储文件格式,本文保存为.CSV格式的文件;它和保存Jmeter测试主数据的方式一样,需要注意的是不要和Jmeter测试主数据保存到同一个文件
正式测试时需要在命令模式下执行测试,命令格式:jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder],例如:jmeter.bat -n -t ./Script/测试计划-243.jmx -l D:/gxw/report/2023013101/测试计划-243.jtl -e -o D:/report/2023013101,在测试执行完成后,在插件界面载入这个文件,即可显示监控数据的图形展示,可以点击
设置显示的数据,点击