Jmeter监控服务器性能

首先申明,此篇文章借鉴出处
https://blog.csdn.net/weixin_41585557/article/details/85605915


**

Jmeter监控服务器性能

**
jmeter也可以像loadrunner一样监控服务器CPU、内存等性能参数,不过需要安装一些插件
1、下载需要的jmeter插件
在这里插入图片描述
如图上面两个是jmeter插件,可以再下面的链接中下载:
https://jmeter-plugins.org/downloads/old
第三个是放在服务器中的,可在下面的度盘中下载:
http://pan.baidu.com/share/link?shareid=2974853586&uk=1528396991&fid=512652594025385
2、解压压缩包
参见包里面的说明文档:”Just copy the JAR file into JMeter’s lib/ext directory.Then you can start JMeter and add additional items to your Test Plan.Java version 1.6 and JMeter 2.4 are required.”
所以我们需要找到解压包中的JAR文件,并拷贝到jmeter的lib/ext目录下,这里下载的1.4版本的插件需要在jdk1.6及jmeter2.4以上的版本使用
在这里插入图片描述
如上图,把的两个jar包放到JMeter的 lib/ext目录下,重启jmeter,出现如下新增的组件,则说明启动成功
在这里插入图片描述
3、常用组件简要介绍:
1.jp@gc - Bytes Throughput Over Time:不同时间吞吐量展示(图表)
聚合报告里,Throughput是按请求个数来展示的,比如说1.9/sec,就是每s发送1.9个请求;而这里的展示是按字节Bytes来展示的图表
2.jp@gc - Composite Graph: 混合图表
在它的Graphs里面可以设置多少个图表一起展示,它可以同时展示多个图表
3.jp@gc - Hits per Second:每秒点击量
4.jp@gc - PerfMon Metrics Collector:服务器性能监测控件,包括CPU,Memory,Network,I/O等等
5.jp@gc - Reponse Latencies Over Time:记录客户端发送请求完成后,服务器端返回请求之前这段时间
6.jp@gc - Reponse Times Distribution: 显示测试的响应时间分布,X轴显示由时间间隔分组的响应时间,Y轴包含每个区间的样本数
7.jp@gc - Transactions per Second: 每秒事务数,服务器每秒处理的事务数
4、将监控服务器的serverAgent拷贝到需监测的服务器
在这里插入图片描述
windows服务器中启动startAgent.bat,Linux服务器启动startAgent.sh即可
在linux中启动 ./startAgent.sh 是,可能会提示:“-bash: ./startAgent.sh: 权限不够”,那么我们需要执行命令:
chmod +x startAgent.sh
在这里插入图片描述
5、准备测试脚本
这里用到一个登陆测试系统的简单脚本做压力测试demo
在这里插入图片描述
6、配置监控服务器性能参数的组件
主要用到这个组件:jp@gc - PerfMon Metrics Collector,配置如下:
在这里插入图片描述
7、设置负载,执行脚本,查看监控结果
在这里插入图片描述
8、图表可导出成csv文件,配合聚合报告,分析服务器性能状况

/

**

Jmeter监控服务器资源,提示java.net.ConnectException: Connection timed out: connect问题解决 问题描述:使用Jmeter PerfMon插件监控远程服务器资源占用情况,使用默认端口4444连接,提示Connection timed out:connect

**
此篇文章借鉴出处 https://blog.csdn.net/alchaochao/article/details/85334202
在这里插入图片描述
解决步骤:
1、查看远程服务器防火墙,如果处于开启状态,先关闭防火墙
2、CMD命令行,查询4444端口占用情况:netstat -ano|findstr “4444”,结果显示4444端口占用进程ID为8088 java,没有被其他占用
3、回到本地机器,CMD命令行,查看端口能否正常访问: telnet 118.193.xx.xx 4444,提示:
在这里插入图片描述
此时说明4444端口不能正常使用,原因不明,这里我们尝试切换端口方式
4、在服务器CMD命令行,java -jar ./CMDRunner.jar --tool PerfMonAgent --tcp-port 8083 --udp-port 8083
5、再次回到本地,查看8083的端口访问情况,telnet 118.193.xx.xx 8083,能够正常连接,说明8083端口可用
在这里插入图片描述
在这里插入图片描述
6、在Jmeter资源监控插件中将端口修改为8083,启动脚本:
在这里插入图片描述
7、回到服务器端,将防火墙启动,在防火墙高级设置中,入站规则和出站规则-新建规则-选择协议和端口,将8083加入到入站规则中即可
在这里插入图片描述
在这里插入图片描述
8,再次用启动jmeter脚本尝试,能正常监控

//

建议:启动jmeterAgent,最好通过8000以后的端口来连接,编写一个bat执行文件java -jar ./CMDRunner.jar --tool PerfMonAgent --tcp-port 8083 --udp-port 8083,可直接执行文件。


**

JMeter性能测试-服务器资源监控插件详解

**
此篇文章借鉴出处 https://www.jianshu.com/p/ea36fef0a96b
这里先简单说一下几种主要的资源类型的指标项,对应的图就不贴了,太占篇幅,影响阅读:
1.CPU:
对于各指标项,数值都是代表百分比,比如默认配置(combined)下在曲线图中看到某个时间的数值是30,即代表此时总的cpu使用时间占比为30%。
有两点比较有用的地方值得说明:一是在Scope区域,可以通过Per Process选项来获取指定进程的CPU使用情况,二是在CPU Cores区域,我们可以选择监控指定的单个Core。
2.Memory:
各指标项中,usedperc(默认)和freeperc两项的数值代表与总内存的百分比,其余指标项的数值都是指内存大小,选中对应想,可以看到Metric Unit区域单位配置将变为可用,通常Mb会比较适合观察。
同样,也可以选择监控指定进程的数据
3.Disk I/O:
各指标项中,queue(默认)的数值代表等待I/O队列长度,reads、writes分别代表每秒处理的读/写次数,readbytes、writebytes顾名思义,代表每秒读/写的数据量,单位同样在Metric Unit区域配置,通常Mb会比较适合观察。
如果有挂载多个存储设备,可以在Filesystem Filter区域指定要监控的设备。
剩下的,就不一一说明了,参考前面几项,我觉得理解其他资源类型的配置应该没有问题了,至于具体指标项的含义,首先用不到的可以暂时不去了解,如果想要了解,请善用搜索。
关于 metric parameters(参数指标)设置的详细说明,可以参考官网https://gerardnico.com/jmeter/serveragent,会有比较详细的primary metrics(主要指标)、additional metrics(额外指标)讲解。
2.2 曲线图
1.
使用策略:
2.
如果测试场景的测试执行时间较长,采集的监控数据量比较大,为了在GUI模式查看曲线图时更方便、快捷,建议将各个监控指标项单独使用一个PerfMon监听器,从而配置不同的指标项数据存储到不同的文件中,测试执行完毕后,载入数据和数据查看都会更快。
如果预计数据量不会太大,可以以服务器为单位来划分PerfMon监听器。这样可以方便的观察到整个测试过程中,某台服务器各项资源使用情况的变化趋势
对于分布式服务、为了方便观察各个节点的负载分布、负载变化趋势,可以考虑将同类型的节点放置到同一个PerfMon监听器,以便对比观察
3.
数值:
4.
当一个PerfMon监听器中展示多种指标项的数据时,为了曲线图的可观察性,插件会自动进行优化,如图5所示,我们看到在CPU项和内存项都有个x10,代表曲线图中展示的数值是在采集到的真实数值上放大了10倍,目的是为了保证不同数据项在同一坐标系中展示时,各项都变化趋势都能够被观察到。
5.
曲线图配置:
6.
插件界面的Rows标签页可以调整要在曲线图中展示的指标项
Setting标签页中常用的有:
use relative times用于配置曲线图x轴表示相对时间(测试开始时为0)还是实际系统时间。
Auto-zoom rows for best fit默认勾选,则会有上一节讲数值时提到的展示数据自动放大的功能,取消勾选则全部展示采集的实际数值。
Limit number of points in row to xx points:勾选后可以设定曲线图展示的采样点数量,我们的测试报告会有不同的角色查看,其中一些角色可能不具备也不需要对监控数据的细节理解能力,此时我们提供的监控曲线图应该是易读的,如果按照实际的所有采样点来渲染出曲线图,可能会有很多偏离趋势的噪点数据,这对于不了解的人来说可能会有很多疑惑,所以当我们有了分析结论,最后报告呈现的时候,可以考虑通过调整采样点,来让曲线图更好的展示资源使用趋势,消除其他不必要的信息。

Force maximum Y axis value to xx,实际上我更多会选择不勾选,不勾选的情况下,插件在描绘曲线图的时候,会根据数值大小自动调整Y轴最大值,以达到更佳可读性,如图7和图8,分别是不勾选,和勾选后设置最大值为100时的曲线图效果,显然图7可以更容易的观察到变化的细节。不过与上一项类似,可能在对外出具报告时,为了更少的解释说明,可能需要某个指定的数值。

1.EXEC
在插件界面选择指标类型时,可以看到一个EXEC选型,该选项允许我们在后面的Metric parameter中配置一个命令语句(该语句最终应该输出单个数值),测试执行时,ServerAgent将执行该命令,同时插件将接收ServerAgent捕获的输出数值。
语法规则:EXEC所配置的语句需要按照一定的规则来填写,先是给出命令的执行程序的位置,然后将具体的命令以及命令的参数作为,命令和命令参数都需要用冒号":"来隔开。比如/bin/sh:-c:free |grep Mem |awk ‘{pring $7}’
/bin/sh,代表命令的执行程序
-c,即/bin/sh的-c选型,有-c选型的情况下,将从后面的字符串按一定规则解析为命令和命令参数
可以看到有用冒号分隔了执行程序/选型参数/命令语句
对于windows,也类似,如C:\Windows\System32\cmd.exe:/c:echo %RANDOM%
2.TAIL
如同Linux的tail命令,读取文件的最后一行,用在这里,需要文件每一行只包含一个单独的数值。借助tail,我们可以通过自定义脚本监控任意指标,只需要脚本的输出满足要求即可。
显而易见,TAIL后面的参数就是配置要读取的文件的地址,测试执行时,ServerAgent将根据配置读取所在服务器的指定文件。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值