Linux
iostat:等待與 svctm
在
iostat
手冊頁中,我發現了這兩個相似的列:await The average time (in milliseconds) for I/O requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them. svctm The average service time (in milliseconds) for I/O requests that were issued to the device. Warning! Do not trust this field any more. This field will be removed in a future sysstat version.
這些列是否代表相同的事物?我似乎有時他們同意,但有時不同意:
avg-cpu: %user %nice %system %iowait %steal %idle 4.44 0.02 1.00 0.36 0.00 94.19 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.07 0.96 0.28 1.28 8.98 47.45 72.13 0.02 11.36 11.49 11.34 5.71 0.89 avg-cpu: %user %nice %system %iowait %steal %idle 8.00 0.00 2.50 2.50 0.00 87.00 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.00 9.00 2.00 6.00 12.00 68.00 20.00 0.05 6.00 2.00 7.33 6.00 4.80 avg-cpu: %user %nice %system %iowait %steal %idle 4.57 0.00 0.51 0.00 0.00 94.92 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.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 avg-cpu: %user %nice %system %iowait %steal %idle 13.93 0.00 1.99 1.49 0.00 82.59 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.00 29.00 0.00 4.00 0.00 132.00 66.00 0.03 7.00 0.00 7.00 7.00 2.80
除了明顯
svctm
的折舊警告外,這兩列之間有什麼區別?
在 linux
iostat
上,await
列(平均等待)顯示了 I/O 請求從開始到結束所花費的平均時間。列
svctm
(服務時間)應顯示服務請求所花費的平均時間,即在作業系統“外部”花費的時間。它應該等於或小於前一個,因為如果設備已經很忙並且不接受更多並發請求,則請求可能會浪費時間在隊列中等待。與大多數(如果不是所有)類似 Unix / Unix 的實現不同,Linux 核心不測量實際服務時間,因此
iostat
該平台試圖從現有統計數據中推導出它,但失敗了,因為這無法在瑣碎的案例之外完成。有關詳細資訊,請參閱此部落格和隨後的有趣討論。