Iostat

iostat不可靠嗎?

  • October 27, 2021

我注意到 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
...

發生了什麼事 - 我只是沒有正確使用該工具嗎?

我想我已經弄清楚了:該選項-y會拋出第一組結果,這是不現實的,並等待 iostat 進行完整採樣。

IOW,總是使用iostat -y- 或嘗試sar -d -p 1 1

引用自:https://serverfault.com/questions/1081855