nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具, nmon所记录的信息是比较全面的,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中。nmon工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。并且,nmon运行不会占用过多的系统资源,通常情况下CPU利用率不会超过2%。在更新的计算机上,其CPU使用率将低于百分之一。
针对不同的操作系统版本,nmon有相应版本的程序,需要注意的是该文件需要执行授权操作方可正常运行。官网下载地址: http://nmon.sourceforge.net/pmwiki.php
nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,其中包括:
CPU 使用率
内存使用情况
内核统计信息和运行队列信息
磁盘 I/O 速度、传输和读/写比率
文件系统中的可用空间
磁盘适配器
网络 I/O 速度、传输和读/写比率
页面空间和页面速度
CPU 和 AIX 规范
消耗资源最多的进程
IBM HTTP Web 缓存
用户自定义的磁盘组
计算机详细信息和资源
异步 I/O,仅适用于 AIX
工作负载管理器 (WLM),仅适用于 AIX
IBM TotalStorage® Enterprise Storage Server® (ESS) 磁盘,仅适用于 AIX
网络文件系统 (NFS)
动态LPAR (DLPAR)更改,仅适用于面向AIX或Linux的pSeries p5 和OpenPower
实际工作中,nmon有三种常用的使用模式,分别是实时监控、后台监控和定期监控模式。下面分别加以介绍
1、实时监控:在完成配置后,只需要“#./nmon”命令即可运行程序,通过一些快捷键调取关心的系统资源指标进行显示,如按键“C”可以查看CPU相关信息;按键“D”可以查看磁盘信息;按键“T”可以查看系统的进程信息;“M”对应内存、“N”对应网络等等,完整的快捷键对应内容可以通过帮助(按键“H”)查看,可以显示Linux系统CPU、内存、进程信息,包括了CPU的用户、系统、等待和空闲状态值,可用内存、缓存大小以及进程的CPU消耗等详细指标。该种方式显示信息实时性强,能够及时掌握系统承受压力下的运行情况,每颗CPU利用率是多少、内存使用多少、网络流量多少、磁盘读写……这些数据实时刷新,一目了然。但是如果我们希望将一段时间的资源情况记录下来,以备后续的分析工作,则需要以另一种方式使用nmon。
2、后台监控:为了配合性能测试,我们往往需要将一个时间段内系统资源消耗情况记录下来,这时可以使用命令:./nmon -f -s 10 -c 360。说明:
Ø -f :按标准格式输出文件名称:<hostname>_YYYYMMDD_HHMM.nmon
Ø -s :每隔n秒抽样一次,这里为10秒
Ø -c :取出多少个抽样数量,这里为360,即监控=10*360/3600=1小时
该命令启动后,会在nmon所在目录下生成监控文件,并持续写入资源数据,直至360个监控点收集完成——即监控1小时,这些操作均自动完成,无需手工干预,测试人员可以继续完成其他操作。如果想停止该监控,需要通过“#ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。
3、定期监控:除配合性能测试的短期监控,我们也可以实现对系统的定期监控,作为运营维护阶段的参考。定期监控可通过“#crontab -e”命令实现,在最后一行添加“0 8 * * 1,2,3,4,5 /nmon -f-s 30 -c 1200”,表示:周一到周五,从早上08点开始,监控10个小时(到18:00整为止)。
下载/安装
- Ubuntu:
sudo apt-get install -y nmon
- CentOS:
sudo yum install -y nmon
,前提是你已经有安装 epel 源- 或者使用 RPM 包:http://pan.baidu.com/s/1hsFEoeg
- 安装命令:
rpm -ivh nmon-14i-8.el6.x86_64.rpm
- 安装命令:
- 或者使用 RPM 包:http://pan.baidu.com/s/1hsFEoeg
- 分析工具 nmon analyser:http://pan.baidu.com/s/1pKBLXrX
运行
- 实时监控:
nmon
- 后台监控:
cd /opt ; nmon -f -s 10 -c 360
- 前面的 cd /opt 表示,进入 opt 目录,nmon 生成的文件是在当前目录下。
- -f :按标准格式输出文件名称:_YYYYMMDD_HHMM.nmon
- -s :每隔n秒抽样一次,这里为10秒
- -c :取出多少个抽样数量,这里为360,即监控=10*360/3600=1小时
- 该命令启动后,nmon 会在当前目录下生成监控文件,并持续写入资源数据,直至360个监控点收集完成——即监控1小时,这些操作均自动完成,无需手工干预,测试人员可以继续完成其他操作。如果想停止该监控,需要通过
ps -ef | grep nmon
查询进程号,然后杀掉该进程以停止监控。
- 定期监控:本质是 crontab 加上后台监控命令
解析监控文件
- 把 nmon 文件转换成 csv 文件:
sort localhost_120427_0922.nmon > localhost_120427_0922.csv
- 把 csv 转换成 Excel 图表文件:
- 打开 nmon analyser 分析工具:nmon analyser v50_2.xlsm
- 点击 Analyse nmon data 会弹出一个弹出框,选择刚刚转换的 csv 文件,然后就会自动再转化成 excel 文件
- 打开 nmon analyser 分析工具:nmon analyser v50_2.xlsm
- 导出的综合报表的参数说明:http://www.51testing.com/html/25/15146625-3714909.html