项目在功能开发差不多的时候,常常需要关注系统的性能指标,需要对服务进行性能压测。系统在性能压测过程中,需要关注被压测服务器的cpu、内存、磁盘、网络等指标参数的浮动来衡量压测服务器的能力。我们可以通过在jmeter客户端集成jmeter-plugins-manager插件,在服务端部署插件serverAgent来实时监控被压测服务器的性能。
1、官网下载最新版jmeter
下载地址:https://jmeter.apache.org/download_jmeter.cgi,jmeter依赖于Java环境运行,所以需要先安装jdk(看下载页面可以看出下载的5.4.1版本需要对应Java 8以上)。
2、Jmeter插件Jmeter-plugins-manager下载
下载地址:https://jmeter-plugins.org/install/Install,apache-jmeter压缩包不自带Jmeter插件Jmeter-plugins-manager,需要自行下载安装。
3、将下载好的Jmeter-plugins-manager jar包放在jmeter包下的lib\ext文件夹下
4、在jmeter中添加插件引用
ApacheJMeter.jar启动jmeter
添加插件Apache JMeter-->options-->Plugins Manager
不习惯英文目录的,可以切换到中文目录下Options->Choose language->Chinese(simplified)
5、勾选上PerfMon(Servers Performance Monitoring)选项,点击右下角的Apply Changes and Restart JMeter按钮应用
6、下载服务端监控程序ServerAgent
对linux服务器的服务进行压测时,服务器的运行情况可以通过添加插件serverAgent来观察,可以实时监控性能指标。
7、linux服务器上启动服务端监控程序ServerAgent
(1)在linux任意目录下创建一个文件夹,使用rz命令把ServerAgent-2.2.1.zip上传上去
(2)解压 命令 unzip ServerAgent-2.2.1.zip
(3)解压完成后,使用./startAgent.sh 启动(默认端口4444),也可以使用命令指定端口启动(例如将指定TCP为7081,UDP指定为7082):
./startAgent.sh --tcp-port 7081 --udp-port 7082 --sysinfo
建议将此脚本写成shell脚本,授权chmod -R 777 XXX 之后下次直接启动脚本程序。
chmod 命令普及:
文件或目录的权限又分为3种:只读、只写、可执行。
依照上面的表格,权限组合就是对应权限值求和,如下:
7 = 4 + 2 + 1 读写运行权限
5 = 4 + 1 读和运行权限
4 = 4 只读权限
因此,大家也就明白了chmod 777 filename命令的含义了。
常用 chmod -R 777 filename 其中 -R 表示:对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
注意事项:
① 测试本机是否能ping同被压测服务器
② 测试本机是否能连通被压测服务器对应的端口号,也就是说被压测服务器的该端口号需要对外开放(示例我使用的压测端口是7081)
③ 一旦连通,进入输入命令界面,输入的命令在被压测服务器也能看到,输入1212
8、添加一个线程,再添加取样器-->HTTP请求,同时可以在监听器中添加汇总图、聚合报告、汇总报告、查看结果树等来查看压测之后的结果
9、jmeter中使用perfMon监听器步骤
(1)右键选择监听器里面的jp@gc - PerfMon Metrics Collector
(2)点击AddRow,然后在host的地方添加需要监控的服务器的主机域名或者IP,port填写端口,Metric to collect下拉选择监控的指标(CPU、Memory、Swap、Disks I/O、Network I/O等)。
(3)服务端启动监控程序ServerAgent,客户端开始压测,就可以查看服务器的cpu等各项指标的曲线了
压测性能指标趋势图:
各项指标的单位参差不齐,可以单独勾选某项指标查看
压测数据汇总: