1、nmon工具介绍:
nmon工具是linux系统下可以对服务器及系统性能进行监测,CPU信息、CPU占用、内存使用、网卡使用等。最大的好处是此工具会将结果以列表的形式或者是模拟图形化的方式展示,不需要从繁琐的数据结果中抠字眼。nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形。输出文件采用电子表格的格式 (.csv)。
2、安装nmon:
将nmon4aix_11e.tar.gz放入linux系统某目录下,如:/opt下
[root@localhost opt]# tar –xvzf nmon4aix_11e.tar.gz --解压缩压缩文件
[root@localhost opt]# cd nmon4aix_11e --进入nmon目录
[root@localhost nmon4aix_11e]# ./configure –prefix=/usr/local/nmon --预编译工具程序
[root@localhost nmon4aix_11e]# make&make install --链接程序及安装
到此安装完毕
3、使用方法:
打开nmon,直接./nmon_x86_rhel52即可
以上界面,可以看到,按对应的按键查看相应的信息。
q : 停止并退出Nmon
h : 查看帮助信息
c : 查看 CPU 统计信息
m : 查看内存统计信息
d : 查看磁盘统计信息
k : 查看内核统计信息
n : 查看网络统计信息
N : 查看 NFS 统计信息
j : 查看文件系统统计信息
t : 查看 Top 进程统计信息
V : 查看虚拟内存统计信息
v : 详细输出模式
例如:
如果你想查看 CPU 性能信息,可以直接按 c 键:
如果你想查看 Top 进程统计信息,可以直接按 t 键:
4、NMON后台监控系统性能并生成报表
数据采集:
运行带 -f 标志的 nmon 命令。有关详细信息,请参阅 nmon -h。但是作为示例,可以尝试运行下面的 nmon 命令来,告知 nmon 创建文件,并每隔 30 秒的时间进行一次数据收集,共采集 180 次(共计 1.5 个小时):
nmon -f -s 10 -c 60
-f 表示生成的数据文件名中有时间;
-s 10 表示每 10 秒采集一次数据;
-c 60 表示采集 60 次,10*60=600 秒,
刚好是 10分钟的数据,这样运行一次这个程序就会生成一个采集 10分钟数据的文件。该行命令将在当前目录中创建输出文件,其名称为:<hostname>_date_time.nmon", hostname" 是这台主机的主机名。
例如:
[root@localhost source]# hostname
linux_test
[root@localhost source]# ./nmon -f -s -c
[root@localhost source]# ps -ef | grep nmon
root : pts/ :: ./nmon -f -s -c
root : pts/ :: grep nmon
[root@localhost source]# ls linux_test_120724_0822.nmon
linux_test_120724_0822.nmon
当我们执行相关命令后,就在当前目录生成了一个以本主机名linux_test开头,以执行日期为规则,nmon结尾的文件,并且我们通过ps命令会看到相关的nmon进程,这里我们当10分钟过去以后我们会发现相关nmon进程会消失的。
linux_test_120724_0822.nmon 就是我们所生成的数据文件,所有的信息都在linux_test_120724_0822.nmon记录,而且我们通过more命令后发现都是我们看不懂的一些文本,这就需要我们把其转化成我们能看懂的excel格式的文件。首先我们把linux_test_120724_0822.nmon文件导出到我们的windows本地。然后我们从http://www.ibm.com/developerworks/wikis/display/Wikiptype/nmonanalyser下载nmonanalyser软件到windows本地。打开解压缩文件后,我们会发现2个文件,一个是nmonanalyse的说明word格式的说明稳定,另一个是excel格式的nmonanalyse文件。
我们这里所需要的就是excel格式问文件,我们双击打开。
点解按钮导入文本结果即可。
以下是效果的展示:
附录:nmon分析文件各sheet含义
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的时间戳为现在真实的时间,方便更容易的分析 |
nmon分析文件详细指标详解
指标类型 |
指标名称 |
指标含义 |
SYS_SUMM |
CPU% |
cpu占有率变化情况; |
IO/sec |
IO的变化情况; |
|
AAA |
AIX |
AIX版本号; |
build |
build版本号; |
|
command |
执行命令; |
|
cpus |
CPU数量; |
|
date |
执行日期; |
|
disks_per_line |
||
hardware |
被测主机处理器技术; |
|
host |
被测主机名; |
|
interval |
监控取样间隔;(秒) |
|
kernel |
被测主机内核信息; |
|
ML |
维护等级; |
|
progname |
执行文件名称; |
|
runname |
运行主机名称; |
|
snapshots |
实际快照次数; |
|
subversion |
nmon版本详情; |
|
time |
执行开始时间戳; |
|
user |
执行命令用户名; |
|
version |
收集数据的nmon版本; |
|
analyser |
nmon analyser版本号; |
|
environment |
所用excel版本; |
|
parms |
excel参数设定; |
|
settings |
excel环境设置; |
|
elapsed |
生成excel消耗时间; |
|
BBBB |
name |
存储磁盘名称; |
size(GB) |
磁盘容量; |
|
disc attach type |
磁盘类型; |
|
BBBC |
hdisknn |
各个磁盘信息、状态以及MOUNT位置; |
BBBD |
Adapter_number |
磁盘适配器编号; |
Name |
磁盘适配器名称; |
|
Disks |
磁盘适配器数量; |
|
Description |
磁盘适配器描述; |
|
BBBE |
||
BBBG |
||
BBBL |
||
BBBN |
NetworkName |
网络名称; |
MTU |
网络上传送的最大数据包,单位是字节; |
|
Mbits |
带宽; |
|
Name |
名称; |
|
BBBP |
vmtune, schedtune, emstat 和 lsattr命令的输出信息; |
|
CPUnn |
CPU nn |
执行间隔时间列表; |
User% |
显示在用户模式下执行的程序所使用的 CPU 百分比; |
|
Sys% |
显示在内核模式下执行的程序所使用的 CPU 百分比; |
|
Wait% |
显示等待 IO 所花的时间百分比; |
|
Idle% |
显示 CPU 的空闲时间百分比; |
|
CPU% |
CPU总体占用情况; |
|
CPU_ALL |
CPU nn |
执行间隔时间列表; |
User% |
显示在用户模式下执行的程序所使用的 CPU 百分比; |
|
Sys% |
显示在内核模式下执行的程序所使用的 CPU 百分比; |
|
Wait% |
显示等待 IO 所花的时间百分比; |
|
Idle% |
显示 CPU 的空闲时间百分比; |
|
CPU% |
CPU总体占用情况; |
|
Logical CPUs (SMT=on) |
||
CPU_SUMM |
CPU_SUMM |
CPU编号; |
User% |
显示在用户模式下执行的程序所使用的 CPU 百分比; |
|
Sys% |
显示在内核模式下执行的程序所使用的 CPU 百分比; |
|
Wait% |
显示等待 IO 所花的时间百分比; |
|
Idle% |
显示 CPU 的空闲时间百分比; |
|
DGBUSY |
||
DGREAD |
||
DGSIZE |
||
DGWRITE |
||
DGXFER |
||
DISKBSIZE |
Disk Block Size Hostname |
执行间隔时间列表; |
hdisknn |
磁盘传输速度时间间隔采样;(读和写的总趋势图) |
|
DISKBUSY |
Disk %Busy Hostname |
执行间隔时间列表; |
hdisknn |
每个磁盘执行采样数据;(磁盘设备的占用百分比) |
|
DISKREAD |
Disk Read kb/s Hostname |
执行间隔时间列表; |
hdisknn |
每个磁盘执行采样数据;(磁盘设备的读速率) |
|
DISKWRITE |
Disk Write kb/s Hostname |
执行间隔时间列表; |
hdisknn |
每个磁盘执行采样数据;(磁盘设备的写速率) |
|
DISKXFER |
Disk transfers per second Hostname |
执行间隔时间列表; |
hdisknn |
每秒钟输出到物理磁盘的传输次数; |
|
DISKSERV |
||
DISK_SUMM |
Disk total kb/s Hostname |
执行间隔时间列表; |
Disk Read kb/s |
每个磁盘执行采样数据;(磁盘设备的读速率) |
|
Disk Write kb/s |
每个磁盘执行采样数据;(磁盘设备的写速率) |
|
IO/sec |
每秒钟输出到物理磁盘的传输次数; |
|
EMCBSIZE/FAStBSIZE |
||
EMCBUSY/FAStBUSY |
||
EMCREAD/FAStREAD |
||
EMCWRITE/FAStWRITE |
||
EMCXFER/FAStXFER |
||
EMCSERV/FAStSERV |
||
ESSBSIZE |
||
ESSBUSY |
||
ESSREAD |
||
ESSWRITE |
||
ESSXFER |
||
ESSSERV |
||
FILE |
iget |
在监控期间每秒钟到节点查找例行程序的呼叫数 |
namei |
在监控期间每秒钟路径查找例行程序的呼叫数(sar -a ). |
|
dirblk |
在监控期间通过目录搜索例行程序每秒钟扫描到的目录块数 |
|
readch |
在监控期间通过读系统呼叫每秒钟读出的字节数(sar -c) |
|
writech |
在监控期间通过写系统呼叫每秒钟写入的字节数(sar -c) |
|
ttyrawch |
在监控期间通过TTYs每秒钟读入的裸字节数(sar -y ). |
|
ttycanch |
终端输入队列字符 . 对于aix Version 4或者更后的版本这个值总是0 |
|
ttyoutch |
终端输出队列字符. (sar -y ). |
|
FRCA |
||
IOADAPT |
Disk Adapter Hostname(KB/s) |
执行间隔时间列表; |
Disk Adapter_read |
磁盘适配器读速率; |
|
Disk Adapter_write |
磁盘适配器写速率; |
|
Disk Adapter_xfer-tps |
磁盘适配器传输速率;(该物理磁盘每秒的 IO 传输请求数量) |
|
JFSFILE |
JFS Filespace %Used Hostname |
执行间隔时间列表; |
file system/LV |
文件系统以及mount磁盘设备已使用空间百分比; |
|
JFSINODE |
JFS Inode %Used Hostname |
执行间隔时间列表; |
file system/LV |
文件系统以及mount磁盘设备的inode已使用空间百分比; |
|
LARGEPAGE |
||
LPAR |
||
MEM |
Memory Hostname |
执行间隔时间列表; |
Real Free % |
实际剩余内存百分比; |
|
Virtual free % |
虚拟剩余内存百分比; |
|
Real free(MB) |
实际剩余内存大小;(MB) |
|
Virtual free(MB) |
虚拟剩余内存大小;(MB) |
|
Real total(MB) |
实际内存总体大小;(MB) |
|
Virtual total(MB) |
虚拟内存总体大小;(MB) |
|
MEMUSE |
%numperm |
分配给文件页的实际内存百分比 |
%minperm |
mixperm的缺省值约为20%的物理内存.通常会不断的运行,除非vmtune或rmss命令中使用收集 |
|
%maxperm |
maxperm的缺省值约为80%的物理内存. 通常会不断的运行,除非vmtune或rmss命令中使用收集 |
|
minfree |
空闲页面数的最小值 |
|
maxfree |
空闲页面数的最大值 |
|
%comp |
分配给计算页的内存百分比,NMON分析器计算这个值 计算页是可被 page space支持的,包括存储和程序文本段 |
|
MEMNEW |
Process% |
分配给用户进程的内存百分比 |
FSCache% |
分配给文件系统缓存的内存百分比 |
|
System% |
系统程序使用的内存百分比 |
|
Free% |
未被分配的内存百分比 |
|
User% |
非系统程序使用的内存百分比 |
|
NET |
read/write |
显示系统中每个网络适配器的数据传输速率(千字节/秒) |
NETPACKET |
reads/s |
统计每个适配器网络读包的数量 |
writes/s |
统计每个适配器网络写包的数量 |
|
NFS sheets |
||
PAGE |
faults |
每秒的page faults数 |
pgin |
每秒钟所读入的页数,包括从文件系统读取的页数 |
|
pgout |
每秒钟所写出的页数,包括写到文件系统的页数 |
|
pgsin |
每秒钟从页面空间所读取的页数 |
|
pgsout |
每秒钟写到页面空间的页数 |
|
reclaims |
从nmon回收这项之前的10个,和vmstat报告的值是一样的,代表了页替换机制释放的pages/sec的数量 |
|
scans |
扫描页替换机制的pages/sec的数量,和vmstat报告的值是一样的,页替换在空闲页数量到达最小值时初始化,在空闲到达最大值时停止 |
|
cycles |
周期 times/sec的数值,页替换机制需要扫描整个页表,来补充空闲列表。这和vmstat报告的cy数值一样,只是vmstat报告的这个值是整形值,而nmon报告的是实型值 |
|
fsin |
分析器计算的数据为pgin-pgsin的图形处理所用 |
|
fsout |
分析器计算的数据为pgout-pgsout的图形处理所用 |
|
sr/fr |
分析器计算的数据为scans/reclaims的图形处理所用 |
|
PROC |
RunQueue |
运行队列中的内核线程平均数(同sar -q中的runq-sz) |
Swap-in |
等待page in的内核线程平均数 (同sar -q中的swpq-sz) |
|
pswitch |
上下文开关个数 |
|
syscall |
系统调用总数.(同sar -c中的scall/s) |
|
read |
系统调用中read的数量. (同sar -c中的sread/s) |
|
write |
系统调用中write的数量. (同sar -c中的swrit/s) |
|
fork |
系统调用中fork的数量. (同sar -c中的 fork/s) |
|
exec |
系统调用中exec 的数量. (同sar -c中的 exec/s) |
|
rcvint |
tty接收中断的数量. (同sar -y中的 revin/s) |
|
xmtint |
tty传输中断的数量. (同sar -y中的 xmtin/s) |
|
sem |
IPC信号元的数量 创建,使用和消除). (同sar -m中的 sema/s) |
|
msg |
IPC消息元的数量 (发送和接收). (同sar -m中的 sema/s) |
|
PROCAIO |
||
TOP |
PID |
进程号 |
%CPU |
CPU使用的平均数 |
|
%Usr |
显示运行的用户程序所占用的CPU百分比 |
|
%Sys |
显示运行的系统程序所占用的CPU百分比 |
|
Threads |
被使用在这个程序中的线程数 |
|
Size |
对于这个程序一次调用分配给数据段的paging space平均值 |
|
ResText |
对于这个程序一次调用分配给代码段的内存平均值 |
|
ResData |
对于这个程序一次调用分配给数据段的内存平均值 |
|
CharIO |
通过读写系统调用的每秒字节数 |
|
%RAM |
此命令所使用的内存百分比 |
|
Paging |
此进程所有page faults的总数 |
|
Command |
命令名称 |
|
WLMClass |
此程序已分配的 Workload Manager superclass名称 |
|
IntervalCPU |
详细信息中显示在时间间隔中所有调用命令所使用的CPU总数 |
|
WSet |
详细信息中显示在时间间隔中所有调用命令所使用的内存总数 |
|
User |
运行进程的用户名 |
|
Arg |
包含完整的参数字符串输入命令 |
|
UARG |
||
WLM sheets |
||
ZZZZ |
||
nmon关键指标列表
关键指标类型 |
关键指标名称 |
关键指标含义 |
SYS_SUMM |
CPU% |
cpu占有率变化情况; |
IO/sec |
IO的变化情况; |
|
AAA |
AIX |
AIX版本号; |
cpus |
CPU数量; |
|
hardware |
被测主机处理器技术; |
|
host |
被测主机名; |
|
interval |
监控取样间隔;(秒) |
|
kernel |
被测主机内核信息; |
|
CPU_ALL |
User% |
显示在用户模式下执行的程序所使用的 CPU 百分比; |
Sys% |
显示在内核模式下执行的程序所使用的 CPU 百分比; |
|
Wait% |
显示等待 IO 所花的时间百分比; |
|
Idle% |
显示 CPU 的空闲时间百分比; |
|
CPU% |
CPU总体占用情况; |
|
DISKBUSY |
Disk %Busy Hostname |
执行间隔时间列表; |
hdisknn |
每个磁盘执行采样数据;(磁盘设备的占用百分比) |
|
DISK_SUMM |
Disk total kb/s Hostname |
执行间隔时间列表; |
Disk Read kb/s |
每个磁盘执行采样数据;(磁盘设备的读速率) |
|
Disk Write kb/s |
每个磁盘执行采样数据;(磁盘设备的写速率) |
|
IO/sec |
每秒钟输出到物理磁盘的传输次数; |
|
NET |
read/write |
本sheet显示系统中每个网络适配器的数据传输速率(千字节/秒) |
JFSFILE |
JFS Filespace %Used Hostname |
执行间隔时间列表; |
file system/LV |
文件系统以及mount磁盘设备已使用空间百分比; |
|
JFSINODE |
JFS Inode %Used Hostname |
执行间隔时间列表; |
file system/LV |
文件系统以及mount磁盘设备的inode已使用空间百分比; |
|
MEM |
Memory Hostname |
执行间隔时间列表; |
Real Free % |
实际剩余内存百分比; |
|
Virtual free % |
虚拟剩余内存百分比; |
|
Real free(MB) |
实际剩余内存大小;(MB) |
|
Virtual free(MB) |
虚拟剩余内存大小;(MB) |
|
Real total(MB) |
实际内存总体大小;(MB) |
|
Virtual total(MB) |
虚拟内存总体大小;(MB) |
|
PAGE |
faults |
每秒的page faults(页错误)数; |
pgin |
每秒钟所读入的页数,包括从文件系统读取的页数 |
|
pgout |
每秒钟所写出的页数,包括写到文件系统的页数 |
|
pgsin |
每秒钟从页面空间所读取的页数 |
|
pgsout |
每秒钟写到页面空间的页数 |
|
reclaims |
从nmon回收这项之前的10个,和vmstat报告的值是一样的,代表了页替换机制释放的pages/sec的数量 |
|
scans |
扫描页替换机制的pages/sec的数量,和vmstat报告的值是一样的,页替换在空闲页数量到达最小值时初始化,在空闲到达最大值时停止 |
|
cycles |
周期 times/sec的数值,页替换机制需要扫描整个页表,来补充空闲列表。这和vmstat报告的cy数值一样,只是vmstat报告的这个值是整形值,而nmon报告的是实型值 |
|
fsin |
分析器计算的数据为pgin-pgsin的图形处理所用 |
|
fsout |
分析器计算的数据为pgout-pgsout的图形处理所用 |
|
sr/fr |
分析器计算的数据为scans/reclaims的图形处理所用 |