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 ...
發生了什麼事 - 我只是沒有正確使用該工具嗎?
我想我已經弄清楚了:該選項
-y
會拋出第一組結果,這是不現實的,並等待 iostat 進行完整採樣。IOW,總是使用
iostat -y
- 或嘗試sar -d -p 1 1