jmeter监听器---jp@gc - PerfMon Metrics Collector

作用:

在这里插入图片描述
参考资料

安装:

在这里插入图片描述
下载地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ServerAgent

在这里插入图片描述
jp@gc - PerfMon Metrics Collector:服务器性能监测控件
根据需要选择CPU,Memory,Network I/O等
在这里插入图片描述

监控的cpu的情况如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

双击后面的输入框出现的按钮,点击出现调试框

在这里插入图片描述

系列指标含义:

1)CPU
 对于各指标项,数值都是代表百分比,比如默认配置(combined)下在曲线图中看到某个时间的数值是30,即代表此时总的cpu使用时间占比为30%。
 有两点比较有用的地方值得说明:一是在Scope区域,可以通过Per Process选项来获取指定进程的CPU使用情况,二是在CPU Cores区域,我们可以选择监控指定的单个Core。
2)Memory(内存)
各指标项中,usedperc(默认)和freeperc两项的数值代表与总内存的百分比,其余指标项的数值都是指内存大小,选中对应想,可以看到Metric Unit区域单位配置将变为可用,通常Mb会比较适合观察。
  同样,也可以选择监控指定进程的数据
3)Disk I/O(磁盘输入和输出)I/O就是input和output
各指标项中,queue(默认)的数值代表等待I/O队列长度,reads、writes分别代表每秒处理的读/写次数,readbytes、writebytes顾名思义,代表每秒读/写的数据量,单位同样在Metric Unit区域配置,通常Mb会比较适合观察。
如果有挂载多个存储设备,可以在Filesystem Filter区域指定要监控的设备
在这里插入图片描述
在这里插入图片描述

曲线图:

1、使用策略:
  如果测试场景的测试执行时间较长,采集的监控数据量比较大,为了在GUI模式查看曲线图时更方便、快捷,建议将各个监控指标项单独使用一个PerfMon监听器,从而配置不同的指标项数据存储到不同的文件中,测试执行完毕后,载入数据和数据查看都会更快。
  如果预计数据量不会太大,可以以服务器为单位来划分PerfMon监听器。这样可以方便的观察到整个测试过程中,某台服务器各项资源使用情况的变化趋势
  对于分布式服务、为了方便观察各个节点的负载分布、负载变化趋势,可以考虑将同类型的节点放置到同一个PerfMon监听器,以便对比观察
2、数值:
  当一个PerfMon监听器中展示多种指标项的数据时,为了曲线图的可观察性,插件会自动进行优化,如图5所示,我们看到在CPU项和内存项都有个x10,代表曲线图中展示的数值是在采集到的真实数值上放大了10倍,目的是为了保证不同数据项在同一坐标系中展示时,各项都变化趋势都能够被观察到。
在这里插入图片描述

曲线图配置:

插件界面的Rows标签页可以调整要在曲线图中展示的指标项
  Setting标签页中常用的有
  use relative times用于配置曲线图x轴表示相对时间(测试开始时为0)还是实际系统时间。
  Auto-zoom rows for best fit默认勾选,则会有上一节讲数值时提到的展示数据自动放大的功能,取消勾选则全部展示采集的实际数值。
  Limit number of points in row to xx points:勾选后可以设定曲线图展示的采样点数量,我们的测试报告会有不同的角色查看,其中一些角色可能不具备也不需要对监控数据的细节理解能力,此时我们提供的监控曲线图应该是易读的,如果按照实际的所有采样点来渲染出曲线图,可能会有很多偏离趋势的噪点数据,这对于不了解的人来说可能会有很多疑惑,所以当我们有了分析结论,最后报告呈现的时候,可以考虑通过调整采样点,来让曲线图更好的展示资源使用趋势,消除其他不必要的信息。
在这里插入图片描述
Force maximum Y axis value to xx,实际上我更多会选择不勾选,不勾选的情况下,插件在描绘曲线图的时候,会根据数值大小自动调整Y轴最大值,以达到更佳可读性,如图7和图8,分别是不勾选,和勾选后设置最大值为100时的曲线图效果,显然图7可以更容易的观察到变化的细节。不过与上一项类似,可能在对外出具报告时,为了更少的解释说明,可能需要某个指定的数值。

 不自定义Y轴

在这里插入图片描述

自定义Y轴

在这里插入图片描述
 2.3 自定义指标
  1、EXEC
  在插件界面选择指标类型时,可以看到一个EXEC选型,该选项允许我们在后面的Metric parameter中配置一个命令语句(该语句最终应该输出单个数值),测试执行时,ServerAgent将执行该命令,同时插件将接收ServerAgent捕获的输出数值。
  语法规则:EXEC所配置的语句需要按照一定的规则来填写,先是给出命令的执行程序的位置,然后将具体的命令以及命令的参数作为,命令和命令参数都需要用冒号”:”来隔开。比如/bin/sh:-c:free |grep Mem |awk ‘{pring $7}’
  /bin/sh,代表命令的执行程序
  -c,即/bin/sh的-c选型,有-c选型的情况下,将从后面的字符串按一定规则解析为命令和命令参数
  可以看到有用冒号分隔了执行程序/选型参数/命令语句
  对于windows,也类似,如C:\Windows\System32\cmd.exe:/c:echo %RANDOM%
  2、TAIL
  如同Linux的tail命令,读取文件的最后一行,用在这里,需要文件每一行只包含一个单独的数值。借助tail,我们可以通过自定义脚本监控任意指标,只需要脚本的输出满足要求即可。
  显而易见,TAIL后面的参数就是配置要读取的文件的地址,测试执行时,ServerAgent将根据配置读取所在服务器的指定文件。

JR组件TPS,TPT试图

1)添加 TPS 视图
线程组 -> 添加 -> 监听器 -> jp@gc Transaction per Second。某次压测实际效果图:

在这里插入图片描述

可以看出在该段时间内 TPS 大约维持在 6300 个左右。
2) 添加 TRT 视图
线程组 -> 添加 -> 监听器 -> jp@gc Response Times Over Time。某次压测实际效果图:

在这里插入图片描述

可以看出在该段时间内 TRT 平均在 70ms 左右。

QPS,TPS,系统吞吐量,用户并发量的概念区别:
QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,
个人理解如下:
1、Tps即每秒处理事务数,包括了
1)用户请求服务器
2)服务器自己的内部处理
3)服务器返回给用户
这三个过程,每秒能够完成N个这三个过程,Tps也就是3;
2、Qps基本类似于Tps,但是不同的是,对于一个页面的一次访问,形成一个Tps;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“Qps”之中。
例如:访问一个页面会请求服务器3次,一次放,产生一个“T”,产生3个“Q”
Content-Type application/json

<think>好的,我现在需要解决用户提到的JMeterPerfMon Metrics Collector插件出现的“Connection refused: connect”错误。首先,我要回忆一下这个问题的可能原因和解决方案。根据用户提供的引用内容,有几个常见的原因,比如ServerAgent未启动、端口被占用、防火墙设置或路径权限问题。 首先,我应该检查ServerAgent是否在目标服务器上正确启动。用户提到引用4中说到需要启动serverAgent.sh,并且可能端口4444被占用。所以第一步要确认服务器端的Agent是否运行,并且使用正确的端口。如果端口被占用,需要终止占用进程或者更换端口。 然后,考虑防火墙或安全组的设置。即使Agent运行正常,如果服务器的防火墙阻止了4444端口的连接,客户端也无法连接。需要检查服务器和客户端的防火墙规则,确保端口开放。 接下来,用户可能没有正确安装插件。引用3提到要完整安装Jmeter插件包,可能需要确认客户端是否正确安装了PerfMon插件和相关依赖,比如JMeterPlugins-Standard和Extras。 另外,路径权限问题也可能导致Agent启动失败,比如没有执行权限。这时候需要用chmod +x赋予执行权限,并检查日志文件nohup.out是否有错误信息。 还有,用户可能输入了错误的主机名或端口号,比如拼写错误或者使用了错误的IP地址。需要仔细检查JMeter中的配置是否正确,包括服务器的IP和端口是否匹配。 可能还需要考虑网络连通性,比如是否能从运行JMeter的机器ping通服务器,或者使用telnet测试4444端口是否可达。如果网络不通,自然会导致连接被拒绝。 最后,如果以上步骤都确认无误,可能需要查看ServerAgent的日志,看是否有更详细的错误信息。比如在启动Agent时使用调试模式,或者检查nohup.out文件中的输出,帮助定位问题。 总结一下,可能的解决步骤包括:确认ServerAgent运行、检查端口占用和防火墙、验证插件安装、检查路径权限、核对连接配置,以及测试网络连通性。需要一步步排查这些可能性,找到具体原因并解决。</think>针对JMeterPerfMon Metrics Collector插件报错“java.net.ConnectException: Connection refused”的问题,以下是分步解决方案: --- ### 一、问题原因分析 1. **ServerAgent未启动**:监控目标服务器未启动ServerAgent服务[^4] 2. **端口冲突/防火墙限制**:默认端口4444被占用或防火墙拦截[^2][^4] 3. **插件安装不完整**:缺少必要的插件依赖[^3] 4. **路径权限不足**:ServerAgent脚本未赋予执行权限[^4] --- ### 二、详细解决步骤 #### 步骤1:启动ServerAgent服务 1. 在目标服务器上解压`ServerAgent-2.2.1.zip` 2. 进入目录执行命令: ```bash chmod +x startAgent.sh # 赋予执行权限 ./startAgent.sh --udp-port 4444 --tcp-port 4444 # 显式指定端口 ``` 3. 验证端口占用: ```bash netstat -tuln | grep 4444 # 查看端口状态 ps -ef | grep ServerAgent # 检查进程是否运行 ``` #### 步骤2:检查防火墙/安全组 - **Linux服务器**: ```bash iptables -L -n | grep 4444 # 检查防火墙规则 systemctl stop firewalld # 临时关闭防火墙(测试用) ``` - **Windows服务器**:在“高级安全Windows Defender防火墙”中添加入站规则,允许TCP/UDP 4444端口 #### 步骤3:验证JMeter插件安装 1. 客户端需安装: - `JMeterPlugins-Standard-1.3.1.zip` - `JMeterPlugins-Extras-1.3.1.zip` 2. 将JAR文件放入`JMETER_HOME/lib/ext`目录并重启JMeter[^3] #### 步骤4:配置PerfMon Metrics Collector 1. 在JMeter中添加监听器`jp@gc - PerfMon Metrics Collector` 2. 填写正确的服务器IP和端口(默认为4444) ![PerfMon配置示例](https://example.com/perfmon-config.png) *配置界面示意图* #### 步骤5:排查网络连通性 在JMeter所在机器执行: ```bash telnet [服务器IP] 4444 # 测试端口连通性 ping [服务器IP] # 测试网络可达性 ``` --- ### 三、进阶排查技巧 1. **查看ServerAgent日志**: ```bash tail -f nohup.out # 实时监控启动日志[^4] ``` 2. **更换启动方式**: ```bash nohup ./startAgent.sh > agent.log 2>&1 & # 后台运行并记录日志 ``` 3. **尝试备用端口**: ```bash ./startAgent.sh --tcp-port 5555 --udp-port 5555 # 改用非默认端口 ``` --- ### 四、预防措施 1. 编写启动脚本自动检查端口占用 2. 使用Ansible等工具批量部署ServerAgent 3. 在JMeter测试计划中添加`BeanShell断言`自动检测连接状态 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值