压力测试过程中,能够随时对负载服务器的健康状况的把控是相当重要的,有了这些数据,我们才能准确分析出服务器负载瓶颈。当你面对的是一个集群的时候,如果能了解到负载是否被正确分发,是不是一件很棒的事情?为了达到这些目的,JMeter 插件包现在能够支持服务器监控啦!使用这个插件,你几乎可以在所有平台上对服务器的 CPU、内存、Swap、磁盘 I/O、网络 I/O 进行监控!
JMeter是一款压力测试工具,我们也可以用它来监控服务器资源使用情况。
JMeter正常自带可以通过Tomcat的/manager/status来监控服务资源使用情况。这种情况只能监控Tomcat支持的资源使用部分。
1. 下载
可以进入网址 http://jmeter-plugins.org/downloads/all/ 下载资源 ,也可以去CSDN下载,下载之后可以直接使用,无需再配置其他
CSDN下载地址: https://download.csdn.net/download/glongljl/10398265
其中JMeterPlugins-0.5.1.rar是客户端的,ServerAgent是服务端的。
将 JMeterPlugins-0.5.1.rar解压后的文件放到apache-jmeter-3.0\lib\ext目录下。
将serverAgent.rar解压后的文件上传到要监控的服务器中待使用。
1) apache-jmeter-3.0\bin\jmeter.bat 启动JMeter
正常启动成功后截图如下:
这里写图片描述
如果不能启动查看jdk版本或者jdk是否安装正确。
2) 查看插件是否正常加载,如图:
其中[email protected] 开头的为加载插件后出现的。
4. 运行服务器上的ServerAgent
登录服务器,运行 ServerAgent\bin\startAgent.sh(非Linux使用startAgent.bat)
(默认端口为4444,也可以参数指定 –udp-port 4445 –tcp-port 4445)
可以看到输出内容如下:
5. 添加监听器 “[email protected] - PerfMon Metrics Collector”
在JMeter 中的测试计划中,按下面的截图,添加监听器 “[email protected] - PerfMon Metrics Collector”
配置IP、端口和监控指标(注:这里的端口是服务器ServerAgent上的端口)
6. 检查监控结果
点击启动按钮后,查看ServerAgent日志出现:
下面就是监控记录(注:Network I/O的单位是B)
注:
运行jmeter时,成功连接然后立刻断开了,并没有获取我们想要的数据。猜想需要一个时间控制的元器件,使其能够获取一段时间的数据。
解决方法:
添加线程组,设置循环次数为”永远”;
为线程组任意添加一个Sampler(并不设置参数);
添加一个PerfMon Metrics Collector监听器;点击运行。(上面如果已经添加过,可直接使用无需再添加)
然后在 [email protected] - PerfMon Metrics Collector 界面,启动。
7. 服务器详细进程信息
如果需要定位具体哪个进程异常,在压测的时候,可以执行‘top -n 1800 -b >top_monitor.txt’ (注每3秒更新一次,持续1800秒)命令。如果需要具体定位,可以通过检查top_monitor.txt文件