性能监控和分析工具---nmon
一、简介
nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,其中包括:
-
CPU 使用率
-
内存使用情况
-
内核统计信息和运行队列信息
-
磁盘 I/O 速度、传输和读/写比率
-
文件系统中的可用空间
-
磁盘适配器
-
网络 I/O 速度、传输和读/写比率
-
页面空间和页面速度
-
CPU 和 AIX 规范
-
消耗资源最多的进程
-
IBM HTTP Web 缓存
-
用户自定义的磁盘组
-
计算机详细信息和资源
-
异步 I/O,仅适用于 AIX
-
工作负载管理器 (WLM),仅适用于 AIX
-
IBM TotalStorage? Enterprise StorageServer? (ESS) 磁盘,仅适用于 AIX
-
网络文件系统 (NFS)
-
动态 LPAR (DLPAR) 更改,仅适用于面向 AIX 或 Linux 的 pSeries p5 和 OpenPower 还包括一个用来从 nmon 的输出生成图形并创建可以在 Web 站点显示的 .gif 文件的新工具。
二、工具获取
下载地址:
http://sourceforge.jp/projects/sfnet_nmon/releases/ 或者直接从这获取,还包含分析工具。可下载比较全的压缩包:
nmon_linux_14i_newer_Linux_versions.tar.gz
官方地址:http://nmon.sourceforge.net/
三、使用
1.解压并获取以对应平台的nmon工具文件: nmon_linux_14i_newer_Linux_versions.tar.gz
解压后,可以看到各个平台的文件,我们只需要使用适合的即可,一般是nmon_linux_x86_64。
2. 将nmon工具文件上传至服务器的相应目录并增加可执行权限
a. 上传成功后:
b. 增加可执行权限:
chmod 755 nmon_linux_x86_64
3. 使用nmon工具的实时监控功能
输入./ nmon_linux_x86_64 即可打开实时监控,刚下载的工具似乎没有依赖的包无法使用。。。
那我还是用服务器原本配置好的工具:nmon_x86_rhel54,输入./ nmon_x86_rhel54 即可看到如下画面:
执行./nmon_x86_rhel54,可以看到“Use these keys to toggle statistics on/off”提示,根据需要输入对应key;也可以输入“h”打开帮助页面。通常输入c或者l、m、n、d、t,可以监控系统cpu,内存,网络,磁盘,以及列出消耗CPU最高的进程,这些是我们通常监控的信息。再次输入对应的key表示收起该监控信息。
4. 其他选项,可以通过-? 或-h获取工具的帮助信息
-?用于获取简短帮助信息
-h用于获取详细帮助信息
四、数据采集
为了实时监控系统在一段时间内的使用情况并将结果记录下来,我们可以通过运行以下命令实现:
$./nmon_x86_rhel54 -ft -s 30 -c 10 -f:按标准格式输出文件:<hostname>_YYYYMMDD_HHMM.nmon; -t:输出中包括占用率较高的进程; -s 30:每30秒进行一次数据采集 -c 10:一共采集10次
输入命令回车后,将自动在当前目录生成一个hostname_timeSeries.nmon的文件,如果hostname为svcpreapp01,生成的文件为:svcpreapp01_151221_1738.nmon,如下:
五、生成报告
生成的文件通过ftp工具或命令传输到本地,使用nmon analyser工具进行解析,可生成可读性较高的excel文件。
nmon_analyser工具下载地址:
目前最新的为4.6版本,下载包中包含了说明文档:
1.打开工具文件
2.点击“Analyse nmon data”,选定需要解析的nmon文件,解析完成后工具自动生成以nmon文件名命名的xlsx的文件,如下:
3. 解析完成后可关闭工具文件nmon_analyser_v34a.xls,直接使用分析结果文件即可。如下表示分析完成:
六、nmon结果文件分析
nmon文件解析出来之后生成的excel表格,有几十个sheet;下面就这些sheet所列指标的含义进行分析。
常用指标分析
监控操作系统,最关注的几个指标分别是CPU、内存、磁盘IO、网络等。下面对几张关键图表进行分析。
1. CPU_ALL:所有CPU概述,显示监控系统所有CPU的平均占用情况,包含User/Sys/Wait/Idle状态
a. User%,用户模式下执行的程序所使用的CPU百分比 b. Sys%,内核模式下执行的程序所使用的CPU百分比 c. Wait%,等待 IO 所花的时间百分比 d. Idel%,CPU的空闲时间百分比,此值和User%,Sys%,Wait%之和等于1 e. CPU%,CPU总体占用情况,这个值通常等于User%+Sys%+Wait% f. CPUs,CPU核数,即操作系统是多少C的
2. DISK_SUM:总体disk读、写以及I/O操作
a. Disk Read KB/s ,每个磁盘执行采样数据(磁盘设备的读速率) b. Disk Write KB/s ,每个磁盘执行采样数据(磁盘设备的写速率) c. IO/sec,每秒钟输出到物理磁盘的传输次数
3. DISKBUSY:每个hdisk设备平均占用情况
单位为%(百分比)
4. MEM:内存使用情况描述,包括物理内存和虚拟内存
a. memtotal,物理内存总大小
b. swaptotal,虚拟内存(即交换空间)的总大小
c. memfree,剩余物理内存大小
d. swapfree,剩余虚拟内存大小
e. cached,已占用的文件系统缓存大小,由物理内存分配
f. buffers,文件系统缓冲区大小
g. swapcached,虚拟内存中已分配出来的内存大小
h. inactive,最近不常使用的内存大小
5. NET:系统中每个网络适配器的数据传输速率(千字节/秒)
a. Total-Read,网络适配器每秒接收的数据包总大小,单位是KB/sec b. Total-Write (-ve),网络适配器每秒发送的数据包总大小,单位是KB/sec c. eth0-total,网络适配器每秒接收和发送的数据包总大小,单位是KB/sec
其他指标图表
Sheet名称 | 描述 |
---|---|
SYS_SUMM | 系统汇总,蓝线为cpu占有率变化情况,粉线为磁盘IO的变化情况; |
AAA | 关于操作系统以及nmon本身的一些信息; |
BBBP | vmtune, schedtune, emstat和lsattr命令的输出信息; |
CPUnn | 显示执行之间内CPU占用情况,其中包含user%、sys%、wait%和idle%; |
CPU_SUMM | 每一个CPU在执行时间内的占用情况,其中包含user%、sys%、wait%和idle%; |
DISKBSIZE | 执行时间内每个hdisk的传输块大小; |
DISKREAD | 每个hdisk的平均读情况; |
DISKWRITE | 每个hdisk的平均写情况; |
DISKXFER | 每个hdisk的I/O每秒操作; |
JFSFILE | 本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的空间百分比 |
NETPACKET | 本sheet统计每个适配器网络读写包的数量 |
PROC | 本sheet包含nmon内核内部的统计信息。其中RunQueue和Swap-in域是使用的平均时间间隔,其他项的单位是比率/秒 |
ZZZZ |