JMeter是一款压力测试工具,我们也可以用它来监控服务器资源使用情况。
JMeter正常自带可以通过Tomcat的/manager/status来监控服务资源使用情况。这种情况只能监控Tomcat支持的资源使用部分。
本文主要来说一下如何通过JMeter插件来监控服务器CPU、内存、磁盘、网络等相关资源。
JMeter 插件网址:http://jmeter-plugins.org/
Perf Mon 插件 http://jmeter-plugins.org/wiki/PerfMon/
一、下载
首先进入网址 http://jmeter-plugins.org/downloads/all/ 下载资源
ServerAgent-2.2.1.zip
JMeterPlugins-Standard-1.3.1.zip
JMeterPlugins-Extras-1.3.1.zip
其中JMeterPlugins-Standard和JMeterPlugins-Extras是客户端的,ServerAgent是服务端的。
二、配置
将 JMeterPlugins-Standard-1.3.1.zip 中 libext 目录下的 JmeterPlugins-Standard.jar 文件都放到apache-jmeter-2.13libext目录中。
将 JMeterPlugins-Extras-1.3.1.zip 中 libext 目录下的 JMeterPlugins-Extras.jar 文件放到apache-jmeter-2.13libext目录中。
将 ServerAgent-2.2.1 放到要监控的服务器中待使用。
三、监控
1) apache-jmeter-2.12injmeter.bat 启动JMeter
正常启动成功后截图如下:
如果不能启动查看jdk版本或者jdk是否安装正确。
2) 查看插件是否正常加载,如图:
其中jp@gc 开头的为加载插件后出现的。
3) 运行 ServerAgent-2.2.1instartAgent.bat(Linux使用startAgent.sh)
(默认端口为4444,也可以参数指定 –udp-port 4445 –tcp-port 4445)
可以看到输出内容如下:
INFO 2016-02-23 21:21:37.209 [kg.apc.p] (): Binding UDP to 4444
INFO 2016-02-23 21:21:38.208 [kg.apc.p] (): Binding TCP to 4444
INFO 2016-02-23 21:21:38.210 [kg.apc.p] (): JP@GC Agent v2.2.0 started
4) 在JMeter 中的测试计划中,按上面的截图,添加监听器 “jp@gc - PerfMon Metrics Collector”
点击上面的启动按钮后,查看ServerAgent日志出现:
INFO 2016-02-23 21:34:46.966 [kg.apc.p] (): Accepting new TCP connection
INFO 2016-02-23 21:34:46.969 [kg.apc.p] (): Yep, we received the 'test' command
INFO 2016-02-23 21:34:46.971 [kg.apc.p] (): Starting measures: cpu:
INFO 2016-02-23 21:34:47.123 [kg.apc.p] (): Client disconnected
运行jmeter时,成功连接然后立刻断开了,并没有获取我们想要的数据。猜想需要一个时间控制的元器件,使其能够获取一段时间的数据。
解决方法:
添加线程组,设置循环次数为”永远”;
为线程组任意添加一个Sampler(并不设置参数);
添加一个PerfMon Metrics Collector监听器;点击运行。(上面如果已经添加过,可直接使用无需再添加)
然后在 jp@gc - PerfMon Metrics Collector 界面,启动。
结果:成功获取chart图,点击stop,即结束监听数据