前言
- 做性能测试,监控服务器资源指标是必须有的一步
- 这一篇博客将讲解通过 Jmeter 插件来监控服务器,再通过 Jmeter 观察监控结果
下载、安装、运行插件
- JMeterPlugins-Extras.jar
- JMeterPlugins-Standard.jar
- ServerAgent-2.2.3.zip
可以通过官方下载:https://jmeter-plugins.org/downloads/old/
注意
- 前两个插件最新版本在官网已经不提供下载了,只能下载旧版本,官方建议通过 Plugins Manager 下载需要的插件哦
- 博主安装了以下插件,已经包含上面讲的前两个插件了
这里也提供百度云下载链接哈
链接:https://pan.baidu.com/s/1bAaKqGoyaTVoq5picgBGMw
提取码:q92i
客户端(Jmeter 端)
- 如果通过官网下载的话,就将 JMeterPlugins-Extras.jar 和 JMeterPlugins-Standard.jar 放到 D:\apache-jmeter-5.2.1\lib\ext
- 然后通过 PerfMon Metrics Collector 监听器进行服务器性能数据显示
服务端(Linux)
将 ServerAgent-2.2.3.zip 放到任意目录下,解压
unzip ServerAgent-2.2.3.zip
进入 ServerAgent 目录
我提供的 ServerAgent 里面,两个 start 脚本已经是可执行脚本了,直接运行即可
./startAgent.sh
运行成功,则会出现下图
如果无法运行,则需要给脚本赋权
chmod 777 startAgent.sh
如果是想监控 Window 机器,则将 ServerAgent 放到 Window 电脑的目录下,然后直接双击运行 startAgent.bat 即可
划重点
- 启动 ServerAgent 的前提是系统已安装配置好 Java 环境
- 默认占用端口是 4444
启动 ServerAgent 可能会出现的问题
端口被占用
杀掉占用 4444 端口的进程
- 先查出 4444 端口是什么进程占用
- 然后查看进程详情,确认是否能杀掉
- 如果可以,则杀掉、
ServerAgent 通过其他端口启动
./startAgent.sh --udp-port 0 --tcp-port 1234
0 代表不开启该端口,一般我们只用 tcp 足以
端口未对外开放
- 如果服务器开启了防火墙,而且之前没用过 4444 端口,那么该端口很可能会被禁用
- 为了解决防火墙和开放端口的问题,可以参考这篇博文:https://www.cnblogs.com/poloyy/p/12213297.html
阿里云 4444 端口不能对外开放
如果是用阿里云服务器,4444 端口是无法对外开放的,所以要通过其他端口来启动 ServerAgent
Jmeter 监控服务器全流程
一个简单的负载测试线程组结构树
一般做负载测试,会监控服务器资源、活动线程数、响应时间、TPS等等,所以加了一堆监听器
PerfMon Metrics Collector
IP 自然就是填需要监控的服务器 IP啦,如果是监控本机就填 127.0.0.1 就好了
可监控的指标列表
还挺多,不过一般重点关注前面四个就好了
运行结果
我的 cpu 真高...因为数据库出现死锁了,回头可以好好性能分析一波了