nmon
nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。相较于其它系统资源监控工具,nmon所记录的信息比较全面。它可以对以下数据进行监控:
- cpu占用率
- 内存使用情况
- 磁盘I/O速度、传输和读写比率
- 文件系统的使用率
- 网络I/O速度、传输和读写比率、错误统计率与传输包的大小
- 消耗资源最多的进程
- 计算机详细信息和资源
- 页面空间和页面I/O速度
- 用户自定义的磁盘组
- 网络文件系统
下面我们一起来了解她的安装使用。
nmon下载
国外的源站尝试过几乎打不开,或者目录太过繁复,记录一个自己成功安装、使用nmon的经验。
我使用 的是 wget 命令:
wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz
下载页面如下:
执行 ll 命令能在当前目录看到 nmon_linux_14i.tar.gz 文件
解压安装
解压:
tar -zxvf nmon_linux_14i.tar.gz
解压后文件如下图,从图中可以看出,nmon几乎支持当前所有主流的AIX 和 Linux系统。
直接执行系统对应的脚本文件就能启动nmon,博主使用的是redhat:
启动
直接执行后可以看到如下的界面,可以通过输入不同的字符让其展示不同的数据,
如输入c可显示CPU的信息,“m”对应内存、“n”对应网络,“d”可以查看磁盘信息;“t”可以查看系统的进程信息
数据采集配置
nmon可以通过命令的形式来监控系统在一段时间内的使用情况,并将结果记录下来
nmon -f -s 10 -c 60
参数说明:
- -f 表示生成的数据文件名中有时间;
- -s 10 表示每 10 秒采集一次数据;
- -c 60 表示采集 60 次,10*60=600 秒
当我们执行上面的命令后,可以看到当前目录新增了一个以本主机名和当前日期为名称的“.nmon”文件。符合“<hostname>_date_time.nmon", 这个格式。
我们通过ps命令可以看到相关的nmon进程,这个进程10分钟过后会消失。当然,我们也可以直接手动kill掉。
生成图形结果
在运行结束后,我们可以吧这个“.nmon”文件导到本地。然后下载nmonanalyser,打开其中的nmonanalyser文件,并启用宏。
然后点击“Analyse nmon data”导入我们从linux下导出的“.nmon”文件,点击确定,就会自动生成图形化的excel,如下图:
以上就是nmon的简单描述与使用介绍 ~
nmon报告中的参数含义
sheet名称 |
sheet含义
|
SYS_SUMM
|
系统汇总,蓝线为cpu占有率变化情况,粉线为磁盘IO的变化情况;
|
AAA
|
关于操作系统以及nmon本身的一些信息;
|
BBBB
|
系统外挂存储容量以及存储类型;
|
BBBC
|
系统外挂存储位置、状态以及描述信息;
|
BBBD
|
磁盘适配器信息;(包含磁盘适配器名称以及描述)
|
BBBE
|
包含通过lsdev命令获取的系统设备及其特征,显示vpaths和hdisks之间的映射关系;
|
BBBG
|
显示磁盘组详细的映射关系;
|
BBBL
|
逻辑分区(LPAR)配置细节信息;
|
BBBN
|
网络适配器信息;
|
BBBP
|
vmtune, schedtune, emstat和lsattr命令的输出信息;
|
CPUnn
|
显示执行之间内CPU占用情况,其中包含user%、sys%、wait%和idle%;
|
CPU_ALL
|
所有CPU概述,显示所有CPU平均占用情况,其中包含SMT状态;
|
CPU_SUMM
|
每一个CPU在执行时间内的占用情况,其中包含user%、sys%、wait%和idle%;
|
DGBUSY
|
磁盘组每个hdisk设备平均占用情况;
|
DGREAD
|
每个磁盘组的平均读情况;
|
DGSIZE
|
每个磁盘组的平均读写情况(块大小);
|
DGWRITE
|
每个磁盘组的平均写情况;
|
DGXFER
|
每个磁盘组的I/O每秒操作;
|
DISKBSIZE
|
执行时间内每个hdisk的传输块大小;
|
DISKBUSY
|
每个hdisk设备平均占用情况;
|
DISKREAD
|
每个hdisk的平均读情况;
|
DISKWRITE
|
每个hdisk的平均写情况;
|
DISKXFER
|
每个hdisk的I/O每秒操作;
|
DISKSERV
|
本sheet显示在每个收集间隔中hdisk的评估服务时间(未响应时间)
|
DISK_SUMM
|
总体disk读、写以及I/O操作;
|
EMCBSIZE/FAStBSIZE
|
执行时间内EMC存储的传输块大小;
|
EMCBUSY/FAStBUSY
|
EMC存储设备平均占用情况;
|
EMCREAD/FAStREAD
|
EMC存储的平均读情况;
|
EMCWRITE/FAStWRITE
|
EMC存储的平均写情况;
|
EMCXFER/FAStXFER
|
|
EMCSERV/FAStSERV
|
|
ESSBSIZE
|
本sheet记录在系统中每个vpaths下读写操作的平均数据传输大小(blocksize) Kbytes
|
ESSBUSY
|
本sheet记录使用ESS系统的每个vpaths下的设备繁忙情况
|
ESSREAD
|
本sheet记录在系统中每个vpaths下读取操作的 data rate (Kbytes/sec)
|
ESSWRITE
|
本sheet记录在系统中每个vpaths下写入操作的 data rate (Kbytes/sec)
|
ESSXFER
|
本sheet记录在系统中每个vpaths下每秒的IO操作
|
ESSSERV
|
本sheet显示在每个收集间隔中vpaths的评估服务时间(未响应时间)
|
FILE
|
本sheet包含nmon内核内部的统计信息的一个子集,跟sar报告的值相同
|
FRCA
|
|
IOADAPT
|
对于BBBCsheet每个IO适配器列表,包含了数据传输速度为读取和写入操作(千字节/秒)和I / O操作执行的总数量
|
JFSFILE
|
本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的空间百分比
|
JFSINODE
|
本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的inode百分比
|
LARGEPAGE
|
本图表显示Usedpages和Freepages随着时间的变化
|
LPAR
|
|
MEM
|
本sheet主图上显示空闲实存的数量
|
MEMUSE
|
除 %comp参数外,本sheet包含的所有项都和vmtune命令的报告中一样
|
MEMNEW
|
本sheet显示分配的内存片信息,分三大类:用户进程使用页,文件系统缓存,系统内核使用页
|
NET
|
本sheet显示系统中每个网络适配器的数据传输速率(千字节/秒)
|
NETPACKET
|
本sheet统计每个适配器网络读写包的数量;这个类似于netpmon –O dd 命令
|
NFS sheets
|
|
PAGE
|
本sheet统计相关页信息的记录
|
PROC
|
本sheet包含nmon内核内部的统计信息。其中RunQueue和Swap-in域是使用的平均时间间隔,其他项的单位是比率/秒
|
PROCAIO
|
本sheet包含关于可用的和active的异步IO进程数量信息.
|
TOP
|
|
UARG
|
|
WLM sheets
|
|
ZZZZ
|
本sheet自动转换所有nmon的时间戳为现在真实的时间,方便更容易的分析
|