JMeter是一款压力测试工具,我们也可以用它来监控服务器资源使用情况。
JMeter正常自带可以通过Tomcat的/manager/status来监控服务资源使用情况。这种情况只能监控Tomcat支持的资源使用部分。
本文主要来说一下如何通过JMeter插件来监控服务器CPU、内存、磁盘、网络等相关资源。
JMeter 插件网址:http://jmeter-plugins.org/
Perf Mon 插件 http://jmeter-plugins.org/wiki/PerfMon/
1 服务本身:并发 响应时间 QPS
2 服务器的资源使用情况:cpu memory I/O disk等
JMeter的plugins插件可以实现对"二"的监控,具体操作步骤如下(主要记录我的实践过程):
说明:我的jmeter版本是2.13
一 下载插件
首先进入网址 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 中 lib\ext 目录下的 JmeterPlugins-Standard.jar 文件都放到apache-jmeter-2.13\lib\ext目录中。
将 JMeterPlugins-Extras-1.3.1.zip 中 lib\ext 目录下的 JMeterPlugins-Extras.jar 文件放到apache-jmeter-2.13\lib\ext目录中。
将 ServerAgent-2.2.1 放到要监控的服务器中待使用。
解压客户端的两个文件,进入其路径JMeterPlugins-Extras(Standard)-1.3.1\lib\ext,复制JmeterPlugins-Extras.jar(JmeterPlugins-Standard.jar)两个文件,放到JMeter客户端的lib/ext文件夹中,打开JMeter,可在监听器中看到Permon Metrics Collector,客户端配置成功。
三、监控
1) apache-jmeter-2.12\bin\jmeter.bat 启动JMeter
正常启动成功后截图如下:
3 将ServerAgent-2.2.1.jar上传到被测服务器,解压,进入目录,Windows环境,双击ServerAgent.bat启动;linux环境执ServerAgent.sh启动,默认使用4444端口,出现如下情况即服务端成功:
四 测试使用情况
1 ServerAgent启动的校验
a 在笔记本电脑打开telnet监听(控制面板-程序-打开或关闭Windows功能-telnet客户端勾选打开)
b cmd进入命令框,输入如下内容:
telnet yourip 4444 #连接ServerAgent test #发送test进行测试 exit #退出,即断开连接
c 观察server端是否有接收到消息,出现如下情况说明ServerAgent打开成功
[[email protected] ~]# /opt/soft/ServerAgent-2.2.1/startAgent.sh INFO 2016-02-18 10:52:51.749 [kg.apc.p] (): Binding UDP to 4444 INFO 2016-02-18 10:52:52.749 [kg.apc.p] (): Binding TCP to 4444 INFO 2016-02-18 10:52:52.754 [kg.apc.p] (): [email protected] Agent v2.2.0 started INFO 2016-02-18 10:56:55.198 [kg.apc.p] (): Accepting new TCP connection #成功连接 INFO 2016-02-18 10:57:00.830 [kg.apc.p] (): Yep, we received the ‘test‘ command #接收到test消息 INFO 2016-02-18 10:57:05.185 [kg.apc.p] (): Client disconnected #断开连接
2 Jmeter客户端的监听测试
a 打开JMeter.bat,添加监听器Permon Metrics Collector-Add Row添加一行monitor配置(修改Host/IP为测试IP)-运行-观察server日志即chart图标内容。
ServerAgent端的日志:INFO 2016-02-18 11:02:14.197 [kg.apc.p] (): Accepting new TCP connection INFO 2016-02-18 11:02:14.243 [kg.apc.p] (): Yep, we received the ‘test‘ command INFO 2016-02-18 11:02:14.246 [kg.apc.p] (): Starting measures: cpu: INFO 2016-02-18 11:02:14.402 [kg.apc.p] (): Client disconnected
b 运行jmeter时,成功连接然后立刻断开了,并没有获取我们想要的数据。猜想需要一个时间控制的元器件,使其能够获取一段时间的数据。
i 步骤:添加线程组(不添加发送请求),设置循环次数为永远,点击运行。
结果:成功连接然后立刻断开
ii 添加线程组,设置循环次数为"用玄";为线程组任意添加一个Sampler(并不设置参数);添加一个PerfMon Metrics Collector监听器;点击运行。
结果:成功获取chart图,点击stop,即结束监听数据。全部配置图如下