Jmeter监听器Perfmon Metrics Collector

介绍

在负载测试期间,了解所加载服务器的运行状况非常重要。 为了解决这个问题,Perfmon Metrics Collector插件支持服务器资源监控。 使用它,你可以监视几乎所有平台上的CPU,内存,交换,磁盘I / O和网络I / O。

怎么运行的

概念

默认情况下,JMeter无法检索除Tomcat之外的服务器指标。 为了克服这种情况,我们开发了一个服务器代理,它将获取JMeter的性能数据。 该代理使用SIGAR开源库。 它由Java通用部分和每个操作系统的本机库组成。

用法

GUI模式

在GUI模式下,只需添加监听器,定义要监视的服务器和要监控的资源,确保代理serveragent在远程服务器上运行并且未被防火墙阻止,然后运行测试。压测过程中产生的这些资源占用情况将显示在实时图表上。

非GUI模式

如果您在非GUI模式下运行JMeter并想将监视数据保存到文件中,则只需像在其他监听器上一样在GUI中配置结果文件保存即可。运行测试后,您可以将保存的文件加载到GUI中并查看。

perfmon metrics collector监控参数说明

Member:
scope:all——监控机器的内存,per Process——监控指定进程的内存
usedperc--已被内核管理的内存百分比(其中存在部分未被使用的内存块)
freeperc--未被内核管理的内存百分比
used--已被内核管理的内存(其中存在部分未被使用的内存块)
free--未被内核管理的内存百分比
actualused--真实被使用的内存大小
actualfree--真实未被使用的内存大小
ram--机器的物理内存
total--总内存大小
Metric Unit--内存单位设置
Metric Label--定义一个别名
resident--常驻内存
virtual--虚拟内存
shared--共享内存区,主要用于进程间的数据共享,程序一般不会用到该区。
pagefaults--页面故障数(从交换区把数据调入内存区,称为一次页面故障)
majorfaults--数据未存在内存区,从交换区把该数据调入内存区并分配,称为majorfaults。
minorfaults--数据已存在内存区,但未分配给当前进程,此时CPU产生一个minorfaults,把该数据分配给当前进程。
Process Identification:
Process ID--进程id
Process Name--进程名称


image.png

image.png

CPU:

us: user cpu time (or) % CPU time spent in user space
sy: system cpu time (or) % CPU time spent in kernel space
ni: user nice cpu time (or) % CPU time spent on low priority processes
id: idle cpu time (or) % CPU time spent idle
wa: io wait cpu time (or) % CPU time spent in wait (on disk)
hi: hardware irq (or) % CPU time spent servicing/handling hardware interrupts
si: software irq (or) % CPU time spent servicing/handling software interrupts
st: steal time - - % CPU time in involuntary wait by virtual cpu while hypervisor is servicing another processor (or) % CPU time stolen from a virtual machine
us:用户态使用的cpu时间比
sy:系统态使用的cpu时间比
ni:使用nice修改了优先级的进程占用CPU的百分比(ni是nice的意思,nice是什么呢,每个linux进程都有个优先级,优先级高的进程有优先执行的权利,这个叫做pri。进程除了优先级外,还有个优先级的修正值。即比如你原先的优先级是20,然后修正值为-2,那么你最后的进程优先级为18。这个修正值就叫做进程的nice值。)
id:空闲的cpu时间比
wa:cpu等待磁盘写入完成时间比
hi:硬中断消耗时间比
si:软中断消耗时间比
st:虚拟机偷取时间比

具体可参考:https://www.cnblogs.com/yjf512/p/3383915.html

combined--总CPU使用率
idle--空闲的cpu时间比
system--系统态使用的cpu时间比
user--用户态使用的cpu时间比
iowait--cpu等待磁盘写入完成时间比
irq--硬中断消耗时间比
nice--使用nice修改了优先级的进程占用CPU的百分比
softirq--软中断消耗时间比
stolen--物理机可以虚拟出多台虚拟机,在把cpu分给这些虚拟机。如果某台虚拟机的stolen不为0,则表示原本分给本虚拟机的CPU时间片被其他虚拟机窃取了。
All Cores--监控所有CPU核心
Custom CPU Index--监控某一CPU核心(适用多核cpu)
percent--进程占用的CPU总百分比
total--单位时间内(ms),进程在系统态和用户态占用的CPU时间片之和


image.png

image.png

DISK IO:
queue--磁盘的平均队列,即同时可以容纳的读写请求数
reads--对磁盘的读请求数
writes--对磁盘的写请求数
readbytes--磁盘单位时间内的读取字节数
writebytes--磁盘单位时间内的写入字节数


image.png

network IO:
bytesrecv--带宽的接收字节数
bytessent--带宽的发送字节数


image.png

swap:
used--交换区被使用的大小
pagein--页面调入数
pageout--页面调出数
free--交换区空闲大小
total--交换区总大小


image.png

JMeter属性

jmeterPlugin.perfmon.interval:指标收集间隔(以毫秒为单位)
jmeterPlugin.perfmon.useUDP:真/假,在TCP连接失败后,尝试启用UDP连接
jmeterPlugin.perfmon.label.useHostname:true / false,使用“短”主机名启用,默认模式为([\ w -] +)\ .. *
jmeterPlugin.perfmon.label.useHostname.pattern:字符串(转义),用于提取主机名的正则表达式(与第一组匹配)
例如默认模式为:jmeterPlugin.perfmon.label.useHostname.pattern =([[ww-] +)\ .. *
例如EC2 us-east / west子域匹配的模式:jmeterPlugin.perfmon.label.useHostname.pattern =([[ww-] + \。us-(east | west)-[0-9])。*
forcePerfmonFile:true / false,启用它可使JMeter在当前目录中使用性能指标写入JTL文件

常见注意事项

PerfMon Server Agent在0.4.2之前的版本中仅支持少量指标。 PerfMon Metrics Collector版本0.5.0+仍支持旧代理。但是,版本0.5.0附带了新的ServerAgent,它提供了75个以上的独立指标,支持每个进程的CPU和内存指标,甚至支持自定义指标以测量所需的内容:文件大小,数据库行数,Java堆大小和垃圾回收。

指定度量参数

PerfMon Metrics Collector具有特殊的“ Metric Parameter”列,用户可以在其中指定要收集的度量子类型,指定应监视的进程(哪个文件系统,网络接口)。指标参数字符串中可能包含多个参数,以冒号分隔。要将冒号作为char内部参数包括在内,请使用反斜杠转义\:。请注意,你不能在指标参数字符串内使用制表符,所有制表符将被静默转换为空格。

你可能感兴趣的:(Jmeter监听器Perfmon Metrics Collector)