偶然发现的性能监控工具让人惊喜!不打算试试嘛?

概述
前段时间讲述了Jmeter利用插件PerfMon Metrics Collector来监控压测过程中服务器资源的消耗 。
一个偶然机会,我发现nmon这个工具挺不错 。nmon,一款开源性能监控工具,用于监控linux系统的资源消耗信息,并能把结果输出到文件中,然后通过nmon_analyser工具产生数据文件与图形化结果 。
和Jmeter插件比起来,nmon记录的信息更加全面一些 。
 
nmon的下载安装
nmon下载地址:
http://nmon.sourceforge.net/pmwiki.php
nmon analyser下载地址:
http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser
nmon根据自己系统版本下载对应的安装包,本次测试使用的是
nmon16m_helpsystems.tar.gz ,nmon analyser下载最新的安装包,本次测试使用的是 nmon_analyser_v66.zip。
1.将下载的nmon安装包上传到Linux新建目录并解压:
[test@node06 ~]$ cd /usr/local
[test@node06 local]$ mkdir nmon
[test@node06 local]$ cd nmon
[test@node06 nmon]$ tar -zxvf nmon16m_helpsystems.tar.gz
 
2.根据自己系统的版本,给命令赋予可执行权限:
1 [test@node06 nmon]$ cat /etc/redhat-release
2 centos release 6.9 (Final)
3 [test@node06 nmon]$ chmod +x nmon_x86_64_centos6
 
3.在命令行输入 ./nmon_x86_64_centos6 即可打开nmon界面 。

偶然发现的性能监控工具让人惊喜!不打算试试嘛?

文章插图
 
在上面的交互式窗口中,可以使用nmon 快捷键来显示不同的系统资源统计数据:
q : 停止并退出 Nmon
h : 查看帮助
c : 查看 CPU 统计数据
m : 查看内存统计数据
d : 查看硬盘统计数据
k : 查看内核统计数据
n : 查看网络统计数据
N : 查看 NFS 统计数据
j : 查看文件系统统计数据
t : 查看高耗进程
V : 查看虚拟内存统计数据
v : 详细模式
此时,我们可以通过快捷键来调取关心的系统资源进行显示,该种方式显示信息实时性强,能够及时掌握系统承受压力下的运行情况 。
偶然发现的性能监控工具让人惊喜!不打算试试嘛?

文章插图
 
配置nmon的环境变量
完成以上的配置后,已经可以正常使用nmon了 。但是,大家有没有发现一个问题,那就是我们想使用nmon时必须找到该命令的详细路径才能使用,这样就很不方便了 。此时,我们需要将nmon的命令添加到系统环境变量中去,以后我们就可以在任何地方使用该命令 。
1.修改启动文件名称,让名称简单化,修改完成执行一次试试:
[test@node06 nmon]$ mv nmon_x86_64_centos6 nmon
[test@node06 nmon]$ ./nmon
 
2.在命令行输入 vim /etc/profile ,将以下内容粘贴到文本末尾,路径要改为自己的安装路径:
PATH=$PATH:/usr/local/nmon
export PATH
 
3.在命令行输入 source /etc/profile 使配置生效,此时,可以在任意目录执行 nmon 命令来启动nmon 。
 
监控
我们使用nmon来监控Jmeter压测期间的系统资源消耗情况 。
1.在nmon目录下新建logs文件夹,用来存放监控文件:
[test@node06 ~]$ cd /usr/local/nmon/
[test@node06 nmon]$ mkdir logs
 
2.在命令行输入执行命令:nmon -s 1 -c 80 -f -m /usr/local/nmon/logs 。
参数说明:
-s 1:每隔n秒抽样一次,这里为1秒
-c 80:取出多少个抽样数量,这里为80,即监控=1*80/60=1分钟20秒
-f:按标准格式输出文件名称:<hostname>_YYMMDD_HHMM.nmon
-m:指定监控文件的存放目录,-m后跟指定目录,如果不指定目录会在该命令的源目录下生成相应的监控文件
此命令启动后,会在我们指定的目录下生成监控文件,并持续写入资源数据,直至80个监控点收集完成 。
在此期间,测试人员不需要去手动干预 。如果想停止监控,查询进程号,然后杀死该进程即可 。
[test@node06 ~]$ ps -ef|grep nmon
test 8863 1 0 17:05 pts/1 00:00:00 nmon -s 1 -c 120 -f -m /usr/local/nmon/logs/
test 9111 25160 0 17:07 pts/1 00:00:00 grep nmon
[test@node06 ~]$ kill 8863
-bash: kill: (8863) - No such process
 
这里因为nmon已运行结束,所以当我kill的时候会提示 No such process。
3.运行Jmeter脚本,直至脚本运行结束 。
偶然发现的性能监控工具让人惊喜!不打算试试嘛?

文章插图
 
本次压测只为了讲述使用流程,测试结果中TPS不具实际意义,为避免不必要的争议,这里将其马赛克了 。
 
查看和分析压测结果
1.将生成的监控文件下载到本地 。


推荐阅读