Linux
iotop 和 iostat 不同意
我試圖了解我的伺服器磁碟發生了什麼。它執行的是 Ubuntu 12.04LTS,我習慣於
iostat
知道磁碟何時成為瓶頸。但iostat -xd
在我看來,磁碟很空閒:Linux 3.2.0-41-generic (loki) 07/05/2013 _x86_64_ (8 CPU) Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.16 1.23 0.69 1.49 9.94 37.03 43.05 0.52 239.02 14.16 343.06 3.65 0.80 sdb 0.00 0.00 0.00 0.00 0.00 0.00 8.10 0.00 0.25 0.25 0.00 0.25 0.00 dm-0 0.00 0.00 0.82 2.70 9.92 37.03 26.67 0.72 203.84 16.80 260.64 2.27 0.80 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 7.99 0.00 198.63 9.33 1232.65 13.97 0.00 dm-2 0.00 0.00 0.00 0.00 0.00 0.00 7.99 0.00 497.11 14.27 1858.12 20.96 0.00
而
iotop
講述了一個非常不同的畫面:Total DISK READ: 31.84 M/s | Total DISK WRITE: 19.55 M/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 27472 be/4 mongodb 31.35 M/s 3.92 K/s 0.00 % 46.56 % mongod --config /etc/mongodb.conf 318 be/3 root 0.00 B/s 94.06 K/s 0.00 % 44.52 % [jbd2/dm-0-8] 1493 be/4 mongodb 0.00 B/s 48.88 M/s 0.00 % 9.13 % mongod --config /etc/mongodb.conf 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0]
mongod
每秒寫入數十兆字節。差異來自哪裡,我應該相信哪個?
iostat -xd
將為您提供自上次計數器重置(通常是上次系統重新啟動)以來的iotop
平均值,同時生成最後一秒的平均值。如果您想要可比較的結果,您應該在iostat
呼叫中附加一個刷新時間間隔,例如iostat -xdmy 5
在 5 秒的時間段內進行平均。