在一台 AIX 7.2 机器上,我需要调查导致每日某些时间之间速度变慢的原因,在使用nmon
分析器 excel 分析 .nmon 文件后,我发现磁盘繁忙图形确实显示我的至少一个硬盘驱动器达到 100约 45 分钟的利用率。
这是nmon
我正在使用的命令:
nmon -f -T -s 10 -c 720 -d -V -P -m /my/nmon/location/
我真正想做的是查明该期间正在使用磁盘的确切进程。我认为搜索与磁盘使用高峰同时运行的任何进程可以揭示原因。
因此,假设我在 15:00 看到磁盘使用量图形峰值,我是否应该转到 UARG 选项卡并搜索该时间附近正在运行的任何进程?假设最消耗 CPU 的进程应该为磁盘使用负责,是否正确?
请注意,在那段时间我没有正在运行的作业。
答案1
通过快照和选项之间的间隔为 10 秒-T
,您可以每 10 秒捕获一次最重要的进程;希望有问题的进程使用足够的 CPU 时间,在这些时间范围之一中被视为“顶级”进程。
一旦你有了时间范围,我就会从 NMON 文件中 grep 查找“快照编号”,并按 CHARIO 列对结果进行排序。这可以让您清楚地了解分配给哪个进程的 I/O 最多。
获取快照编号:
grep ^ZZZZ,T /my/nmon/location/my-file.nmon
您将得到如下结果:
ZZZZ,T0001,11:43:21,26-SEP-2018
ZZZZ,T0002,11:43:31,26-SEP-2018
ZZZZ,T0003,11:43:41,26-SEP-2018
找到与 15:00 时间范围相对应的 T000 编号,然后从 nmon 文件中 grep 查找这些 T 代码并按第 11 列 (CHARIO) 排序;例如:
grep '^TOP,.*,T0024' my-file.nmon | sort -t, -k11n
每个时间范围底部的条目在该时间范围内执行最多的 I/O。如果您在所讨论的 45 分钟持续时间内看到相同的过程,那么您就有一个很好的候选人。当然,这个过程可能是无辜的你的I/O——它可能正在执行终端 I/O 或对其他磁盘的 I/O。