nmon:分析AIX和Linux性能的免费工具
链接:http://www.eygle.com/digest/2008/03/nmon_aix_linux.html
用法说明:这个 nmon
工具并未受到正式支持。没有提供或隐含任何保证,并且您无法从 IBM 获取相关的帮助。
nmon
工具运行于:
- AIX® 4.1.5、4.2.0、4.3.2 和 4.3.3(nmon Version 9a:该版本的功能已经确定,并且不会对其进行进一步的开发。)
- AIX 5.1、5.2 和 5.3(nmon Version 10:该版本现在支持 AIX 5.3 和基于 POWER5™ 处理器的计算机,并且提供了 SMT 和共享 CPU 微分区的支持。)
- pSeries® p5 和 OpenPower™ 上的 Linux™ SUSE SLES 9、Red Hat EL 3 和 4、Debian
- Linux SUSE、Red Hat 和许多最新的 x86(32 位模式的 Intel 和 AMD)上的发布版
- zSeries® 或 mainframe 上的 Linux SUSE 和 Red Hat
nmon
工具大约每六个月更新一次,或者在可用的新的操作系统发布版中对其进行更新。要将您的名字放入到请求更新的电子邮件列表中,请与 Nigel Griffiths 联系。
这个工具可以与 nmon 分析程序一同使用,后者将加载 nmon
的输出文件并自动地创建大量的图形。
nmon
工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,其中包括:
- CPU 使用率
- 内存使用情况
- 内核统计信息和运行队列信息
- 磁盘 I/O 速度、传输和读/写比率
- 文件系统中的可用空间
- 磁盘适配器
- 网络 I/O 速度、传输和读/写比率
- 页面空间和页面速度
- CPU 和 AIX 规范
- 消耗资源最多的进程
- IBM HTTP Web 缓存
- 用户自定义的磁盘组
- 计算机详细信息和资源
- 异步 I/O,仅适用于 AIX
- 工作负载管理器 (WLM),仅适用于 AIX
- IBM TotalStorage® Enterprise Storage Server® (ESS) 磁盘,仅适用于 AIX
- 网络文件系统 (NFS)
- 动态 LPAR (DLPAR) 更改,仅适用于面向 AIX 或 Linux 的 pSeries p5 和 OpenPower
还包括一个用来从 nmon
的输出生成图形并创建可以在 Web 站点显示的 .gif 文件的新工具。
有关详细信息,请参阅自述文件。
![]() ![]() |
![]()
|
nmon
工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。这个高效的工具可以工作于任何哑屏幕、telnet 会话、甚至拨号线路。另外,它并不会消耗大量的 CPU 周期,通常低于百分之二。在更新的计算机上,其 CPU 使用率将低于百分之一。
使用哑屏幕,在屏幕上对数据进行显示,并且每隔两秒钟对其进行更新。然而,您可以很容易地将这个时间间隔更改为更长或更短的时间段。如果您拉伸窗口,并在 X Windows、VNC、PuTTY 或类似的窗口中显示这些数据,nmon
工具可以同时输出大量的信息。
nmon
工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形。输出文件采用电子表格的格式 (.csv)。
![]() ![]() |
![]()
|
该工具是一个独立的二进制文件(不同的 AIX 或 Linux 版本中该文件也有所不同),您可以在五秒钟内完成该工具的安装,如果您的输入速度更快的话,也许时间更短。安装过程非常简单:
- 将
nmonXXX.tar.Z
文件复制到计算机。如果使用 FTP,请记住使用二进制模式。
注意:示例中的 XXX 由实际的版本代替。 - 要解压该文件,可以运行
uncompress nmonXX.tar.Z
。 - 要提取该文件,可以运行
tar xvf nmonXX.tar
。 - 阅读自述文件。
- 要启动
nmon
工具,输入nmon
。 - 如果您是 root 用户,可能需要输入
./nmon
。
- 必须是 root 用户,或者通过输入下面的命令允许一般用户读取 /dev/kmem 文件(作为 root 用户):
chmod ugo+r /dev/kmem
- 如果您需要磁盘统计信息,还可以运行下面的命令(作为 root 用户):
chdev -l sys0 -a iostat=true
要以交互式的方式运行该工具,请阅读该文件前页中的相关提示。然后启动该工具,并使用单键命令来查看您所需要的数据。例如,要获取 CPU、内存和磁盘统计信息,启动 nmon
并输入:
cmd |
按 h
键。
要获取附加的帮助信息,可以尝试下列方法:
- 输入
nmon -?
命令以获取简短的详细信息。 - 输入
nmon -h
命令以获取完整的详细信息。 - 阅读自述文件。
运行带 -f 标志的 nmon
命令。有关详细信息,请参阅 nmon -h
。但是作为示例,可以尝试运行下面的 nmon
命令,在 1 小时内以 30 秒的时间间隔捕获数据快照:
nmon -f -s 30 -c 120 nmon -fT -s 30 -c 120 |
第二行的命令还可以捕获消耗资源最多的进程。这两行命令都将在当前目录中创建输出文件,其名称为:
<hostname>_date_time.nmon |
该文件采用逗号分隔值 (CSV) 的格式,并且可以将其直接导入到电子表格中。如果您使用的是 Lotus® 1-2-3,那么需要对该文件进行排序。(对于 Excel 版本的 nmon
分析程序,则不需要进行这个操作。)在 AIX 中,请遵循下面的示例:
sort -A mymachine_311201_1030.nmon > xxx.csv |
关于如何节省时间的说明:
- 要将
nmon
数据捕获文件加载到电子表格,可以查看电子表格文档中有关加载 CSV 数据文件 (.csv) 的内容。许多电子表格可以接受该数据,作为可加载的文件之一,或者提供完成这项任务的导入函数。许多电子表格具有固定数目的列和行。我建议您最多收集 300 个快照,这样就可以避免碰上这些问题。 - 当您将数据捕获到一个文件中时,
nmon
将断开与Shell 的连接以确保它能够连续运行,即使您在此过程中执行了注销操作。这意味着nmon
可能出现故障,即使它仍然在后台运行。要查看该进程是否仍在运行,可以输入:ps ?ef | grep nmon
- 有关您的特定的操作系统上运行的
nmon
版本的详细信息,请阅读自述文件。 - 面向 AIX 5 的
nmon
Version 10 不再使用 /dev/kmem,仅使用一些公开的 API。因此,您不需要更改 /dev/kmem 的权限,并且不需要使用 32 位和 64 位版本的nmon
。 - 对于 AIX 5.1、5.2 和 5.3,可以使用
nmon
10。 - 从 ML03 AIX 中开始,不再报告 AIX 5.1 中的
lslpp -Lcq bos.?p
核心转储。另外,在升级到 AIX 5.2 ML5 后,Nigel Griffiths 忽略了 WLM 状态信息,而这些也是 AIX 错误。通过使用nmon
Version 10,可以避免这些问题。 - 不要使用 Microsoft® Windows® Telnet 和大于 80 x 25 字符的窗口。许多开发人员使用 VNC 和 PuTTY 来显示来自 Windows 计算机的
nmon
,为什么不使用相同的方法呢!
![]() ![]() |
![]()
|
新特性 | 描述 |
启动 | 目前还有一个称为 "nmon" 的小型 Shell 脚本,可以用来启动适当的 nmon 版本。将该脚本和 nmon 二进制文件放入到您的 $PATH 中,然后输入:nmon 。该版本目前仅在 32 位模式下进行了编译。所以,它可以运行于 32 位和 64 位硬件。这是为了使它更容易安装和运行。 |
N = NFS | 对于 nmon 10 来说,NFS 是全新的特性。 |
p = 分区 (Partitions) | 该特性是为了共享 CPU 分区信息,这是 p5/AIX5.3 的重要特性。 |
C = CPU | 这是为了支持使用 32 个以上 CPU 的计算机,最多可以根据需要达到 128 个逻辑 CPU。 |
c = CPU | 如果您在 POWER5 上使用 AIX 5.3,并且处于共享 CPU 环境中,那么该特性可以提供关于物理 CPU 使用的详细信息。 |
S = 子类 (Subclass) | 该特性根据要求表示 WLM 的子类。 |
a = 磁盘适配器 (Disk adapters) | 提供磁盘适配器的详细信息,比如它们的完整类型。 |
r = 资源 (Resources) | 其中包括以 MHz 为单位的 CPU 速度。 |
k = 内核 (Kernel) | 提供了一些新的字段。 |
L = 大型页面 (Large pages) | 提供了大型页面的状态信息,适用于追求高性能的用户。 |
D = 磁盘 (Disk) | 提供关于磁盘、磁盘类型大小、可用空间、卷组、适配器等更详细的信息。 |
n = 网络 (Network) | 提供关于网络适配器、MTU 和相关错误的详细信息。 |
m = 内存 (Memory) | 提供内存使用的更详细的信息,如系统(内核)和进程、活动虚拟内存。 |
-B | 这是移除封装的启动选项。 |
![]() ![]() |
![]()
|
图 1 是屏幕输出的示例。它显示了 AIX 5 的起始屏幕,以及大量有价值的信息。
图 1. AIX 5 的 nmon 10 的输出示例
![启动](https://i-blog.csdnimg.cn/blog_migrate/12e0ad0ff2ccd8db78d5542d279c1f7c.png)
图 2 说明了关于 CPU(这里是 4 CPU 的 POWER5 计算机,并打开了 SMT)、内存使用、内核内部统计和磁盘统计的详细信息。注意:这个逻辑分区 (LPAR) 占用了一半 CPU 中其授权值的 6 倍。
图 2. CPU 详细信息
![CPU](https://i-blog.csdnimg.cn/blog_migrate/b79db4fa41780008876364589a9e47f4.png)
图 3 显示了网络、NFS 统计信息和日志文件系统使用的详细信息。
图 3. 网络详细信息
![网络](https://i-blog.csdnimg.cn/blog_migrate/65fdf8e9f68a3f2dd3e61c8f9e3fa92a.png)
在下面的图 4 中显示了 POWER5 共享处理器微分区统计的详细信息。
图 4. LPAR 详细信息
![LPAR](https://i-blog.csdnimg.cn/blog_migrate/89f20c306f47086058e4996313a7cac0.png)
图 5 说明了 Linux 版本的 nmon
的详细信息,其中显示了 CPU(这里是 2 CPU 的 POWER5 计算机,并打开了 SMT)、LPAR 统计、内存使用、网络统计、文件系统使用和磁盘统计的详细信息。注意:该 LPAR 的物理 CPU 仅在 SUSE SLES9 Service Pack 1 和 Red Hat EL 4 Update 1 中是可用的。
图 5. nmon 的 Linux 版本
![nmon_Linux1](https://i-blog.csdnimg.cn/blog_migrate/78d80cdf588c359e8e745a1f3099e6cf.png)
图 6 显示了计算机、磁盘统计(详细模式)和主要进程的操作系统详细信息。
图 6. nmon 的 Linux 版本(续)
![nmon_Linux2](https://i-blog.csdnimg.cn/blog_migrate/b8f4e5f7398ae7a6f60b9e49ff2c7ea6.png)
![]() ![]() |
![]()
|
下面是可用的下载选择:
- 您可以从 IBM Wiki 的 http://www-941.haw.ibm.com/collaboration/wiki/display/WikiPtype/nmon 下载 nmon 及其工具。
- 有关 nmon 的问题和观点,可查看性能工具论坛 http://www.ibm.com/servers/eserver/pseries/community/。
- "nmon analyser----生成 AIX 性能报告的免费工具" :了解如何使用这工具生成所需的图形化报告。
- 阅读 "AIX 5 performance series:CPU monitoring and tuning" 以消除 CPU 瓶颈并提高性能。
- 有关性能方面的附加信息,请查看下列的 IBM 红皮书:
- Understanding IBM pSeries Performance and Sizing,SG24-4810-01,2001 年 2 月。
- Database Performance on AIX in the DB2 UDB and Oracle Environments,SG24-5511,2003 年 1 月。
- AIX 5L Performance Tools Handbook,SG24-6039,2003 年 8 月。
- 有关 AIX 开发支持,请访问 IBM Virtual Innovation Center for Hardware。这是面向所有 pSeries AIX 开发的主要资源。
- 浏览有关这些技术主题和其他技术主题的书籍。
- 想了解更多内容吗?developerWorks eServer 专区提供了大量的有关 eServer 商标的信息性文章和入门、中级、高级教程。
- 通过参与 developerWorks 博客参与 developerWorks 社区。
![]() | ||
| ![]() | Nigel Griffiths 是 IBM eServer pSeries Technical Support Advanced Technology Group 的成员。他是一位性能、规模调整、基准测试和 Oracle RDBMS 方面的专家。nmon 工具设计原本用来为内部使用提供基准测试和性能优化的支持,但应大家的要求分发给了需要帮助的伙伴。您可以通过 nag@uk.ibm.com 与 Nigel 联系。 |