NMON Analyser 用户指南(V3.4)

NMON_Analyser 用户指南(V3.4)

前言

NMON_Analyser 旨在补充 NMON (Nigel 的 Monitor) 用于分析和报告性能问题;它可为使用 NMON“电子表格输出”模式生成的几乎所有输出部分生成图表,并对 ESS、EMC 和 FAStT 子系统执行一些额外分析。它还将与 topasout 生成的文件以及以"NMON"格式生成数据的其他工具配合使用。该工具使用 Excel VBA 编写,适用于 Excel 2003 或更高版本。

NMON 最初由 Nigel Griffiths (nag@uk.ibm.com) 编写,现在(自 AIX 5.3 TL09 和 AIX 6.1 TL02 起)已成为 topas 的一部分。NMON_Analyser 最初由 Stephen Atkins 编写,并得到了许多人的贡献——包括 IBM 的 Ralf Schmidt-Dannert 和 Markus Fehling。

NMON_Analyser 的支持基于尽力而为原则。请将问题提交至用户论坛(见下文),而不是直接联系作者。

链接:

NMON_Analyser 主页

http://www-941.haw.ibm.com/collaboration/wiki/display/Wikiptype/nmonanalyser

用户论坛

http://www.ibm.com/developerworks/forums/dw_forum.jsp?forum=749&cat=56

V3.4 新增内容

  1. 改进对 Excel 2007 和 2010 的支持
  2. 支持 64 位 Windows
  3. 能够指定时间值而不是间隔数值
  4. LIST 中支持通配符
  5. 限制生成的 CPU、PCPU 和 SCPU 工作表的总数
  6. 为 PCPU 和 SCPU 工作表添加图表
  7. 正确处理 DISKRXFER 工作表
  8. 修复 MERGE 选项的一个错误
  9. 自动将 CPU_SUMM、DISK_SUMM 和 SYS_SUMM 包含在 LIST 中


使用 NMON 收集数据

在开始新的工作之前,请确保您拥有 NMON 和 NMON_Analyser 的最新版本。如果您希望自动收到 Analyser 新版本的发布通知,请发送邮件至 steve_atkins@uk.ibm.com,我会将您加入我的分发列表。Nigel 为 NMON 维护着类似的列表。

您需要具有 root 权限,才能在 BBBP 工作表上获取完整的数据集。为了收集 DISKBUSY 工作表的数据,您需要确保已启用 iostat 数据收集:

chdev -l sys0 -a iostat=true

对于电子表格输出模式(逗号分隔值),在调用 nmon 时使用以下标志:

-f 电子表格输出格式 [注意:默认 -s300 -c288]

输出文件为 <hostname>_YYYYMMDD_HHMM.nmon

-F <filename> 与 -f 相同,但使用用户提供的文件名

-c <number> 快照数量

-d 请求磁盘服务时间和等待时间(DISKSERV 和 DISKWAIT)

-i <percent> 生成 TOP 部分时忽略使用 CPU 低于此数量的进程 – 有助于减少数据量

-g <filename> 包含磁盘组定义的文件

-l <dpl> 每个工作表的 hdisk 数量 - 默认值为 150,最大值为 250。 参见注释

-m <dir> NMON 在保存文件前先切换到该目录

-r <runname> 写入电子表格文件 [默认使用主机名]

-s <seconds> 快照之间的时间间隔

-x 容量规划(1 天按 15 分钟计 = -fdt -s900 -c96)

-t 在输出中包含开销最高的进程

-T 相当于 –t 另加将命令行参数保存在 UARG 节中

-A 包含异步 I/O(PROCAIO)部分的数据

-D 阻止生成 DISK 部分(在使用 Disk Groups 时很有用,因为要处理的 hdisks 太多)

-E 阻止生成 ESS 部分(在使用 Disk Groups 时必要,因为要处理的 vpaths 太多)

-J 阻止生成 JFS 部分(当文件系统超过 255 个时防止 Excel 错误)

-L 包含 LARGEPAGE 部分

-N 包含 NFS 部分

-S 包含带子类的 WLM 部分

-W 包含不带子类的 WLM 部分

-Y 包含 SUMMARY 部分(非常高效的替代方案,可替代 –t ,如果不需要 PID 级别数据)

示例:nmon_aix51 -F asterix.nmon -r Test1 -s6 -c12

注意:

  1. 该 –f (或 –F)标志必须首先出现。
  2. 该 -l 标志的值控制 DISK 工作表中每张工作表的 hdisk 数量,以及 BBBD 工作表中每行的 hdisk 数量。选择此值时要考虑两个因素。Excel 每个工作表最多支持 256 列;但是,NMON 和 NMON_Analyser 都会占用一些列,因此实际上限是 250。第二个因素是 Excel VBA 对输入行长度有 2048 字节的上限。这尤其影响使用长 hdisk 名称(例如 hdiskpower123)的 EMC 系统用户。默认值 150 对此类系统是安全的。其他用户可以将该值设为 250,以减少输出工作表的数量。
  3. 请考虑以下项的取值: -s 标志要非常谨慎使用。快照之间的间隔越短,每个资源的值波动就越大。如果使用 1 秒的间隔,看到许多磁盘在短时间达到 100% 忙碌也不要惊讶。对于正常监控,10 分钟间隔(-c 600)能提供良好的平衡。
  4. NMON_Analyser 生成的图表在快照数量(由 -c 标志指定)为 300 或更少时效果最好。
  5. TOP 部分(通过指定 -t 标志生成)可能产生大量输出,并且如果为 -c 标志指定较大的值,输出大小可能呈指数增长。 如果想要 TOP 部分,则指定的快照数量不要超过 250 - 理想情况下更少。

使用 topas(xmwlm)收集数据

您需要 AIX V5.3 TL5 Service pack 4 及 APAR IY87993 或更高版本。 请注意,只能分析使用 –a 标志生成的输出。 特别是,跨分区统计信息无法分析;如果您希望获得整个机器的报告,请分别从每个 LPAR 收集数据,然后使用 NMON_Consolidator 合并数据。 收集数据需要如下命令。

topasout -a /etc/perf/daily/xmwlm.yymmdd

:

cp /etc/perf/daily/xmwlm.yymmdd_01 hostname.ddmmyy.topasout.csv

使用 NMON_Analyser

  1. 将输入文件通过FTP传输到您的PC——理想情况下使用ASCI或TEXT选项,以确保行以Windows应用程序所需的CRLF字符结尾。
  2. 打开NMON_Analyser电子表格,并在“Analyser”和“Settings”工作表中指定您想要的选项(见下文)。如果希望将这些选项设为您的个人默认值,请保存该电子表格。
  3. 单击“Analyse nmon data”按钮,找到/选择要处理的.nmon文件。您可以选择同一目录中的多个文件。如果希望处理不同目录中的多个文件,您可能需要考虑使用下面描述的“FILELIST”选项。
  4. 如果文件的行数超过65K,并且文件名(或目录名)包含空格或特殊字符,您可能会看到消息SORT command failed for "filename"。要么重命名文件/目录,要么在使用Analyser之前预先对文件进行排序。

Analyser选项

  1. GRAPHS 第一个选项是 ALL 或 LIST。 如果值为 LIST 那么只有在Settings工作表的LIST中显示的那些工作表才会为其绘制图表。 如果图表要打印/发布,或者为了减少分析大型系统文件时所需的内存/字体/磁盘空间,此选项特别有用。
  2. 第二个是 CHARTS, PICTURES, PRINT 或 WEB. 这些选项的含义如下:
  3. CHARTS 在所选工作表上就地生成 Excel 图表
  4. PICTURES 图表将作为图片生成在单独的“Charts”工作表中。选择此选项最多可将输出文件大小减少 90%。
  5. PRINT 意味着 PICTURES。图片将被打印到指定的打印机(见下文“Printing Options”)
  6. WEB 意味着 PICTURES。自动 Web 发布(见下文“Web Publishing”)
  7. INTERVALS 指定要处理的第一个和最后一个时间间隔。此范围之外的间隔将在解析后被丢弃。请注意,这些是 1-999999 之间的数字,而不是时间值。将第一个间隔设为 2 有助于丢弃在 AIX 上 NMON 收集运行开始时经常出现的非常大的数字。如果你已对输入文件使用了拆分程序,或者正在分析来自 LINUX 系统的数据,则应将其保留为 1。
  8. TIMES 指定要处理的第一个和最后一个时间/日期。解析后,此范围之外的样本将被丢弃。它们可以采用 Excel 可识别的任何时间/日期值形式来指定;例如
  9. 14:00:1016:15:30
  10. 4-Aug-12 6-Aug-12
  11. 18:00 28/6/1204:00
  12. 注意:
  13. 指定日期但不指定时间,等同于指定时间为 00:00。
  14. 如果第二个时间早于第一个时间,则 Analyser 会假定第二个时间位于下一个日历日
  15. 如果文件中没有符合条件的间隔,则会发出以下消息:
  16. "Invalid values for FIRST/LAST - values reset to 1/999999"
  17. 并且将处理整个文件。
  18. MERGE 指定 YES 在这里会导致 NMON_Analyser 将所有输入文件合并成一个单一文件。输入文件必须未排序。默认情况下,Analyser 会在合并过程中删除 TOP 和 UARG 部分;请指定 TOP 以防止发生这种情况,但请注意处理时间将会增加,并且如果 TOP 部分超过每个工作表的最大行数(取决于 Excel 版本),则数据将会丢失。请指定 KEEP 用于阻止合并文件在运行结束时被删除。请指定 ONLY 如果您只想创建一个合并文件以供将来分析。
  19. PIVOT 指定 YES 此处会导致 NMON_Analyser 在所有其他处理(包括打印/发布其他图表)完成后,从指定的工作表创建数据透视图。 请参阅“Settings”工作表上的其他参数。
  20. ESS 指定 NO 此处会导致 NMON_Analyser 跳过为 ESS 子系统执行的额外分析。 这将加快分析速度,并可在出现“out of memory”错误时仍能成功分析更大的文件。
  21. FILELIST 控制文件的名称,该文件包含要由 Analyser 处理的 nmon 输出文件列表。 正常操作时请将此字段留空。 名称必须是完全限定名称(例如 c:\nmon\testcases\filenames.txt)。 文本文件中指定的名称必须包含完整路径信息。 只要符合 Windows 标准,文件名中可以包含通配符。例如:
  22. c:\nmon\testcases\*.nmon

注意: 如果你在该字段中有值的情况下保存电子表格,那么下次打开它时,Analyser 将自动开始执行。 这被定义为 "batch mode"(见附录)。 你可以按 Ctrl+Break,或通过删除/重命名 Control File 来停止执行。

国家语言设置

以下字段可在 "Settings" 工作表中找到。

SORTINP 将此更改为 NO 如果你使用 AIX(或 nmon2csv 脚本)对文件进行预排序。 此选项主要用于以下国家/地区:Windows 排序规则会将字符串 "AA" 排在 "Z" 之后(例如丹麦和挪威)。

批处理选项

以下字段可在 "Settings" 工作表中找到。

REPROC 将此更改为 NO 如果你想绕过对可能已在先前运行中处理过的输入文件的处理。 如果你在批处理控制文件中使用通配符,这会很有用。 请注意,REPROC 选项仅在指定了多个输入文件时才生效。

OUTDIR 现有目录的名称,输出文件默认将保存在该目录中。这主要用于批处理操作(参见 FILELIST 上文)但也用于为交互式会话设置默认目录。 如果该目录不存在(或 OUTDIR 为空白),则输出文件将保存回与相应输入文件相同的目录。

示例: C:\NMON\Analyser\Output\

格式选项

以下字段可在“Settings”工作表中找到。

  1. BBBFont 输入用于格式化 BBBC 和 BBBP 工作表的等宽字体名称。 Courier 可提供可接受的结果。

GWIDTH 更改此行中的值可使生成的图表更大或更小。 默认值 0 表示 Analyser 将根据您的屏幕大小、字体设置或页面大小动态调整图表大小。 打印时请注意不要设置大于页面宽度的值。

GHEIGHT 更改此行中的值可使生成的图表更大或更小。 如果在此处指定值,则还必须为 GWIDTH 指定值。

LIST 以逗号分隔的工作表列表,Analyser 将为这些工作表绘制图表。 仅当 GRAPHS 选项设置为 LIST. 列表可以包含 Excel 能识别的任何有效通配符,例如 "EMC*"

注意: 始终为 SYS_SUMM、CPU_SUMM 和 DISK_SUMM 绘制图表

NOLIST 默认值为 KEEP。 如果将其更改为 DELETE 那么分析后,所有未出现在 LIST 中的工作表都将被删除。 这可以显著减小需要长期保留的文件的大小。

CPUmax 指定将生成的 CPUnnn、PCPUnnn 和 SCPUnnn 工作表的最大数量。 默认值 0 将为使用专用处理器的 LPAR 选择所有工作表,并为使用共享处理器的 LPAR 选择等于 SMT 模式的数量。

REORDER 指定 YES 此处会导致 NMON_Analyser 重新排序工作表,以便更便捷地导航到更相关的信息。

  1. TOPDISKS 要包含在磁盘图表中的最大 hdisks/vpaths 数量。值为 0 会生成包含工作表上所有 hdisks 的图表(最多 250 个)。包含超过 50 个 hdisks 的图表将自动缩放以适应,因此可能会超出屏幕尺寸。

xToD 用于 Time of Day 图表上时间戳的格式。可以输入任何 Excel 可接受的 Number Format Code。默认值为 hh:mm。请注意,时间戳中也包含日期,因此你可以使用类似 dd-mmm-yy hh:mm 的内容,例如,如果你已将多个 NMON 文件合并在一起。如果你使用默认字符串以外的内容,可能需要增加 GHEIGHT 的值——如果没看到预期效果,请尝试不同的值。

数据透视图

这些参数用于构建数据透视图。所需参数为:Sheetname、PageField、RowField、ColumnField、DataField 和 xlFunction(可以为 COUNT, SUM, MIN, AVG, MAX)。这主要用于 TOP 和 SUMMARY 工作表,但也可能对其他(可能是用户提供的)数据工作表有用。

打印选项

以下字段可在“Settings”工作表中找到。注意——这些仅在你选择 PRINT 用于 Analyser 工作表上的 OUTPUT 选项。

LSCAPE 改为 YES(如果您希望 Analyser 将页面方向设置为 Landscape(横向))。 默认情况下,以横向打印时,Analyser 会使每页放置一张图表。

COPIES 设置为要打印的份数。

PRINTER 打印机名称。 将值指定为 PREVIEW 将导致 Analyser 调用 Excel 打印预览功能——对测试很有用。 您还可以指定 DEFAULT 以打印到系统默认打印机或网络打印机的名称。

Analyser 会添加页眉和页脚。

Web 发布选项

以下字段可在“Settings”工作表中找到。

PNG 更改为 NO 如果您的浏览器无法处理 PNG 图形格式。 图形将生成为 GIF 文件。

SUBDIR 如果此项为 YES 则所有支持文件(例如背景纹理和图形)都会组织到一个单独的文件夹中。如果此项为 NO 则支持文件会保存到与 Web 页面相同的文件夹中。

  1. WEBDIR 现有目录的名称,HTML 文件默认将保存在该目录中。 如果该目录不存在(或 OUTDIR 为空),则输出文件会保存回与相应输入文件相同的目录。
  2. 示例: C:\NMON\Analyser\HTML\

解读输出部分

关于分析器中使用的“加权平均值”的说明

  1. 分析器生成的若干图表显示平均值、加权平均值和最大值。 尽管每个人都理解平均值和最大值,但加权平均值的概念稍微难以掌握。
  2. 我们在分析样本数据时面临的问题之一是,目标系统上的资源在收集期间可能长时间空闲。 例如,NMON 数据收集可能在系统达到峰值利用率之前一段时间开始,并且可能在被监控的工作负载早已结束后才停止。 尽管这不会影响最大值,但会严重影响平均值的准确性。
  3. 加权平均值的思路是为每个快照应用一个权重因子,以表明该快照与平均值的相关程度。 在 NMON_Analyser 中,我们使用测量值本身作为权重因子。 实际上,这会生成一个数字,显示资源在活动时的繁忙程度。 例如: 数据库日志磁盘仅在基准测试的中间部分活动。 我们为 %tm_act (DISKBUSY) 记录以下数值:

快照

%tm_act

1

0

2

0

3

0

4

0

5

0

6

6.1

7

6.3

8

6.5

9

9.1

10

5.9

11

0

12

0

13

0

14

0

15

0

这组数据的平均值是 2.3,加权平均值是 7.0。 加权平均值能更好地反映日志记录进行时磁盘的繁忙程度。 NMON_Analyser 在对磁盘工作表内容排序时使用加权平均值作为排序键。

请注意,NMON 偶尔会为第一个间隔生成非常大的数值,这会严重扭曲加权平均值。 如果看到此问题发生,请将 FIRST 参数的值改为 2,以便完全排除第一个间隔。 这只是 AIX 上的问题。

SYS_SUMM

本节完全由分析器生成,并包含从其他工作表提取的数据的有用摘要。 请注意,User%、Sys%、Wait% 和 Idle% 的 avg/max 值是独立的,不会合计为 100%。 CPU% 列显示每个间隔内 usr%+sys% 之和的 avg/max 值。 对于微分区,这些值以虚拟处理器的百分比显示——它们与 CPU_ALL 值无关。

对于非分区或专用 CPU 分区,图表按一天中的时间显示总 CPU 利用率(%usr + %sys)以及磁盘 I/O 速率(取自 DISKXFER 工作表)。 对于微分区,图表显示正在使用的物理 CPU 数量,而不是 CPU%。

值“Max:Avg”就是最大值除以平均值。 如果长时间监控,CPU% 的值可用于发现系统达到饱和水平(该比率将稳步下降)。 如果您有历史数据,该值还可用于确定在饱和水平下运行的系统存在多少潜在需求。

AAA

AAA 部分由 NMON 在数据收集开始时生成,包含有关系统和 NMON 本身的信息——内容因版本而异,以下内容针对 12e

AIX 这是目标系统上正在使用的 AIX 的发行版/维护级别,由 lslpp 命令报告。

build 用于收集此数据的 nmon 的特定构建版本

command 用于调用 NMON 的命令行。

cpus 系统中 CPU 的数量以及数据收集开始时处于活动状态的 CPU 数量。

date 收集开始时的日期。

disks_per_line 对 -l 标志的设置(在 NMON 命令行上)或默认值。

硬件 目标系统中使用的处理器技术。

主机 目标系统的主机名。

间隔 快照之间的时间(以秒为单位).

内核 来自内核的信息 - 可用于识别内核类型(32 位或 64 位)以及是否为 LPAR。

LPARNumberName(LPAR 编号名称) LPAR 编号后跟名称

MachineType(机器类型) 系统的机器类型和型号

progname(程序名) NMON 可执行文件的名称。

runname(运行名称) 如果使用 -r 参数指定,则取自 NMON 命令行,否则默认为主机名。

SerialNumber(序列号) 机器序列号

快照 快照数量——Analyser 会使用该值。Analyser 会修改此值,使其与输入文件中实际找到的快照数量一致。

子版本 用于收集此数据的 nmon 版本的详细信息——包括创建该版本的日期和时间。

时间 收集开始时系统时钟显示的时间。

timestampsize(时间戳大小) 每条记录中用于时间戳的字符数。默认值为 5。

TL AIX 版本的技术级别

user(用户) 执行 NMON 命令的用户的名称。

version 用于收集此数据的 NMON 版本。

VIOS 如果这是 VIOS LPAR,则为版本/维护级别。

analyser 用于生成输出文件的 NMON_Analyser 版本,以及处理此文件所耗费的时间(以秒为单位)。

environment 您正在使用的 Excel 版本。

parms 在“Analyser”工作表中指定的大多数用户选项的取值。

settings 在“Settings”工作表中指定的大多数用户选项的取值。

elapsed Analyser 的执行时间。 我用它来进行调优。

NMON_Analyser 会删除 NOTES(注释) 由 NMON 生成的行。

BBBB

BBBB 工作表列出了 ODM 中列出的所有磁盘,以及由 lsdev 报告的容量(以 Gbytes 为单位)和适配器类型(SCSI/SSA/Fibre)。请注意,某些光纤连接设备不会向 AIX 报告其容量。

NMON_Analyser 会在所有 BBB 工作表上删除包含由 NMON 生成的排序键的列。

BBBC

BBBC 工作表显示了数据收集开始时所有本地磁盘的 lspv 命令输出。Analyser 使用粗体字体突出显示 hdisk 名称,并将工作表设置为使用 NLS 工作表中指定的等宽字体(默认 Courier),以提高可读性。

BBBD

BBBD 工作表显示了 ODM 中列出的所有 I/O 适配器以及通过该适配器寻址的 hdisk 列表。

BBBE

BBBE 工作表包含从 lsdev 命令提取的数据,并显示 vpaths 与 hdisks 之间的映射。NMON_Analyser 使用此信息来构建 ESSBUSY、ESSRSIZE 和 ESSWSIZE 工作表。

BBBG

BBBG 工作表包含 NMON 磁盘组映射的详细信息。

BBBL

仅当操作系统运行在分区中时才会生成 BBBL 工作表,其中包含收集运行开始时 LPAR 配置的详细信息。

BBBN

BBBN 描述系统中的每个网络适配器,并显示名称、速度和 MTU 大小。

BBBP

BBBP 工作表包含来自 emstat 和 lsattr 命令的未经解释的输出。 请注意,要从这些命令获取输出,需要 NMON 以 root 权限运行。

Analyser 将该工作表设置为使用 NLS 工作表中指定的等宽字体(默认 Courier),以提高可读性。

BBBR

此工作表记录收集运行期间的动态 LPAR 重配置事件。

BBBV

此工作表列出收集运行开始时存在的所有卷组。

CPUnnn

这些工作表按一天中的时间显示每个逻辑处理器的 %usr、%sys、%wait 和 %idle。 请注意,对于微分区,Idle% 和 Wait% 数值将包括物理处理器被让渡到共享池的时间。

NMON_Analyser 会生成一个图表和一个标题为“CPU%”的列,其中包含 %usr 与 %sys 的总和,以供在 CPU_SUMM 工作表中使用。 Analyser 还会为在收集间隔期间联机(vary online)的 CPU 添加空白间隔,以便图表覆盖整个收集时段。

如果 REORDER 设置为 YES 在 Control 工作表上,Analyser 会将所有 CPUnn 工作表移动到文件末尾。

CPU_ALL

此工作表按一天中的时间显示所有物理线程的平均利用率。 请注意,对于微分区,CPU% 是相对于授权量的利用率度量,但会由 libperfstat 进行调整,使其永远不会超过 100%;这使得这些数字对于分析未封顶分区几乎毫无用处,您可以选择改为查看 LPAR 工作表上的图表。 另请注意,微分区通常记录的 Idle% 或 Wait% 非常少,因为它们通常会将自身的时间片让给其他 LPAR,而不是浪费 CPU 时间等待工作。 如果 CPUmax 值低于正在使用的物理线程数,则图表标题将显示被排除的线程数。

第二张图按一天中的时间显示活动 CPU 的数量,可用于判断在收集期间 CPU 是否被动态开启/关闭。如果系统启用了 SMT,则 Analyser 显示逻辑 CPU 而不是物理 CPU,图例报告“SMT=ON”。

CPU_SUMM

Analyser 根据 CPUnnn 工作表上的数据生成此工作表。 它按线程(逻辑处理器)和核心给出收集期间的 CPU 利用率明细。 该图表在识别系统线程饥饿(即线程太少,无法充分利用逻辑处理器)或工作负载由少量单线程进程主导的情况时非常有用。

请注意,如果 CPU 在收集期间被动态重新配置,这些数字仅反映 CPU 被动态开启的那些时间间隔。

DISK、ESS、EMC、FASt 和 DG 工作表的通用说明

DISK 工作表记录系统中每个 hdisk 的设备统计信息。 如果系统中的 hdisk 多于 <dpl> 个(请参阅上文“使用 NMON 收集数据”),NMON 会生成多个输出节。 因此,DISKBUSY 将包含第一组 hdisk 的设备忙统计信息,DISKBUSY1 包含下一组,DISKBUSY2 包含再下一组,依此类推。

Analyser 通常使用加权平均值作为排序键,按升序对工作表内容进行排序。 但是,如果检测到存储子系统,则 DISK 工作表的排序会被禁用,而改为对 ESS/EMC/FASt/DG 工作表内容进行排序。

如果工作表上的 hdisks(或 vpaths)数量超过为 TOPDISKS (见上文“Analyser options”),图表将仅显示指定数量磁盘的信息,并且图表标题中会出现警告。

如果 REORDER 设置为 YES 在 Control 工作表上,当检测到存储子系统或 Disk Group 时,Analyser 会将除 DISKBUSY、DISK_SUMM 和 DISKSERV 工作表之外的所有工作表移到文件末尾。 这样做的理由是,ESS/EMC/FASt/DG 工作表包含最有用的数据,而 DISK 工作表只是复制这些数据。 但是,DISKBUSY 工作表对于检查系统磁盘(通常是本地磁盘)上的活动很有用,而 DISK_SUMM 工作表给出系统的总数据速率(本地 + 子系统磁盘)。

请注意,NMON 和 NMON_Analyser 在系统中最多只能处理 250 个 vpaths。 如果超过此数量,则需要使用 NMON 的 Disk Groups 功能来选择主要关注的 vpaths。

EMC/PowerPath 子系统

NMON_Analyser 在开始分析之前,通过扫描输入文件中是否存在字符串 "hdiskpower" 来检测 EMC/PowerPath 子系统是否存在。 EMC PowerPath 创建名为 "hdiskpowern" 的设备,每个设备映射到多个 hdisks。 因此,它们可与 ESS/SDD 生成的 vpaths 相媲美。 但是,与 vpaths 不同,hdiskpower 设备在 AIX(因此也包括 NMON)中显示为真实磁盘,因此 NMON 将其活动记录在 DISK 工作表上。

NMON_Analyser 会从 DISK 工作表中移除所有 hdiskpower 条目,并将它们移动到以字母 EMC 开头的新工作表。 例如,在 DISKBUSY1 上找到的 hdiskpower 条目会被直接移动到名为 EMCBUSY1 的新工作表。 如果某个 DISK 工作表仅包含 hdiskpower 设备,则该工作表会被直接重命名。

Analyser 报告的所有设备统计信息(例如 System I/O rates)都是正确的,并且由于 NMON 将 hdiskpower 活动排除在 IOADAPT 统计信息之外,这些数字也是正确的。

FAStT 子系统

NMON_Analyser 在开始分析之前,通过扫描输入文件中是否存在字符串 "dac" 来检测 FAStT 子系统是否存在。 它们采用与 EMC/PowerPath 子系统相同的方式处理,区别在于 dac 设备会被移动到名称以 "FASt" 开头的工作表。

请注意,Analyser 无法正确处理同时具有 EMC 和 FASt 子系统的系统。

DGBUSY

此工作表记录 NMON Disk Group 中每个 hdisk 的设备繁忙平均值。

DGREAD

此工作表记录对每个 NMON Disk Group 的读操作平均数据速率(Kbytes/sec)。

DGSIZE

此工作表记录对每个 NMON Disk Group 的读/写操作的平均数据传输大小(块大小),单位为 Kbytes。

DGWRITE

此工作表记录对每个 NMON Disk Group 的写操作平均数据速率(Kbytes/sec)。

DGXFER

此工作表记录对每个 NMON Disk Group 的总每秒 I/O 操作数。

DISKBSIZE

这些工作表记录系统中每个 hdisk 上读/写操作的平均数据传输大小(块大小),单位为 Kbytes。 如果此数值与设备的条带大小不非常接近,则可能存在一个问题,可以通过增大 numclust 的值来解决。

DISKBUSY

这些工作表记录系统中每个 hdisk 的设备繁忙情况。 这与 iostat 记录的 %tm_act 值相同。请注意,如果此工作表包含全零值,则意味着您在启动 nmon 之前忘记启用 iostat 收集:

chdev -l sys0 -a iostat=true

DISKREAD

这些工作表记录系统中每个 hdisk 的读操作数据速率(Kbytes/sec)。

DISKSERV

这些工作表记录系统中每个 hdisk 的读/写传输服务时间(以毫秒为单位)。

DISKWAIT

这些工作表记录系统中每个 hdisk 的读/写传输队列时间(以毫秒为单位)。

DISKWRITE

这些工作表记录系统中每个 hdisk 的写操作数据速率(Kbytes/sec)。

DISKXFER

这些工作表记录系统中每个 hdisk 每秒的 I/O 操作数。 这与 iostat 记录的 tps 值相同。

DISK_SUMM

Analyser 创建此工作表。 它显示总数据速率(读和写),单位为 Kbytes/sec,以及系统中所有 hdisk 的总 I/O 速率。 此工作表上的数字对于所有系统都是准确的,包括 ESS、EMC、FASt 和 HDS 配置。

这些数据显示在图表上;IO/sec 数据也以图形方式显示在 AAA 工作表上。

DONATE(捐赠)

此工作表记录物理处理器使用情况以及向共享池的捐赠。仅当运行在 POWER6 系统上的专用 LPAR 时才会存在。

EMCBSIZE/FAStBSIZE

此工作表记录在使用 EMC/PowerPath 或 FAStT 的系统中,对每个 esoteric 设备的读/写操作的平均数据传输大小(块大小),单位为 Kbytes。

EMCBUSY/FAStBUSY

这些工作表记录在使用 EMC/PowerPath 或 FAStT 的系统中每个 esoteric 设备的设备繁忙情况。

EMCREAD/FAStREAD

这些工作表记录在使用 EMC/PowerPath 或 FAStT 的系统中,对每个 esoteric 设备的读操作的数据速率(Kbytes/sec)。

EMCWRITE/FAStWRITE

此工作表记录在使用 EMC/PowerPath 或 FAStT 的系统中,对每个 esoteric 设备的写操作的数据速率(Kbytes/sec)。

EMCXFER/FAStXFER

这些工作表记录在使用 EMC/PowerPath 或 FAStT 的系统中,对每个 esoteric 设备的每秒 I/O 操作数。

EMCSERV/FAStSERV

Analyser 创建此工作表。 它显示在收集间隔内每个 esoteric 设备的估计服务时间(不是响应时间)。 服务时间由设备繁忙情况和取自相应 BUSY 和 XFER 工作表的传输速率推导得出。 传输速率低于 SVCXLIM 会被忽略,以提高估计的准确性。

ERROR

此工作表显示 nmon 在收集运行期间报告的所有错误。 此工作表会忽略 FIRST/LAST 间隔。 时间戳不会转换为时间值。

ESSBSIZE

此工作表仅在 ESS 设置为 YES 时存在,并记录系统中每个 vpath 上读/写操作的平均数据传输大小(blocksize),单位为 Kbytes。此工作表上的数据由 NMON_Analyser 计算为 BBBE 工作表上记录的组件 hdisks 的 DISKBSIZE 值的平均值。

ESSBUSY

此工作表仅在 ESS 设置为 YES 时存在,并记录使用 ESS 的系统中每个 vpath 的设备繁忙情况。 此工作表上的数据由 NMON_Analyser 计算为 BBBE 工作表上记录的组件 hdisks 的 DISKBUSY 值的平均值。

ESSREAD

此工作表记录系统中每个 vpath 上读操作的数据速率(Kbytes/sec)。此信息由 NMON 提供。

ESSWRITE

此工作表记录系统中每个 vpath 上写操作的数据速率(Kbytes/sec)。此信息由 NMON 提供。

ESSXFER

这些工作表记录系统中每个 vpath 的每秒 I/O 操作数。此信息由 NMON 提供。

FCREAD

此工作表记录系统中每个 Fibre Channel 适配器上读操作的数据速率(MBytes/sec)。

FCWRITE

此工作表记录系统中每个 Fibre Channel 适配器上写操作的数据速率(MBytes/sec)。

FCXFERIN

此工作表记录系统中每个 Fibre Channel 适配器的每秒读操作数。

FCXFEROUT

此工作表记录系统中每个 Fibre Channel 适配器的每秒写操作数。

FILE

此工作表包含 NMON 在 Kernel Internal Statistics 面板上报告的部分字段。这些值与 sar 命令报告的值相同。

所有字段均为每秒速率。

iget 将 i-node 编号转换为指向文件或设备的 i-node 结构的指针。该值报告为 iget/s 由 sar -a 命令报告。当调用 namei 未能在 i-node 缓存中找到指针时,就会发生对 iget 的调用。因此,该数值应尽可能接近 0。

namei 调用目录搜索例程,该例程根据路径名查找 v-node 的地址。该值报告为 lookuppn/s 由 sar -a 命令报告。

dirblk 目录搜索例程为定位特定文件的目录项而读取的 512 字节块数。该值报告为 dirblk/s 由 sar -a 命令报告。

readch 由 read 系统调用传输的字符数。该值报告为 rchar/s 由 sar -c 命令报告

writech write 系统调用传输的字符数。其报告为 wchar/s 由 sar -c 命令报告。

ttyrawch tty 输入队列字符数。由 sar -y 命令报告为 rawch/s。

ttycanch tty 规范输入队列字符数。对于 AIX Version 4 及更高版本,此字段始终为 0(零)。

ttyoutch tty 输出队列字符数。由 sar -y 命令报告为 outch/s

NMON_Analyser 生成两个图:一个按一天中的时间显示 readch 和 writech 的每秒速率,另一个显示 iget、namei 和 dirblk 的每秒速率。

FRCA

仅当目标系统上加载了 FRCA 时,才会生成此工作表。NMON_Analyser 生成一个显示缓存命中率(以百分比表示)的图。 如果未加载 FRCA,则 NMON 不生成数据,Analyser 会将冗余的标题记录归入 StrayLines 工作表。

IOADAPT

对于 BBBC 工作表中列出的每个 I/O 适配器,包含读和写操作的数据速率(Kbytes/sec)以及执行的 I/O 操作总数。在 AIX 5.1 及更高版本中,此信息由 iostat -A 命令报告。NMON_Analyser 会重新排列该工作表中的列,以便更轻松地绘制图表。

Analyser 会生成三个图表。 请注意,如有需要,面积图可以轻松转换为折线图。 只需在图表区域内的空白处单击右键,然后选择 Chart Type>Line>OK。

IP

此工作表仅针对 topasout 出现。

JFSFILE

对于每个文件系统,此工作表显示每个间隔内正在使用的空间分配百分比。 这些数字与 %Used df 命令报告的值。列标题显示挂载点;可使用 BBBC 工作表交叉引用到文件系统/LV。

JFSINODE

对于每个文件系统,此工作表显示每个间隔内正在使用的 Inode 分配百分比。 这些数字与 %Iused df 命令报告的值。列标题显示挂载点;可使用 BBBC 工作表交叉引用到文件系统/LV。

LAN

此工作表仅针对 topasout 出现。

LARGEPAGE

该图显示 Usedpages 和 Freepages 随时间的变化。

工作表中的列如下:

Freepages 空闲列表中的大页数量。

Usedpages 当前正在使用的大页数量。

Pages 池中的大页数量。

HighWater 自上次重新启动以来已使用的最大页数。

SizeMB 大页的大小,单位为 Mbytes。

LPAR

第一个图显示此分区使用的物理处理器数量与 entitlement(授权量)的对比。对于 uncapped 分区,物理处理器数量可能超过 entitlement,但绝不能超过分配给该分区的虚拟处理器数量。对于 AIX,该图还显示未折叠虚拟处理器的数量(AIX 会“折叠”——停止向多余处理器分派工作——以最小化调度开销)。

请注意,物理处理器与授权量的比率(在 lparstat 命令的输出中显示为 %entc)通常高于 CPU_ALL 工作表中的 CPU%。 这样做的原因是,处于其授权量范围内的分区可能会等待一小段时间,然后才让出进入 I/O 等待或变为空闲的处理器。 这可以消除不必要的上下文切换。

第二张图显示以虚拟处理器百分比表示的 CPU 利用率——对于 AIX,这会细分为 usr%、sys% 和 wait%。 Linux 或版本 12 之前的 NMON 版本不提供这种详细程度。

第三张图仅出现在 AIX 系统中,显示此分区和其他分区对共享池的 CPU 利用率。 标记为 "UsedPoolCPU%" 的区域表示此分区已使用的共享池百分比,而标记为 "other% " 的区域表示所有其他分区使用的百分比。 请注意,如果该分区无权查看共享池利用率,则该池将显示为 100% 已利用。

该工作表中的列如下:

PhysicalCPU(物理 CPU) AIX 消耗的物理核心

VirtualCPUs(虚拟 CPU) 分配给 LPAR 的虚拟 CPU 数量

logicalCPUs(逻辑 CPU) 线程数(即虚拟 CPU 乘以 SMT 模式)

poolCPUs(池 CPU) 此 LPAR 占用的池中核心数

entitled(授权量) 保证可供此 LPAR 使用的核心数

weight(权重) 此 LPAR 在竞争未使用 CPU 周期时的优先级

PoolIdle Pool 中未使用的核心数

usedAllCPU% 此 LPAR 使用的活动核心占机器活动核心的百分比

usedPoolCPU 此 LPAR 使用的核心占池中核心的百分比

SharedCPU 如果 LPAR 不是专用 CPU,则为 1

Capped 如果 LPAR 受封顶限制,则为 1

EC_User% 在 User 模式下使用的 Entitlement 百分比

EC_Sys% 在 System 模式下使用的 Entitlement 百分比

EC_Wait% 等待 I/O 的 Entitlement 百分比

EC_Idle% 在 Idle 模式下使用的 Entitlement 百分比

VP_User% 在 User 模式下使用的虚拟 CPU 百分比

VP_Sys% 在 System 模式下使用的虚拟 CPU 百分比

VP_Wait% 等待 I/O 的虚拟 CPU 百分比

VP_Idle% 处于 Idle 模式的虚拟 CPU 百分比

Folded 因效率原因未使用的虚拟 CPU 数量

CPU_Pool_id CPU 池的 ID;如果有多个池,则该信息很有用

MEM

此工作表上的主图按一天中的时间显示实际空闲内存量(MB)。这等同于将 fre 值(由 vmstat 在同一时间间隔内报告)除以 256。小图显示实际内存量。这有助于确定在收集期间是否使用了动态重新配置。

对于 AIX,此工作表上的其他列如下:

Real Free(实际空闲) 空闲列表中实际页面的百分比。

虚拟空闲 分页空间上未分配虚拟槽的百分比。

实际空闲 (MB) 空闲列表中的内存量,单位为 MB。

虚拟空闲 (MB) 分页空间上未分配空间量。

实际总计 (MB) 可供 AIX 使用的内存总量。

虚拟总量 (MB) 为分页空间分配的总空间量。

注意:计算某个时间间隔内使用的内存量,只需用 实际空闲 (MB) 值从 实际总计 (MB) 值中减去即可。不过,这将包含文件页。MEMUSE 工作表中的图表可以更准确地评估程序使用的内存(计算页)。

MEMUSE

除了 %comp,此工作表中的值与 vmtune 命令报告的值相同。

%numperm 分配给文件页的实际内存百分比.

%minperm vmtune 命令上指定的值或系统默认值 20%。除非在收集期间使用了 vmtune 或 rmss 命令,否则该值在本次运行中通常保持不变。

%maxperm vmtune 命令上指定的值或系统默认值 80%。除非在收集期间使用了 vmtune 或 rmss 命令,否则该值在本次运行中通常保持不变。

minfree AIX 要保留在空闲列表中的最少页数。由 vmtune 命令指定,或系统默认值为 maxfree - 8.

maxfree AIX 为补充空闲列表而最多可窃取的页数。由 vmtune 命令指定或系统默认。

%comp 分配给计算页的实内存百分比。NMON_Analyser 计算此值。计算页是由页空间支持的页,包括工作存储和程序文本段。它们不包括数据、可执行文件和共享库文件。

Analyser 生成两个图。第一个按一天中的时间显示计算页和文件页之间的分配比例。第二个绘制以下各项的值 %numperm, %minperm, %maxperm 和 %comp.

如果 %numperm 低于 %minperm 则计算页将被窃取。 如果 %numperm 高于 %maxperm 则计算页不能被窃取。 两者都较低的 %minperm 和 %maxperm 表明系统已针对数据库服务器进行调优。 你可能还想检查 BBBP 工作表上的 STRICT_MAXPERM 设置(如果存在)。

MEMNEW

该图显示内存分配分为三大类:用户进程使用的页、文件系统缓存以及系统(内核)使用的页。

Process%(进程%) 分配给用户进程的实内存百分比

文件系统缓存百分比(FSCache%) 分配给文件系统缓存的实内存百分比

系统百分比(System%) 系统段使用的实内存百分比

空闲百分比(Free%) 未分配实内存的百分比

用户百分比(User%) 非系统段使用的实内存百分比

MEMPAGES4K/64K/16MB/16GB

这些工作表仅存在于 AIX 中。它们显示系统中正在使用的不同页面大小的各种统计信息。 Analyser 将删除当前未使用的页面大小对应的工作表。

对于 MEMPAGES64KB 工作表,会绘制一张图,显示系统中 4KB 和 64KB 页面两者的使用情况——从 AIX V6.1(以及支持的硬件)开始,这些页面大小会根据内存访问模式动态选择。

MEMREAL

此工作表仅对 topasout 显示。Analyser 会添加一列,以 MB 为单位显示实际空闲内存。

MEMVIRT

此工作表仅针对 topasout 出现。

NET

此工作表显示系统中每个网络适配器的数据速率,单位为 Kbytes/sec(包括 SP switch(如果存在))。这与 netpmon –O dd 命令生成的结果相同。NMON_Analyser 为每个适配器添加一列,显示总数据速率(读取 + 写入),并添加两列,分别显示总读取和总写入。请注意,为便于绘图,总写入量按负数计算。

Analyser 生成三个图表。 第一个图表显示总网络流量,并按总读取和总写入细分。 写入量显示在 X 轴下方。

请注意,如有需要,可以轻松将面积图转换为折线图。 只需在图表区域内的空白处单击右键,然后选择 Chart Type>Line>OK。

NETPACKET

此工作表显示每个适配器的读取/写入网络数据包数量。这与 netpmon –O dd 命令生成的结果相同。

NETSIZE

此工作表显示系统中每个网络适配器的平均数据包大小(以字节为单位)。

NFS 工作表

NFS2、NFS3 和 NF4 客户端/服务器有单独的工作表。 Analyser 将删除空工作表。

PAGE

此工作表包含 NMON 记录的分页统计信息。

页错误 每秒页错误数。这不是产生 I/O 的页错误计数,因为有些页错误可以在没有 I/O 的情况下得到解决。

pgin 在间隔内对分页空间和文件系统执行页入操作的总速率/秒。

pgout 在间隔内对分页空间和文件系统执行页出操作的总速率/秒。

pgsin 在间隔内从分页空间执行页入操作的速率/秒。 这与 pi 值相同,该值由 vmstat 报告。如果 pgsin 始终高于 pgsout 这可能表示抖动。

pgsout 在间隔内到分页空间执行页出操作的速率/秒。这与 po 由 vmstat 报告的值相同。

reclaims 从 NMON 10 起,此字段与 fr 由 vmstat 报告的值相同,表示页面替换例程每秒释放的页面数。

scans 页面替换例程每秒检查的页面数。 这与 sr 由 vmstat 报告的值。当空闲页面数低于 minfree 并在空闲页面数超过 maxfree.

cycles 页面替换例程为了补充空闲列表而不得不扫描整个页帧表的每秒次数。 这与 cy 由 vmstat 报告的值,但请注意 vmstat 将此数字报告为整数,而 nmon 将其报告为实数。

fsin 由 Analyser 计算为 pgin-pgsin 用于绘图

fsout 由 Analyser 计算为 pgout-pgsout 用于绘图

sr/fr 由 Analyser 计算为 scans/reclaims 用于绘图

NMON_Analyser 生成两张图。第一张图显示进出分页空间的分页操作。理想情况下,每个分页空间每秒不超过 5 次操作(详情见 BBBC 工作表)。第二张图显示 scan:free 比率。当此数值 >4 时,内存可能过度提交,不过你还需要同时检查 MEM 和 PAGE 工作表。

POOLS

此工作表包含有关 LPAR 运行所在共享池的信息。只有在 LPAR 属性中设置了“Allow performance information collection.”时,大部分数据才会存在。

shcpus_in_sys 分配给全局共享池的核心数

max_pool_capacity 为此池定义的最大 VP 数量

entitled_pool_capacity 此池的授权(包括预留授权)

pool_max_time 与 max_pool_capacity 但如果在收集运行期间更改了池定义,其值可能会变化。

pool_busy_time 此共享池在间隔期间使用的平均核心数

shcpu_tot_time 在间隔期间全局共享池可用的平均核心数(包括共享专用资源?)

shcpu_busy_time 全局共享池中正在使用的核心平均数量

pool_id 此池的标识符

entitled(授权量) 此 LPAR 的授权量

PROC

此工作表包含 NMON 在 Kernel Internal Statistics 面板上报告的部分字段。 其中 RunQueue 和 Swap-in 字段是该时间间隔内的平均值。所有其他字段均为速率/秒:

RunQueue 运行队列中内核线程的平均数量。此项报告为 runq-sz 由 sar -q 命令报告,并显示为 RunQueue 在 nmon Kernel Internal Statistics 面板上。超过 CPU 数量 3 倍的值可能表示 CPU 受限。

Swap-in 等待被分页调入的内核线程平均数量。该值报告为 swpq-sz 由 sar -q 命令报告。

pswitch 上下文切换的次数。该值报告为 pswch/s 由 sar -w 命令报告。

syscall 系统调用的总数。该值报告为 scall/s 由 sar -c 命令报告。

read read 系统调用的数量。这报告为 sread/s 由 sar -c 命令报告。

write write 系统调用的数量。这报告为 swrit/s 由 sar -c 命令报告。

fork fork 系统调用的数量。这报告为 fork/s 由 sar -c 命令报告。

exec exec 系统调用的数量。这报告为 exec/s 由 sar -c 命令报告。

rcvint tty 接收中断的数量。报告为 revin/s 由 sar -y 命令报告。

xmtint tty 发送中断的数量。报告为 xmtin/s 由 sar -y 命令报告。

sem IPC 信号量原语的数量(创建、使用和销毁)。报告为 sema/s 由 sar -m 命令报告。

msg IPC 消息原语的数量(发送和接收)。报告为 msg/s 通过 sar -m 命令。

NMON_Analyser 生成三张图——一张显示以下项的平均长度: RunQueue 以及以下项的数量: swap-ins (按一天中的时间统计);另一张显示以下项的每秒速率:pswitch 和 syscalls(按一天中的时间统计);第三张显示以下项的每秒速率:forks 和 execs。.

监控 Web 服务器系统时,forks/execs 图可能很有用。

PROCAIO

此工作表包含有关可用且活动的异步 I/O 进程数量的信息(即使用超过 0.1% 的 CPU)。它还显示在收集间隔期间 AIO 进程正在使用的 CPU 量。

生成两个图表。 第二个使用两个 y 轴。 正在运行的 aio 进程数对应第一个轴显示,使用的 cpu 量对应第二个轴显示。

RAWCPUTOTAL, RAWLPAR

这些工作表包含各种计数器的转储,例如上下文切换和幻影中断。

TCPUDP

此工作表仅针对 topasout 显示。

TOP

此工作表仅在你于 NMON 命令行上指定 -t 标志时生成。 输出类似于使用 ps v 命令生成的内容。 请注意,由于单个工作表仅有 65,000 行的限制,对于非常大的文件,某些数据可能会被省略,这可能意味着整个 PID 甚至命令都可能从分析中缺失。

请注意,数据仅存在于在某个间隔期间消耗了大量 CPU 的进程。 TOP 工作表不表示系统的完整视图。

NMON_Analyser 执行以下操作:

  1. 重新排列列以便于处理。
  2. 将工作表上的数据排序为 COMMAND 名称顺序 - 使用 TIME(时间) 作为次要排序键。
  3. 在工作表末尾创建一个表,按命令名称汇总数据,并用于绘图。

滚动到工作表顶部即可看到详细信息部分。 汇总表大部分被图表遮挡,因此为了便于查看,您需要移动(或删除)这些图表。

PID 在详细信息部分,这是命令某次特定调用的进程 ID。 在汇总表中,这是命令名称。

%CPU 在详细信息部分,这是该 PID 在该时间间隔内对单个处理器(而不是整个系统)的利用率。在汇总表中,这是收集期间该命令所有调用所使用的平均 CPU 量。

%Usr 在详细信息部分,这是该 PID 在该时间间隔内使用的用户模式 CPU 的平均量。

%Sys 在详细信息部分,这是该 PID 在该时间间隔内使用的内核模式 CPU 的平均量。

Threads(线程) 此命令正在使用的(软件)线程数。

Size(大小) 此命令的一次调用为数据段(私有段 + 共享库数据页)分配的分页空间平均量(以 Kbytes 为单位)。这与 SIZE 在 ps v 命令上的数值相同。请注意,如果 Size 大于 ResData 则表示当前有一些工作段页面已被换出。

ResText 此命令的一次调用用于代码段的实际内存平均量(以 Kbytes 为单位)。 请注意,多个并发调用通常会共享这些页面。

ResData 此命令的一次调用用于数据段的实际内存平均量(以 Kbytes 为单位)。 计算命令实际内存使用量的一种方法是 ResText + (ResData * N).

CharIO这是通过 read 和 write 系统调用传输的字节数/秒。其中大部分是对磁盘的读写,但也包括与终端、套接字和管道之间的数据。用此可以判断哪些进程正在执行 I/O。

%RAM这是该命令正在使用的实际内存百分比的指示。它是 (ResText + ResData) / Real Mem;它与 %MEM 值相同,见

ps v 命令。由于舍入/截断以及现代系统中内存容量很大,该值通常为 0。

Paging(分页)此进程所有页错误的合计。用此可以确定是哪个进程导致了分页,但请注意该数值包含异步 I/O,可能会产生误导。

Command(命令)命令的名称

WLMClass该命令被分配到的 Workload Partition 或 Workload Manager 超类的名称(仅限 64 位内核)。

IntervalCPU 由 Analyser 生成。在详细信息部分,这显示在时间间隔内某个命令所有调用所使用的 CPU 总量。其计算方法为:运行同一命令的所有 PIDS 所用 CPU 之和除以该时间间隔内可用的活动处理器(物理核心)数量。在汇总部分,此项细分为平均值、加权平均值和最大值,并用于生成图表。

WSet 由 Analyser 生成。在详细信息部分,这显示在时间间隔内记录的某个命令所有调用所使用的内存总量。其计算方法为 ResText + (ResData * N)(其中“N”是该命令在时间间隔内并发运行的副本数)。 在汇总部分,此项细分为最小值、平均值和最大值,并用于生成图表。

User(用户) 如果存在 UARG 工作表,则由 Analyser 生成。其中包含运行该进程的用户的名称。

Arg(参数) 如果存在 UARG 工作表,则由 Analyser 生成。其中包含为该命令输入的完整参数字符串。

Analyser 使用生成的表格中的数据生成四个图表:

  1. 一个按命令显示平均、加权平均和最大 CPU 利用率的图表
  2. 一个按命令显示最小、平均和最大内存利用率的图表
  3. 一个按命令显示平均、加权平均和最大 CHARIO 的图表
  4. 以散点图形式显示每个间隔内每个 PID 的 CPU 利用率的图表。请注意,仅当 TOP 工作表上的行数少于 32,000 行时才会生成此图表。有关解读此图表的说明,请参见下文。

解读按 PID 的 %Processor 图表

该图表的目的是提供指向 UARG 工作表的链接,以便您可以准确查明是哪个命令调用使用了 CPU。它显示 TOP 工作表上捕获的每个 PID 的处理器利用率(单个 CPU 的利用率)。请注意,如果进程是多线程的,则其使用率可能超过单个 CPU 的 100%。

活动 PID 会在图表上形成一簇点。 最高点将显示任一次快照期间使用的最大 CPU 量。 要查明某个点对应的 PID,请将鼠标移动到该点上方,Excel 将显示一个坐标对。 第一个坐标是 PID – 使用它参考 UARG 工作表,以准确查明正在执行的是哪个命令。

UARG

此工作表包含收集期间执行的前 1,000 个命令。 命令按时间顺序列出。 请注意,出现在第一个间隔中的命令可能在收集开始之前就已经在执行。

PID 特定命令调用的进程 ID

PPID 父进程 ID

COMM 正在执行的命令

THCOUNT 此进程启动的线程数

用户 运行此进程的用户的名称

组 用户所属组的名称

FullCommand(完整命令) 用户输入的完整命令字符串

VM

此工作表仅存在于 Linux 系统,包含 /proc/vmstat 文件值的转储。

这两个图显示文件支持的分页(pgpgin/pgpgout)和交换空间活动。

WPAR 工作表

这些工作表仅存在于 AIX V6,并记录系统中每个工作负载分区(Workload Partition)的数据。 它们目前不由 nmon 的 topas 版本生成。

WLM 工作表

包含在收集运行期间为 WLM 定义的每个超类/子类所使用的 CPU、内存和 I/O 带宽的详细信息。 Analyser 将提取子类数据,并为每个具有多个子类的类创建一组新的工作表。 这些工作表将命名为“WLMCPU.class”等。

如果这是微分区,那么 Analyser 还将创建一组 WLMPCPU 工作表,这些工作表将显示物理处理器利用率,而不是 %CPU 利用率。

ZZZZ

Analyser 使用此工作表上的信息将所有 NMON 时间戳自动转换为实际时间,以便于分析。对于 NMON10 或更高版本,会添加一列,其中包含作为单个值的日期和时间,并用于这些转换。 此工作表上的行数由 Analyser 用于在 nmon 运行因 SIGUSR2 终止的情况下重置 AAA 工作表上的“snapshots”值。

错误处理

NMON_Analyser 中的错误处理很简陋。Analyser 可以处理许多输入文件错误,但偶尔分析会停止,让您盯着一个对话框。如果发生这种情况,请接受我的歉意。但是,在向我发送输入文件副本之前,请阅读以下内容:

常见问题

最常报告的问题源于无效的输入文件。我们也会收到问题报告,其中由于某种原因,行被截断、拆分甚至重复。NMON_Analyser 会尝试捕获这些错误,并会在 "StrayLines" 工作表中报告它们。如果运行意外停止,请检查此工作表。

  1. 'No valid input! NMON run may have failed.'

此消息最常见的原因是 NMON 运行失败,而且确实没有有效输入。NMON 通过写入所有节标题来初始化输出文件。如果它随后失败,您将获得一个完全由标题组成的输出文件——没有数据。在将其发送给我之前,请通过将其加载到文字处理软件中,或者实际上作为 .csv 文件加载到电子表格中来检查该文件。

  1. 'Unexpected end of file.'

只有在处理所含行数超过单个工作表可存储行数的文件,并且 SORTINP 设置为 NO 时,才会报告此问题。它通常是由行以 CR 字符而不是 CRLF 终止造成的。将文件发送到您的 PC 时,请将 FTP 选项更改为 ASCII 或 TEXT。此问题只会在大型文件上出现,因为 Analyser 读取这些文件时使用的技术与读取较小文件时使用的技术不同。

奇怪的是,我收到的最常见问题之一,是因为 Analyser 无法很好地处理只有一个数据间隔的文件。如果您想测试该软件包,只需让 NMON 运行几分钟,以获得合理的数据样本!

已知缺陷/问题(V3.4, topas_nmon)

  1. 在分析具有大量磁盘的系统时,Excel 可能会因错误 "No more fonts can be added" 或 "Insufficient Resources" 而停止。 设置 GRAPHS 为 LIST 并仅选择您感兴趣的那些工作表,使用 LIST Settings 工作表上的选项。
  2. 某些版本的 nmon(尤其是 14g)会生成可变长度的时间戳,可能导致数据排序不正确。 请分别处理每个文件并指定 MERGE=YES 以便正确排序数据。
  3. PIVOT 选项似乎无法在 Excel 2007 或更高版本中正常工作
  4. 如果在运行前使用 Excel 编辑 .csv 文件,并且该文件包含 TOP 部分,Analyser 会崩溃。 如果需要编辑输入文件,请使用文字处理软件。
  5. 处理来自同时连接了 ESS 和 EMC 子系统的系统的文件时存在一些问题。
  6. 分析具有超过 253 个 vpaths 的 ESS 子系统时,输出中会缺少部分 vpath 数据。 使用 NMON Disk Groups 将多个 vpaths 合并为一个单元用于报告,并使用 –E 标志以防止生成 ESS 部分。 或者,将 ESS 设置为 NO(在 Control 工作表上),并忽略有关数据截断的警告消息 – 输出中只会出现前 253 个 vpaths。

如何报告问题

将相关信息发布到 nmon 论坛(参见引言中的链接)。附上原始、未经修改的 .nmon 输入文件副本,以及不完整的输出电子表格副本,作为压缩(zipped)文件可能会有帮助,但这样做之前请考虑您的系统安全。

如果您能够截屏,那么有时附上任何对话框的副本也会很有用。

注意: 目前开发是在 Microsoft Excel 2003 (11.8320.8221) SP3 上进行的。 可能无法修复因使用不同版本而产生的问题。

Excel/VBA 资源/链接

这是一个很好的 Excel 技巧来源,其中也有一些 VBA 示例:

http://exceltips.vitalnews.com/

这是一本优秀参考书的主页:

http://www.exceltip.com/

当然还有

http://www.microsoft.com


附录:批处理操作说明

如果您经常处理大量文件,NMON_Analyser 的操作可以完全自动化。 只需创建一个文本文件,其中包含 nmon 文件名列表(酌情使用通配符),并将此文件的名称输入到 Analyser 控制工作表的 FILELIST 字段中。 如果希望所有输出文件都集中到一个位置,请在 OUTDIR 字段中指定一个现有目录的名称。 将 NMON_Analyser 电子表格保存为新名称(建议这样做,以便您仍可将 NMON_Analyser 用于交互式会话)。

现在创建用于调用 Excel 的 Windows .bat 文件(参见下面的示例)。

处理完最后一个输入文件后,Analyser 将自动关闭 Excel。但请注意,这只有在加载的 Analyser 副本具有已保存的 FILELIST 名称 并且 没有其他打开的电子表格时才会发生。这允许你在交互式会话期间安全地使用 FILELIST 选项。

示例 .bat 文件

这些示例批处理控制文件旨在使用 pscp 文件,该文件来自 Simon Tatham 编写和维护的 PuTTY 套件,网址为 http://www.chiark.greenend.org.uk/~sgtatham/putty/

感谢 Jamie Dennis 提供这些文件。

getcsv.bat

cd \NMON\RawData

del *.csv

d:\progra~1\putty\pscp -p -r -l userid host://Performance/NMON/Rawdata/*.csv .

analyser.bat

D:

cd \NMON\FinishedData

del d:\NMON\FinishedData\*.xls

"D:\NMON\nmon analyser batch.xls"

putxls.bat

D:

cd \NMON\FinishedData

d:\progra~1\putty\pscp -p -r -l userid *.xls host:/Performance/NMON/

Control.txt

d:\NMON\RawData\*.csv

NMON Analyser Batch.xls

OUTDIR

d:\NMON\FinishedData\

FILELIST

d:\NMON\FinishedData\Control.txt

12 次浏览 更新于 2026-11-07

同组文章性能与故障案例

查看本组全部 6 篇

没有找到想要的答案?

上传日志让 AI 帮你诊断,或者在控制台里直接向 AI 提问。