一.监控插件技术
插件管理器
在线安装插件管理包:http://jmeter-plugins.org/downloads/all/
下载
新的版本提供了插件管理器,但是需要自行下载安装。
下载路径: https://jmeter-plugins.org/downloads/all/
安装
放在lib/ext目录下,然后重启Jmeter,会在菜单-选项下多一个 Plugins Manager菜单,打开即可对插件进行安装、升级。
Jmeter 插件安装
打开 Plugins Manager 菜单,在可获得的插件列表中选择自己需要的插件进行安装。
常用的插件:
支持Base64加解密等多个函数的插件 Custom JMeter Functions
用于服务器性能监视的 PerfMon Metrics Collector
用于建立压力变化模型的 Stepping Thread Group
用于Json解析的 JSON Path Extractor
用于展示响应时间曲线的 Response Times Over Time
用于展示TPS曲线的 Transactions per Second
Jmeter Plugins Manager
二.服务器资源监控
重启jmeter,选择监听器,我们可以看到监听器中多了一些东西(这里边就有我们监控要用到的功能),如下图所示
选择上图中的jp@gc-PerfMon Metrics Collector,这个就是我们监控服务器资源的功能,点击之后如下图:
到此,我们监控的工作准备的差不多了,还差一个重要的卧底,那就是ServerAgent,我们需要将它放到服务器中,解压下来打开如下图所示:
ps:如果你的服务器是windows,那么直接运行startAgent.bat文件即可;如果你的服务器是linux,那么需要运行startAgent.sh文件即可(运行方式:找到startAgent.sh文件所在路径,打开终端命令行,保险起见可以先将startAgent.sh设置成可执行文件:chmod 777 startAgent.sh,然后执行命令:./startAgent.sh,这样我们的agent服务就启动了);
回到我们的jmeter界面,在jp@gc-PerfMon Metrics Collector中添加服务器的ip,选择监控的资源,如CPU、内存等,下面所有数据写入一个文件,选择浏览,jmeter会默认弹框文件存放路径和文件名,可以自己选择路径,注意文件名一定要改!一定不能和目前的脚本名称一致,否则当前辛苦写的脚本就一去不复返了!(因为它们的类型都是jmx文件,文件名一致当然就覆盖了!)接下来运行脚本一段时间,可以看到服务器的CPU和内存的一个使用情况,如下图所示:
三.指标数据分析
cpu使用率:
指用户进程与系统进程消耗的CPU时间百分比长时间情况下,一般可接受上限不超过85%
案例 1000TPS,latency<3s,运行12小时cpu使用率低于85%
Memory:
内存使用率=(1-空闲内存/总内存大小 )*100%
一般至少有10%可用内存,内存使用率可接受上限85%
disk-磁盘:
使用%disk time(磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能
如果发现cpu大量的时间花费在等待磁盘操作上面那么可以考虑增加内存,将磁盘的数据导入
内存,减少cpu对于磁盘的等待,整体提升系统性能
network-网络带宽
一般使用计数器Bytes Total/sec来度量,Bytes Total/sec表示为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的宽带比较。
linux下获取占用cpu资源最多的10个进程可以使用如下命令:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
%cpu :进程占用cpu的使用率
#MEM:进程使用的物理内存和总内存的百分比
4核cpu那么cpu最高占用率可达400%
cat /proc/cpuinfo可以查看cpu信息
processor条且包括这一逻辑处理器的唯一标识符
physical id 条目包括每个物理封装的唯一标识符
core id条目保存每个内核的唯一标识符
Nmon
开源性能监控工具,用于监控linux系统的资源消耗信息,并能把结果输出到文件中,然后通过nmon_analyser工具产生数据文件与图形化结果。
目录
一、安装软件
二、实时监控
三、数据采集
四、生成分析报表
一、安装软件
下载
nmon安装包:
http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
选择适合自己系统的版本
centos7_x86_64适合的最新nmon版本为:
nmon16e_mpginc.tar.gz 3.5MB
https://pan.baidu.com/s/1KMCid_APKOm25qFRl7SvaA (我的下载的分享给大家)
nmon_analyser工具:
下载后直接解压出模板(nmon analyser v51_2.xlsm),用于最后制图
2.上传
rz
#在弹窗中选择并添加安装包
3.解压
tar-zxvf nmon16e_mpginc.tar.gz
4.拷贝并重命名
cpnmon_x86_64_centos7 /usr/local/bin/nmon
5.授权
cd /usr/local/binchmod777nmon
6.查看是否安装成功,显示如下界面即安装成功
./nmon
./nmon_x86_64_centos7
Nmon显示初始界面,即安装成功
二、实时监控
快捷键对应监控指标
输入c可显示CPU的信息,“m”对应内存,“n”对应网络,“d”可以查看磁盘信息,“t”可以查看系统的进程信息。结果如下图。
三、数据采集
在实际的性能测试中,我们需要把一段时间之内的数据记录下来,可以使用如下命令
./nmon_x86_64_centos7 -c10-s10-f -m .
-f :按标准格式输出文件名称 生成文件:_YYYYMMDD_HHMM.nmon
-t : 输出最耗资源的进程
-s :每隔n秒采集一次,这里为30秒
-c :采集次数,这里为10,即监控=10*30/60=5分钟
-m : 指定生成文件位置
test :监控记录的标题
该命令启动后,会在nmon所在目录下生成监控文件,并持续写入资源数据,直至360个监控点收集完成——即监控1小时,这些操作均自动完成,无需手工干预,
测试人员可以继续完成其他操作。如果想停止该监控,需要通过“#ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。
ps-ef |grep nmon #查询nmon进程kill-9进程ID #强行中断监控进程
nmon 输出文件的命名方式为:服务器名_日期时间.nmon
如:localhost_171028_2309.nmon n
通过以下命令,将.nmon文件转化成.csv文件,在当前目录生成对应的.csv文件
sortlocalhost_170616_0138.nmon>localhost_170616_0138.csv
四、生成分析报表
将localhost_170616_0138.csv文件下载到本地
ls
localhost_171028_2309.csv localhost_171028_2309.nmon nmon_x86_64_centos7
sz localhost_171028_2309.csv
通过nmon analyser工具(nmon analyser v51_2.xlsm)转化为excel文件。如何转化呢?步骤如下:
1) 下载后打开nmon analyser v51_2.xlsm
2) 调整excel宏的安全级别,调整为最低或者如下操作
3) 然后点击Analyser nmon data 按钮,选择下载下来的.csv文件,然后就会转化成.excel文件,生成图形化的文件,例如: