介绍
nmon
是一种在AIX
与各种Linux
操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,记录的信息比较全面,并且能输出结果到文件中,然后通过nmon_analyzer
工具产生数据文件与图形化结果。
通过一条命令即可获取服务器全面的资源使用数据。
特点
- 占用系统资源少(一般不到2%)
- 功能强大(监控数据类型全面)
- 结合grafana之类的仪表图,可以更直观的实时展示所监控的数据
- 移植性、兼容性较好
可监控的指标
- 内存使用情况
- 磁盘适配器
- 文件系统中的可用空间
- CPU使用率
- 页面空间和页面速度
- 异步I/O,仅适用于AIX
- 网络文件系统(NFS)
- 磁盘I/O速度和读写比率
- 服务器详细信息和资源
- 内核统计信息
- 消耗资源最多的进程
- 运行队列信息
安装与使用
安装
- 使用
yum
安装:
$ yum -y install nmon
- 打开
nmon
:
$ nmon
- 关闭
nmon
:q
常用命令
命令 | 说明 |
| 查看cpu相关 |
| 查看内存相关 |
| 查看网络相关 |
| 查看磁盘I/O相关 |
| 查看相关进程相关 |
| 查看帮助说明 |
| 退出 |
监控指标方式
屏幕上动态观察
下图手机结果对应c
-CPU Utilisation
,
m
-Memory and Swap
,
n
-Network I/O
andNetwork Error Counters
,
d
-Disk I/O
t
-Top Processes
每隔2s刷新一次收集结果,refesh = 2secs
采集数据到文件
可以通过命令行启动监控,捕获服务器各项数据
$ nmon -s 2 -c 60 -f -m /home/nmon
# 参数说明
-f 监控结果以文件形式输出,默认机器名+日期.nmon格式
-F 指定输出的文件名,比如test.nmon
-s 每隔多少秒抽样一次,单位是秒,上述命令配置是2s;
-c 采样次数,上述命令配置是10,即监控总时长为2*60=120秒
-m 指定生成的文件目录
命令执行完成后,在/home/nmon
目录下会生成hostname_YYYYMMDD_HHMM.nmon
格式命令的监控文件,nmon
会将采集到的数据写入到该文件直到采集结束。
强制退出的办法:先找到nmon
进程:ps -ef|grep nmon
,然后杀死进程:kill nmon_pid
一般来说不建议对稳定性测试使用
nmon
监控,因为生成的nmon
文件超过10M
时,分析工具会由于内存不足导致报错。如果必须进行的话,建议加大采样频次,降低采样次数(低于330次)。
监控结果分析
使用
nmon analyser
对nmon
文件进行解析,生成带图表信息的xlsx
格式文件。
下载地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser
nmon analyser转换数据
- 进入工具目录,双击
nmon analyser vxx_x.xlsm
格式文件,进入工具界面。 - 如果界面提示安全警告,“宏已被禁用”,点击【启用内容】即可。
- 点击
Analyze nmon data
,选择待分析的nmon文件,等待分析、处理完成后,会在nmon
文件目录下生成同名但后缀名为.xlsx
的文件,后续分析在该xlsx
文件中进行即可。
分析结果文件
在性能测试开始后启动
nmon
监控,通过设置监测时长使nmon
在性能测试结束前退出,可以减少无关数据的收集。
打开nmon analyser
转换的.xlsx
的结果文件,每个指标对应结果文件中的同名sheet页,每个页面除了采样数据,还提供了对应的图表数据。.一般在性能测试中,主要关注以下指标:
SYS_SUMM
:系统汇总页面,主要显示系统CPU(蓝线)和I/O(粉红线)的使用情况,其中坐标左纵轴为cpu(user%+sys%)使用率,横轴为运行时长,右纵轴为磁盘传输次数(Disk xfers),坐标图下方展示统计数据。
CPU被充分使用的经验值是:User%:65%-70%;Sys%:30%-35%;Idle%:0%-5%。
SYS_SUMM
CPU_ALL
:CPU使用情况,展示在采样周期内服务器的CPU的使用情况,实际上,与SYS_SUMM展示的CPU数据是相同的,区别只是前者使用线状图表示。CPU_SUMM
:CPU使用情况,页面展示的是每颗CPU的使用情况,与使用top命令,按数字键”1”显示各颗CPU的效果是一样的。
-
DISK_SUMM
:主要显示磁盘读、写、IO情况,其中,需要注意的是:某一时间点的磁盘读写数据(Disk Read KB/s\Disk Write KB/s)等于该时间点上所有磁盘和分区的Read/Write的速率(KB/s)之和,分别与页面DISKREAD、DISKWRITE对应;某一采集时间点的IO/sec等于页面DISKXFER中该时间点上所有磁盘和分区的IO/sec之和。因此,该时间点上的I/O值统计是会有重复的。
-
DISKBUSY
:磁盘使用情况,主要显示各个磁盘及分区的繁忙程度,是磁盘使用时间和全部时间的比值,即磁盘有百分之多少时间是活动的。通常,根据该页面显示的磁盘百分比数据,可以快速了解该磁盘的使用情况。
-
MEM
:内存使用情况,主要显示系统总内存、已用内存、可用内存、swap、cached等内存统计信息,统计单位为MB,图表左轴有个”千”字,单位换算后,memfree约19G
-
NET
:网络使用情况,显示服务器各个网络适配器读写数据情况,单位KB/s,注意与带宽单位(bps)的换算,1MB/s = 8Mbps,如图: