一、简介
nmon 工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。这个高效的工具可以工作于任何哑屏幕、telnet 会话、甚至拨号线路。另外,它并不会消耗大量的 CPU 周期,通常低于百分之二。在更新的计算机上,其 CPU 使用率将低于百分之一。使用哑屏幕,在屏幕上对数据进行显示,并且每隔两秒钟对其进行更新。然而,您可以很容易地将这个时间间隔更改为更长或更短的时间段。如果您拉伸窗口,并在X Windows、VNC、PuTTY 或类似的窗口中显示这些数据,nmon 工具可以同时输出大量的信息。 nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形,输出文件采用电子表格的格式。
二、下载
下载地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
下载的文件名为:nmon16d_x86.tar.gz(下载时间不同,版本号可能不同)
将该文件下载到本地,解压,解压后文件夹中的一部分内容如下图所示:
三、使用
根据自己的linux系统版本在解压后的文件夹里选择合适的文件,一般用nmon_linux_x86_64即可。然后使用ftp上传到linux服务器的/usr/local/bin目录并增加可执行权限。
修改权限:chmod 755 nmon_linux_x86_64
在任何目录下输入nmon_linux_x86_64都可以显示cpu等信息了,
(注:如果觉得nmon_linux_x86_64这个命令太长,可以在/usr/local/bin目录下将该文件换名mv nmon_linux_x86_64 nmon)
此时在任何目录下输入nmon,如下面截图所示:
四、生成nmon报告
#nmon -s10 -c30 -f -m /home/chen
参数解释:
-s10 每 10 秒采集一次数据;
-c30 采集 30 次,采集总时长:30*10=300秒;
-f 生成的报告文件名中包含文件创建的时间;
-m 生成的报告文件的存放目录;
生成的文件名如下: XXXXX_180816_1059.nmon ,"XXXXX" 是机器的主机名。
可以通过nmon -h查看有关nmon的更多使用方法。
五、用nmon_analyser工具进行查看报告
将生成的报告传到本地,用nmon_analyser工具进行查看
1、将/home/chen目录下的XXXXX_180816_1059.nmon文件ftp到本地文件夹
2、下载nmon_analyser工具
地址:https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power%20Systems/page/nmon_analyser
需要下载的文件名:nmon_analyser_v54.zip(注:下载时间不同,文件名可能会不同)
下载到本地解压后,打开.xlsm文件,点击‘Analyze nmon data’,此时可能会提示‘宏不可用’,点击‘启用宏’;
再次点击‘Analyze nmon data’,选择刚才ftp到本地的.nmon文件,显示如下图所示:
六、nmon结果文件分析
nmon文件解析出来之后生成的excel表格,有几十个sheet;下面就这些sheet所列指标的含义进行分析。
常用指标分析
监控操作系统,最关注的几个指标分别是CPU、内存、磁盘IO、网络等。下面对几张关键图表进行分析。
a.CPU_ALL:所有CPU概述,显示监控系统所有CPU的平均占用情况,包含User/Sys/Wait/Idle状态
1、User%,用户模式下执行的程序所使用的CPU百分比
2、Sys%,内核模式下执行的程序所使用的CPU百分比
3、Wait%,等待 IO 所花的时间百分比
4、Idel%,CPU的空闲时间百分比,此值和User%,Sys%,Wait%之和等于1
5、CPU%,CPU总体占用情况,这个值通常等于User%+Sys%+Wait%
6、CPUs,CPU核数,即操作系统是多少C的
b. DISK_SUM:总体disk读、写以及I/O操作
1、Disk Read KB/s ,每个磁盘执行采样数据(磁盘设备的读速率)
2、Disk Write KB/s ,每个磁盘执行采样数据(磁盘设备的写速率)
3、IO/sec,每秒钟输出到物理磁盘的传输次数
c. DISKBUSY:每个hdisk设备平均占用情况
单位为%(百分比)
d. MEM:内存使用情况描述,包括物理内存和虚拟内存
1、memtotal,物理内存总大小
2、swaptotal,虚拟内存(即交换空间)的总大小
3、memfree,剩余物理内存大小
4、swapfree,剩余虚拟内存大小
5、cached,已占用的文件系统缓存大小,由物理内存分配
6、buffers,文件系统缓冲区大小
7、swapcached,虚拟内存中已分配出来的内存大小
8、inactive,最近不常使用的内存大小
e. NET:系统中每个网络适配器的数据传输速率(千字节/秒)
1、Total-Read,网络适配器每秒接收的数据包总大小,单位是KB/sec
2、Total-Write (-ve),网络适配器每秒发送的数据包总大小,单位是KB/sec
3、eth0-total,网络适配器每秒接收和发送的数据包总大小,单位是KB/sec
f.Sheet名称
1、SYS_SUMM:系统汇总,蓝线为cpu占有率变化情况,粉线为磁盘IO的变化情况;
2、AAA:关于操作系统以及nmon本身的一些信息;
3、BBBP:vmtune, schedtune, emstat和lsattr命令的输出信息;
4、CPUnn:显示执行之间内CPU占用情况,其中包含user%、sys%、wait%和idle%;
5、CPU_SUMM:每一个CPU在执行时间内的占用情况,其中包含user%、sys%、wait%和idle%;
6、DISKBSIZE:执行时间内每个hdisk的传输块大小;
7、DISKREAD:每个hdisk的平均读情况;
8、DISKWRITE:每个hdisk的平均写情况;
9、DISKXFER:每个hdisk的I/O每秒操作;
10、JFSFILE:本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的空间百分比
11、NETPACKET:本sheet统计每个适配器网络读写包的数量
12、PROC:本sheet包含nmon内核内部的统计信息。其中RunQueue和Swap-in域是使用的平均时间间隔,其他项的单位是比率/秒
13、ZZZZ:本sheet自动转换所有nmon的时间戳为现在真实的时间,方便更容易的分析