性能监控和分析工具---nmon 性能监控和分析工具---nmon

一、简介

nmon 工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。这个高效的工具可以工作于任何哑屏幕、telnet 会话、甚至拨号线路。另外,它并不会消耗大量的 CPU 周期,通常低于百分之二。在更新的计算机上,其 CPU 使用率将低于百分之一。使用哑屏幕,在屏幕上对数据进行显示,并且每隔两秒钟对其进行更新。然而,您可以很容易地将这个时间间隔更改为更长或更短的时间段。如果您拉伸窗口,并在X Windows、VNC、PuTTY 或类似的窗口中显示这些数据,nmon 工具可以同时输出大量的信息。 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。

性能监控和分析工具---nmon
性能监控和分析工具---nmon

2. 将nmon工具文件上传至服务器的相应目录并增加可执行权限

a. 上传成功后:

性能监控和分析工具---nmon
性能监控和分析工具---nmon

b. 增加可执行权限:

chmod 755 nmon_linux_x86_64

性能监控和分析工具---nmon
性能监控和分析工具---nmon

3. 使用nmon工具的实时监控功能

输入./ nmon_linux_x86_64 即可打开实时监控,刚下载的工具似乎没有依赖的包无法使用。。。

 

性能监控和分析工具---nmon
性能监控和分析工具---nmon

那我还是用服务器原本配置好的工具:nmon_x86_rhel54,输入./ nmon_x86_rhel54 即可看到如下画面:

性能监控和分析工具---nmon
性能监控和分析工具---nmon

执行./nmon_x86_rhel54,可以看到“Use these keys to toggle statistics on/off”提示,根据需要输入对应key;也可以输入“h”打开帮助页面。通常输入c或者l、m、n、d、t,可以监控系统cpu,内存,网络,磁盘,以及列出消耗CPU最高的进程,这些是我们通常监控的信息。再次输入对应的key表示收起该监控信息。

 

4. 其他选项,可以通过-? 或-h获取工具的帮助信息

 

-?用于获取简短帮助信息

性能监控和分析工具---nmon
性能监控和分析工具---nmon

-h用于获取详细帮助信息

性能监控和分析工具---nmon
性能监控和分析工具---nmon

四、数据采集

为了实时监控系统在一段时间内的使用情况并将结果记录下来,我们可以通过运行以下命令实现:

$./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,如下:

性能监控和分析工具---nmon
性能监控和分析工具---nmon

五、生成报告

生成的文件通过ftp工具或命令传输到本地,使用nmon analyser工具进行解析,可生成可读性较高的excel文件。

nmon_analyser工具下载地址:

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power+Systems/page/nmon_analyser

目前最新的为4.6版本,下载包中包含了说明文档:

性能监控和分析工具---nmon
性能监控和分析工具---nmon

 

1.打开工具文件

性能监控和分析工具---nmon
性能监控和分析工具---nmon

2.点击“Analyse nmon data”,选定需要解析的nmon文件,解析完成后工具自动生成以nmon文件名命名的xlsx的文件,如下:

性能监控和分析工具---nmon
性能监控和分析工具---nmon

3. 解析完成后可关闭工具文件nmon_analyser_v34a.xls,直接使用分析结果文件即可。如下表示分析完成:

性能监控和分析工具---nmon
性能监控和分析工具---nmon

六、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的

性能监控和分析工具---nmon
性能监控和分析工具---nmon

2. DISK_SUM:总体disk读、写以及I/O操作
a. Disk Read KB/s ,每个磁盘执行采样数据(磁盘设备的读速率)

b. Disk Write KB/s ,每个磁盘执行采样数据(磁盘设备的写速率)

c. IO/sec,每秒钟输出到物理磁盘的传输次数

性能监控和分析工具---nmon
性能监控和分析工具---nmon

3. DISKBUSY:每个hdisk设备平均占用情况

单位为%(百分比)

性能监控和分析工具---nmon
性能监控和分析工具---nmon

4. MEM:内存使用情况描述,包括物理内存和虚拟内存

a. memtotal,物理内存总大小

b. swaptotal,虚拟内存(即交换空间)的总大小

c. memfree,剩余物理内存大小

d. swapfree,剩余虚拟内存大小

e. cached,已占用的文件系统缓存大小,由物理内存分配

f. buffers,文件系统缓冲区大小

g. swapcached,虚拟内存中已分配出来的内存大小

h. inactive,最近不常使用的内存大小

性能监控和分析工具---nmon
性能监控和分析工具---nmon

5. NET:系统中每个网络适配器的数据传输速率(千字节/秒)

a. Total-Read,网络适配器每秒接收的数据包总大小,单位是KB/sec

b. Total-Write (-ve),网络适配器每秒发送的数据包总大小,单位是KB/sec

c. eth0-total,网络适配器每秒接收和发送的数据包总大小,单位是KB/sec

性能监控和分析工具---nmon
性能监控和分析工具---nmon

 

其他指标图表

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 本sheet自动转换所有nmon的时间戳为现在真实的时间,方便更容易的分析