一、概述
nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。
nmon所记录的数据包含以下一些方面(也是我们在寻找问题过程中所关注的资源点):
·cpu占用率
·内存使用情况
·磁盘I/O速度、传输和读写比率
·文件系统的使用率
·网络I/O速度、传输和读写比率、错误统计率与传输包的大小
·消耗资源最多的进程
·计算机详细信息和资源
·页面空间和页面I/O速度
·用户自定义的磁盘组
·网络文件系统
另外在AIX操作系统上,nmon还能监控到其他的一些信息,如异步I/O等。
二、下载安装nmon
1、下载安装包:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
选择下载相应的版本,我下载的是 nmon16d_x86.tar.gz。解压后里边有很多版本的nmon,我用的是nmon_linux_x86_64,亲测可用。
2、直接在window中将解压好的nmon_linux_x86_64通过sftp上传到要监控的linux系统中对应目录下
3、执行授权命令:
chmod +x nmon_x86_64_linux
4、运行./nmon_x86_64_linux,便可进入nmon的监控界面,如下图:
三、实时监控
在完成配置后,只需要“#./nmon”命令即可运行程序,通过一些快捷键调取关心的系统资源指标进行显示,如按键“C”可以查看CPU相 关信息;按键“D”可以查看磁盘信息;按键“T”可以查看系统的进程信息;“M”对应内存、“N”对应网络等等,完整的快捷键对应内容可以通过帮助(按键 “H”)查看,可以显示Linux系统CPU、内存、进程信息,包括了CPU的用户、系统、等待和空闲状态值,可用内存、缓存大小以及进程的CPU消耗等详细指标。该种方式显示信息实时性强,能够及时掌握系统承受压力下的运行情况,每颗CPU利用率是多少、内存使用多少、网络流量多少、磁盘读写……这些数据均是实时刷新,一目了然。
键入“c”查看系统CPU使用情况
键入“m”查看系统内存使用情况
键入“d”查看系统磁盘I/O情况
键入“h”查看帮助信息
四、nmon数据采集
4.1数据采集
为了实时监控系统在一段时间内的使用情况并将结果记录下来,我们可以通过运行以下命令实现:
#./nmon_x86_64_linux -f-t -s 30 -c 180 -m /home/
n -f:按标准格式输出文件:<hostname>_YYYYMMDD_HHMM.nmon;
n -t:输出中包括占用率较高的进程;
n -s 30:每30秒进行一次数据采集
n -c 180:一共采集180次
-m 生成的数据文件的存放目录。
输入命令回车后,将在/home目录生成一个hostname_timeSeries.nmon的文件,如果hosname为test1,生产的文件为:LS-HDP-MH-VM-173-188_161108_1412.nmon。
如果想停止该监控,需要通过“#ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。
通过sort命令可以将nmon结果文件转换为csv文件:
# sort -A LS-HDP-MH-VM-173-188_161108_1412.nmon> LS-HDP-MH-VM-173-188_161108_1412.csv
执行完sort命令后即可在当前目录生产LS-HDP-MH-VM-173-188_161108_1412.csv文件。
4.2生成图形化结果
为了分析nmon监控获得的结果,IBM还提供了相应的图形化分析工具nmon_analyser,通过nmon analyser.xls工具可以把监控的结果文件转换成excel文件,方便分析系统的各项资源占用情况。
下载nmon_analyser(生成性能报告的免费工具):
nmon analyser.xls工具的使用方法如下:
(1)打开nmonanalyser.xls工具;
(2)调整excel宏安全性:工具-宏-安全性
(修改安全级别与可靠发行商)
(选择)安全级别:低
(勾上)信任所有安装的加载项和模板
(勾上)信任对于“Visual Baisc项目”的访问
(3)修改完后,确定-关闭nmon analyser.xls,重新打开;
(4)点击Analyse nmondata按钮,加载之前下载的LS-HDP-MH-VM-173-188_161108_1412.nmon文件。
以下是分析结果的截图:
五、结束nmon运行
nmon运行本身是会消耗系统资源,如需关闭nmon,直接kill掉
ps -ef | grep nmon (得到pid)
kill -9 pid (安全kill)
六、定时任务
除配合性能测试的短期监控,我们也可以实现对系统的定期监控,作为运营维护阶段的参考。定期监控实现如下:
执行命令:#crontab -e
在最后一行添加如下命令:
0 8 * * 1,2,3,4,5 /opt/nmon_x86_64_linux -f -N -m/nmon/log -s 30 -c 1200
表示:
周一到周五,从早上08点开始,监控10个小时(到18:00整为止),输出到/nmon/log
七、nmon关键指标列表
4.1 系统汇总(对应excel标签的‘SYS_SUMM’)
蓝线为cpu占有率变化情况;
粉线为磁盘IO的变化情况;
4.2磁盘读写情况汇总(对应excel标签的‘DISK_SUMM’)
蓝色为磁盘读的速率KB/sec
紫色为磁盘写的速率KB/sec
4.3内存情况汇总(对应excel标签的‘MEM’)