PerfMon Metrics Collector:服务器性能监控数据采集器。在性能测试过程中,还需要监控服务器的资源使用情况,如CPU、memory、I/O等。该插件可以在性能测试中实时监控服务器的各项资源使用。

JMeter 无法提取除 Tomcat 之外的其他服务器的默认指标,为了克服这一状况,研发了PerfMon Metrics Collector服务器代理,JMeter 通过这个代理来获取性能数据。PerfMon Metrics Collector使用的是SIGAR开源库,它是由一个 Java 通用部分和一个每个 OS 的本地库组合而成。

环境搭建

1、在服务器上搭建java环境

2、下载 ServerAgent-2.2.3.zip

3、用 Xftp 或 WinSCP 工具将 ServerAgent-2.2.3.zip上传到服务器

4、解压并启动服务器代理

unzip ServerAgent-2.2.3.zip #解压
rm -rf ServerAgent-2.2.3.zip #删除原压缩文件
cd ServerAgent-2.2.3 #切换目录sudo chmod 777 startAgent.sh #更改startAgent.sh文件的权限
nohup ./startAgent.sh & #把代理服务放到后台运行并且不挂起
netstat -tpln |grep 4444 #查看4444端口对应的进程是否已启动

备注:

1)可以在运行脚本时添加--tcp-port xxxx --udp-port xxxx来指定端口

./startAgent.sh --tcp-port 2222
./startAgent.sh --tcp-port 2222 --udp-port 2222

2)测试本地是否能连接代理

telnet server-ip 4444 #本地cmd运行

输出类似INFO 2017-07-29 23:10:52.430 [kg.apc.p] (): Yep, we received the 'test' command的日志,证明可以连接代理

3)本地连接不上代理,有可能是服务器防火墙没关,在服务器将端口4444改为允许外部IP访问(把4444端口加到白名单)

方法一:将startAgent的端口加入白名单(推荐)
firewall-cmd --add-port=4444/tcp -permanent #永久添加4444端口
firewall-cmd --list-ports #列出开放的端口,查看4444端口是否开放

方法二:关闭服务器防火墙
systemctl stop firewalld #关闭防火墙

防火墙相关其他命令:
systemctl start firewalld #开启防火墙
systemctl restart firewalld #重启防火墙
systemctl status firewalld #查看防火墙状态

4)服务器上没有安装unzip命令时,安装unzip命令

sudo yum install -y unzip zip #安装unzip和zip

监控服务器资源

1、在JMeter Plugins Manager 中安装插件 jpgc - Standard Set

2、重启JMeter,右键添加监听器jp@gc - PerfMon Metrics Collector

3、点击Add Row,填写服务器地址、服务代理的端口号、监控项

zabbix监控服务请求 监控服务器资源_性能测试

 4、设置持续时间执行脚本,即可收集到服务器资源使用信息

zabbix监控服务请求 监控服务器资源_服务器_02

 Linux 自带的 top 命令也可以查看服务器CPU和内存使用情况(按ctrl+c退出),lscpu 命令可以查看 CPU 核数。