性能测试工具 Jmeter(四十八) - 从入门到精通高级篇 - Jmeter 监控服务器性能(详解教程)

北京-宏哥 · 2025年10月31日 · 330 次阅读

1.简介

JMeter 是一款压力、接口等等的测试工具,Jmeter 也可以像 loadrunner 一样监控服务器 CPU、内存等性能参数,用来监控服务器资源使用情况,不过需要安装一些插件。JMeter 正常自带可以通过 Tomcat 的/manager/status 来监控服务资源使用情况。这种情况只能监控 Tomcat 支持的资源使用部分。
通过本文宏哥主要来说一下如何通过 JMeter 插件来监控服务器 CPU、内存(Memory)、磁盘(DisKs I/O)、网络(NetWork I/O)等相关资源。

2.下载 Jmeter 插件

既然监控需要一些插件,那么宏哥就将准备工作做好了,下载安装需要的插件。
JMeter 插件网址:https://jmeter-plugins.org/downloads/old/

其中 JMeterPlugins-Standard 和 JMeterPlugins-Extras 是客户端的(Jmeter 插件),ServerAgent 是服务端的(放在服务器中的)。

3.解压并安装

1、解压客户端的两个文件,进入其路径 JMeterPlugins-Extras(Standard)-1.3.1\lib\ext,复制 JmeterPlugins-Extras.jar(JmeterPlugins-Standard.jar) 两个文件,放到你安装 JMeter 客户端的 lib/ext 文件夹中,打开 JMeter,可在监听器中看到 Permon Metrics Collector,客户端配置成功。如下图所示:

2、将 ServerAgent-2.2.1.jar 上传到被监控的服务器,待用。如下图所示:

Windows 服务器:

Linux 服务器:

4.监控

1、启动客户端的 Jmeter,然后添加 jp@gc - PerfMon Metrics Collector 监听器,并增加你要监控的参数。如下图所示:

2、解压刚刚复制到服务器待用的压缩包,进入目录,Windows 环境,双击 ServerAgent.bat 启动;linux 环境执 ServerAgent.sh 启动,默认使用 4444 端口,出现如下情况即服务端成功。如下图所示:

Windows 环境:

Linux 环境:

3、运行 Jmeter-观察 server 日志即 chart 图标内容,如下图所示:

4、ServerAgent 端的日志,如下图所示:

Windows 服务器:

Linux 服务器:

5、从第三步和第四步可以看出接收了一个 TCP 的链接,没有反应卡住不懂了,宏哥记得以前做的时候不是这个样子的,后来查看客户端的 Jmeter 发现报错了,如下图所示:

6、报错信息:​java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/text/DateFormat;) V ​​,查找资料发现是因为 Jmeter 的版本太高了,不支持其中一个方法了。jmeter 版本太高,setFormatter 方法在 3.1 版本后不支持。但是插件没有高版本,只能卸载 5.1 重装 3.1。重装后成功。再次查看 ServerAgent 端的日志,如下图所示:

INFO    2021-05-28 09:27:46.540 [kg.apc.p] (): Accepting new TCP connection  #成功连接
INFO    2021-05-28 09:27:46.543 [kg.apc.p] (): Yep, we received the 'test' command   #接收到test消息
INFO    2021-05-28 09:27:46.547 [kg.apc.p] (): Starting measures: cpu:
INFO    2021-05-28 09:27:46.801 [kg.apc.p] (): Client disconnected   #断开连接

7、从上边的日志信息可以看出,运行 jmeter 时,成功连接然后立刻断开了,并没有获取我们想要的数据。猜想需要一个时间控制的元器件,使其能够获取一段时间的数据。

i 步骤:添加线程组 (不添加发送请求),设置循环次数为永远,点击运行。
结果:成功连接然后立刻断开。全部配置如下图所示:

ServerAgent 端的日志,如下图所示:

INFO    2021-05-28 09:37:00.520 [kg.apc.p] (): Accepting new TCP connection
INFO    2021-05-28 09:37:00.521 [kg.apc.p] (): Yep, we received the 'test' command
INFO    2021-05-28 09:37:00.523 [kg.apc.p] (): Starting measures: cpu:
INFO    2021-05-28 09:37:00.653 [kg.apc.p] (): Client disconnected

Jmeter 客户端配置,如下图所示:

chart 图,如下图所示:

ii 添加线程组,设置循环次数为"永远";为线程组任意添加一个 Sampler(并不设置参数);添加一个 PerfMon Metrics Collector 监听器;点击运行。
结果:成功获取 chart 图,点击 stop,即结束监听数据。全部配置如下图所示:

ServerAgent 端的日志,如下图所示:

INFO 2021-05-28 10:02:57.150 kg.apc.p: Accepting new TCP connection
INFO 2021-05-28 10:02:57.152 kg.apc.p: Yep, we received the 'test' command
INFO 2021-05-28 10:02:57.154 kg.apc.p: Starting measures: cpu: network i/o: disks i/o:
INFO 2021-05-28 10:03:05.465 kg.apc.p: Client disconnected

Jmeter 客户端配置,如下图所示:

chart 图,如下图所示:

5.小结

1、运行 ServerAgent-2.2.1\bin\startAgent.bat(Linux 使用 startAgent.sh)(默认端口为 4444,也可以参数指定 –udp-port 4445 –tcp-port 4445)

2、常用组件简要介绍:
① jp@gc - Bytes Throughput Over Time:不同时间吞吐量展示(图表)
聚合报告里,Throughput 是按请求个数来展示的,比如说 1.9/sec,就是每 s 发送 1.9 个请求;而这里的展示是按字节 Bytes 来展示的图表
② jp@gc - Composite Graph: 混合图表
在它的 Graphs 里面可以设置多少个图表一起展示,它可以同时展示多个图表
③ jp@gc - Hits per Second:每秒点击量
④ jp@gc - PerfMon Metrics Collector:服务器性能监测控件,包括 CPU,Memory,Network,I/O 等等
⑤ jp@gc - Reponse Latencies Over Time:记录客户端发送请求完成后,服务器端返回请求之前这段时间
⑥ jp@gc - Reponse Times Distribution: 显示测试的响应时间分布,X 轴显示由时间间隔分组的响应时间,Y 轴包含每个区间的样本数
⑦ jp@gc - Transactions per Second: 每秒事务数,服务器每秒处理的事务数

最后为了省去大家查找和下载软件的时间,小伙伴或者童鞋们微信搜索 “北京宏哥”,关注宏哥公众号,进入公众号发送 “jmeter 监控”,获取 Jmeter 服务器监控全家桶相关软件和插件。

暫無回覆。
需要 登录 後方可回應,如果你還沒有帳號按這裡 注册