插件-PerfMon (Servers Performance Monitoring)
下载地址
介绍
在负载测试期间,了解加载的服务器的运行状况非常重要。如果负载被正确分派,也很高兴看到您是否以集群为目标。
为了解决这个问题,插件包现在支持服务器监控!使用它,您可以监控几乎所有平台 上的CPU、内存、交换、磁盘 I/O 和网络 I/O!
- 这是插件的外观。它显示了负载测试中涉及的 4 台服务器的 CPU 使用率:
搜集指标
从 0.5.0 版开始,服务器代理工具支持收集超过 75 个系统指标。查看完整列表
概念
JMeter 默认无法检索除 Tomcat 之外的服务器指标。为了克服这种情况,我们开发了一个服务器代理,它将为 JMeter 获取性能数据。该代理使用SIGAR开源库。它由每个操作系统的 Java 通用部分和本机库组成。
安装
图形界面模式
- 在 GUI 模式下,只需添加侦听器,定义要监控的服务器和指标类型,确保代理在远程服务器上运行并且没有被防火墙阻止,然后运行测试。这些值将显示在实时图表中。
非 GUI 模式
- 如果您在非 GUI 模式下运行 JMeter 并希望将监控数据保存到文件中,只需像使用其他侦听器一样在 GUI 中配置结果文件保存即可。运行测试后,您可以将保存的文件加载到 GUI 中并查看值时间线。
JMeter 属性
jmeterPlugin.perfmon.interval
- 以毫秒为单位的指标收集间隔jmeterPlugin.perfmon.useUDP - true/false
,在 TCP 连接尝试失败后启用 UDP 连接尝试jmeterPlugin.perfmon.label.useHostname - true/false
,启用使用“短”主机名,默认模式是([\w-]+)..*jmeterPlugin.perfmon.label.useHostname.pattern - 字符串(转义)
,用于提取主机名的正则表达式(匹配第一组)- 例如,默认模式为:
jmeterPlugin.perfmon.label.useHostname.pattern=([\w\-]+)\..*
- 例如 EC2 us-east/west 子域匹配的模式:
jmeterPlugin.perfmon.label.useHostname.pattern=([\w\-]+\.us-(east|west)-[0-9]).*
forcePerfmonFile - true/false
,使 JMeter 能够在当前目录中写入带有 perfmon 指标的 JTL 文件
常见注意事项
PerfMon 服务器代理在 0.4.2 之前的版本中只支持少数指标。PerfMon Metrics Collector 0.5.0+ 版仍支持旧代理。但是,0.5.0 版发布了新的ServerAgent,它提供了超过 75 个单独的指标,支持每个进程的 CPU 和内存指标,甚至可以自定义指标来衡量您想要的任何指标:文件大小、数据库行数、Java 堆大小和垃圾收集。
指定度量参数
PerfMon Metrics Collector有特殊的“Metric Parameter”列,用户可以在其中指定要收集的指标子类型,指定应该监视哪个进程(哪个文件系统,网络接口)。Metric 参数字符串里面可能有多个参数,用冒号 :
分隔。要将冒号作为 char 参数包含在参数中,请使用反斜杠转义 \:
。请注意,您不能在度量参数字符串中使用制表符,所有制表符都将被默默地转换为空格。
大多数指标接受称为“类型”的单个参数。此参数指定您要收集的特定号码。如果未指定“类型”参数,将收集每个度量类别的默认度量类型(请参见下面的列表,每个类别中的第一项粗体)。
一些度量类型是常用的并被认为是主要的,而一些很少使用的类型是附加的。请注意,并非所有平台上的所有指标都可用,我们在这里依赖SIGAR API 功能。
一些指标允许指定要监控的特定对象,您可以指定 选择器参数以仅监控此对象的值:
- 进程的name、pid和ptql选择器
- 用于监控多核系统特定 CPU 的 核心选择器
- 文件系统的fs选择器
- 网络接口的iface选择器
请注意,CPU 和内存的每个进程和总指标的指标类型不同。
一些示例指标参数字符串:
### 磁盘 IO ### fs=/home:writes - 将监控 /home 文件系统的写入操作数
### 网络 IO ### iface=eth0:tx - 将监控接口 eth0 的传输数据包速率 ```