jemter--如何监控服务器资源
  p2QdBCa7ky7t 2023年11月02日 38 0

  在我们做项目的性能测试时,需要查看相关服务器的资源使用情况; 本文以apache-jmeter-5.5版本为例,使用PerfMon进行服务器资源监控的方案由两部分来实现: ServerAgent部署在被测服务器,负责资源耗用数据的采集,其功能实现主要基于hyperic的SIGAR;PerfMon Listener以插件形式集成到JMeter,作为其中一个Listener。

1.准备插件

若想要监控服务器资源,需要先下载三个插件包,分别为

  1. JMeterPlugins-Standard
  2. JMeterPlugins-Extras
  3. 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】链接进行下载。

jemter--如何监控服务器资源_数据

下载完成后的文件是plugins-manager.jar格式,将其放到Jmeter安装目录下的lib/ext目录。插件下载地址:https://jmeter-plugins.org/downloads/old/,  已下载插件中的jar包,并放到jmeter的安装目录lib/ext下。


jemter--如何监控服务器资源_jmeter_02

重启Jmeter查看是否加载成功,当在项目计划下添加监听组件时,可以看到下图所示监听器“jp@gc - PerfMon Metrics Collector”,客户端的准备工作基本结束。

jemter--如何监控服务器资源_性能测试_03


  • 服务器代理插件(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文件。


jemter--如何监控服务器资源_jmeter_04

在Linux,我们通常将其放在后台运行,比如用nohup。

操作步骤如下:

  • 进入插件目录: cd /usr/local/ServerAgent-2.2.3

jemter--如何监控服务器资源_jmeter_05

  • 先调试查看:./startAgent.sh --loglevel debug,主要看startAgent.sh能否正常的启动,该文本必须具有执行权限,如果没有择需要给对应文件添加权限,执行命令: chmod 777 startAgent.sh ,将startAgent.sh设置成可执行文件;如果执行命令看到如下图所示,说明文件可以正常执行,可以启动代理服务,如果出现异常择根据异常进行相应处理,可以访问https://github.com/undera/perfmon-agent,查看官方的使用说明。

jemter--如何监控服务器资源_数据_06

  • 最终以后台运行方式启动:nohup ./startAgent.sh > /dev/null 2>&1 &

jemter--如何监控服务器资源_性能测试_07


  • 通过netstat -lnpt 命令,可以查看到该服务已经正常启动,使用端口4444。 

    jemter--如何监控服务器资源_jmeter_08

nohup /dev/null 2>&1 & 命令介绍:

nohup

nohup(n ohang up)的意思是不挂起、永久执行

nohup运行命令可以使运行的命令永久的执行下去,和用户终端没有关系,可以在你退出帐户/关闭终端之后继续运行相应的进程。例如我们断开SSH连接并不会影响他的运行(注意:nohup没有后台运行的意思,&才是后台运行)

&

&是指在后台运行,当用户退出(挂起)、关闭终端的时候,后台运行的这条命令也会退出

/dev/null

/dev/null表示垃圾桶的意思,类似windows的回收站

2>&1

2表示错误输出,1表示标准输出,>表示重定向

所以2>&1连起来就是:将错误输出重定向到标准输出

2.设置监听服务器资源:

监控插件设置完毕,远程目标服务上的插件服务已经启动后,在客户端监听组件进行设置,可选择添加,配置监控指标CPU、内存、网络等,根据实际需要添加即可,设置成功后如下图所示:

jemter--如何监控服务器资源_jmeter_09

对几种主要的资源类型的指标项简单说明下:

  • 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会比较适合查看。

3.远程服务器监听数据查看和保存:

在使用GUI模式进行调试时,测试启动后,可以直接在对应窗口观察到根据采集数据描绘的图形。而要在使用NO GUI模式正式执行测试后,查看监控数据,可以在设计测试计划时,在下图所示的Filename位置配置数据要保存的地址,可以根据需要存储文件格式,本文保存为.CSV格式的文件;它和保存JMeter测试主数据的方式一样,需要注意的是不要和JMeter测试主数据保存到同一个文件。

jemter--如何监控服务器资源_性能测试_10

正式测试时需要在命令模式下执行测试,命令格式: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,在测试执行完成后,在插件界面载入这个文件,即可显示监控数据的图形展示,可以点击

jemter--如何监控服务器资源_性能测试_11

设置显示的数据,点击

jemter--如何监控服务器资源_jmeter_12

,可以设置显示的维度新。

jemter--如何监控服务器资源_数据_13

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  SBowDWXjb0NT   2023年11月30日   22   0   0 redis线程池数据
p2QdBCa7ky7t
最新推荐 更多