iostat 不可靠吗?

iostat 不可靠吗?

我注意到 iostat 有一些令人担忧的地方,但我无法解释——iostat 似乎不太可靠(?)

我正在尝试排除 MySQL 性能不佳的故障,一个明显需要查看的地方是磁盘,因此:

ip-10-14-4-14 root : iostat -x nvme2n1
Linux 5.4.0-1029-aws (ip-10-14-4-14)    10/27/21        _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.19    0.00    0.47    0.84    0.00   97.49

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz  aqu-sz  %util
nvme2n1          4.93    160.70     0.26   4.95    0.53    32.60  216.03   6863.39    57.07  20.90    0.78    31.77    0.00      0.00     0.00   0.00    0.00     0.00    0.00  16.50

看起来还不错 -%util只有 16.5;但是:

ip-10-14-4-14 root : iostat -y 1 -x nvme2n1
Linux 5.4.0-1029-aws (ip-10-14-4-14)    10/27/21        _x86_64_        (8 CPU)


avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.65    0.00    1.26    1.13    0.00   92.96

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz  aqu-sz  %util
nvme2n1         10.00    160.00     0.00   0.00    0.40    16.00 2058.00  40260.00   326.00  13.67    0.65    19.56    0.00      0.00     0.00   0.00    0.00     0.00    0.00 100.00

相同的系统,几乎同时,但现在%util是 100。我甚至尝试循环运行第一个版本,然后%util保持低位:

for i in $(seq 1 50); do iostat -x nvme2n1; done
Linux 5.4.0-1029-aws (ip-10-14-4-14)    10/27/21        _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.19    0.00    0.48    0.84    0.00   97.49

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz  aqu-sz  %util
nvme2n1          4.93    160.70     0.26   4.95    0.53    32.59  216.32   6868.15    57.10  20.88    0.78    31.75    0.00      0.00     0.00   0.00    0.00     0.00    0.00  16.51
...

这是怎么回事?是不是我没有正确使用该工具?

答案1

我想我已经明白了:该选项-y会抛出第一组不可靠的结果,并等待 iostat 进行完整采样。

换句话说,总是使用iostat -y-或者尝试sar -d -p 1 1

相关内容