方法1:
使用插件来监控CPU,内存等的使用情况
1.需要的插件准备
JMeterPlugins-Standard-1.4.0.zip , JMeterPlugins-Extras-1.4.0.zip下载
https://jmeter-plugins.org/downloads/old/
ServerAgent-2.2.1.zip 下载
2.Jmeter
解压JMeterPlugins-Standard-1.4.0.zip,将其中\lib\ext\JMeterPlugins-Standard.jar包复制到jmeter安装目录下的\lib\ext下
解压JMeterPlugins-Extras-1.4.0.zip,将其中\lib\ext\JMeterPlugins-Extras.jar包复制到jmeter安装目录下的\lib\ext下
启动jmeter,在监听器的选项中增加了一些jp@gc开头的监听器,监控cpu、内存、i/o的监听是jp@gc - PerfMon Metrics Collector
jp@gc - PerfMon Metrics Collector的设置:
Add Row 可以添加需要监控的服务器ip,端口号默认为4444,监控内容CPU/MEMORY/DISKS I/O等
3.agent服务器
将ServerAgent-2.2.1.zip解压后放在需要监控的服务器上,并开启
startAgent.bat(windows)
startAgent.sh (linux)
linux服务器上首先将startAgent.sh设定为可执行文件:
chmod 777 startAgent.sh
./startAgent.sh执行文件
如果要将该文件设置为后台执行不关闭
Nohup ./startAgent.sh &
4.查看结果
在服务器上开启startAgent服务后,再在jmeter上运行脚本,可以在jp@gc - PerfMon Metrics Collector上查看监控的图形结果。
异常:
在使用JMeter PerfMon Metrics collector插件收集收据的时候,收集不到数据同时报如下错误:
ERROR: java.io.IOException: Agent is unreachable via TCP
或者
ERROR: java.io.IOException: Agent is unreachable via UDP
这是用于默认的端口4444被占用,更换其他端口即可;例如将指定TCP为3401,UDP指定为3402
./startAgent.sh --tcp-port 3401 --udp-port 3402 --sysinfo
另外,如果要注意服务器防火墙,如果有开启,需要将此端口加进去,方法如下:
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4444 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3401 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 3402 -j ACCEPT
重启服务:service iptables restart
然后再重启
./startAgent.sh --tcp-port 3401 --udp-port 3402 --sysinfo
方法2:
不需要安装插件,只要jmeter的运行环境配置好就可以了:
打开这个小工具的步骤很简单,如果你已经配置好了Jmeter运行的环境,那么你也就不用去做其他的配置,直接 点击:开始——》运行——》输入cmd——》然后在出现的命令行界面输入“jconsole”即可弹出一个【java监视和管理控制台】,
将会弹出如下界面:
如果远程机器非本地,需要在远程服务器配置信息并启动服务,方可连接,具体操作详见:
这里我们选择本地进程,并点击一下sun.tools.jconsole.JConsole这一行,然后点击连接,就可以查看我们的内存和CPU的使用情况了。
当然,我们要得到服务器的内存使用等信息,也可以选择 本地进程下面的远程进程,在文本框中输入我们需要测试的服务器的IP地址:端口,然后在下面输入用户名和密码,点击连接,看看会出现什么情况。