介绍

nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,记录的信息比较全面,并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。

通过一条命令即可获取服务器全面的资源使用数据。

特点

  • 占用系统资源少(一般不到2%)
  • 功能强大(监控数据类型全面)
  • 结合grafana之类的仪表图,可以更直观的实时展示所监控的数据
  • 移植性、兼容性较好

可监控的指标

  • 内存使用情况
  • 磁盘适配器
  • 文件系统中的可用空间
  • CPU使用率
  • 页面空间和页面速度
  • 异步I/O,仅适用于AIX
  • 网络文件系统(NFS)
  • 磁盘I/O速度和读写比率
  • 服务器详细信息和资源
  • 内核统计信息
  • 消耗资源最多的进程
  • 运行队列信息

安装与使用

安装

  1. 使用yum安装:
$ yum -y install nmon

nmon监控windows nmon监控网络数据分析_数据

  1. 打开nmon
$ nmon

nmon监控windows nmon监控网络数据分析_数据_02

nmon监控windows nmon监控网络数据分析_服务器_03

  1. 关闭nmonq

常用命令

命令

说明

c

查看cpu相关

m

查看内存相关

n

查看网络相关

d

查看磁盘I/O相关

t

查看相关进程相关

-h

查看帮助说明

q

退出nmon

监控指标方式

屏幕上动态观察

下图手机结果对应c-CPU Utilisation

m-Memory and Swap

n-Network I/OandNetwork Error Counters

d-Disk I/O

t-Top Processes

每隔2s刷新一次收集结果,refesh = 2secs

nmon监控windows nmon监控网络数据分析_数据_04

采集数据到文件

可以通过命令行启动监控,捕获服务器各项数据

$ 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 analysernmon文件进行解析,生成带图表信息的xlsx格式文件。

下载地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser

nmon analyser转换数据

  1. 进入工具目录,双击nmon analyser vxx_x.xlsm格式文件,进入工具界面。
  2. 如果界面提示安全警告,“宏已被禁用”,点击【启用内容】即可。
  3. 点击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%。

nmon监控windows nmon监控网络数据分析_服务器_05

  • SYS_SUMM
  • CPU_ALL:CPU使用情况,展示在采样周期内服务器的CPU的使用情况,实际上,与SYS_SUMM展示的CPU数据是相同的,区别只是前者使用线状图表示。
  • nmon监控windows nmon监控网络数据分析_SYS_06

  • CPU_SUMM:CPU使用情况,页面展示的是每颗CPU的使用情况,与使用top命令,按数字键”1”显示各颗CPU的效果是一样的。

nmon监控windows nmon监控网络数据分析_数据_07

  • DISK_SUMM:主要显示磁盘读、写、IO情况,其中,需要注意的是:某一时间点的磁盘读写数据(Disk Read KB/s\Disk Write KB/s)等于该时间点上所有磁盘和分区的Read/Write的速率(KB/s)之和,分别与页面DISKREAD、DISKWRITE对应;某一采集时间点的IO/sec等于页面DISKXFER中该时间点上所有磁盘和分区的IO/sec之和。因此,该时间点上的I/O值统计是会有重复的。

nmon监控windows nmon监控网络数据分析_服务器_08

  • DISKBUSY:磁盘使用情况,主要显示各个磁盘及分区的繁忙程度,是磁盘使用时间和全部时间的比值,即磁盘有百分之多少时间是活动的。通常,根据该页面显示的磁盘百分比数据,可以快速了解该磁盘的使用情况。

nmon监控windows nmon监控网络数据分析_nmon监控windows_09

  • MEM:内存使用情况,主要显示系统总内存、已用内存、可用内存、swap、cached等内存统计信息,统计单位为MB,图表左轴有个”千”字,单位换算后,memfree约19G

nmon监控windows nmon监控网络数据分析_nmon监控windows_10

  • NET:网络使用情况,显示服务器各个网络适配器读写数据情况,单位KB/s,注意与带宽单位(bps)的换算,1MB/s = 8Mbps,如图:

nmon监控windows nmon监控网络数据分析_服务器_11