In the following output, what percentage of time was the CPU waiting for pending I/O?



# vmstat 1 100

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 282120  134108 5797012  0    0     0     2    0    0  0  0 100 0
 0  0      0 282120  134108 5797012  0    0     0     2    0    0  0  0 100 0
 0  0      0 282120  134108 5797012  0    0     0     0 1007  359  0  0 100 0
 0  0      0 282120  134108 5797012  0    0     0     0 1117  577  0  0 100 0
 0  0      0 282120  134108 5797012  0    0     0     0 1007  366  0  0 100 0

A. 0
B. 100
C. 35.9
D. 57.7
E. 36.6

題解

「vmstat」指令可以查看記憶體(由主記憶體和置換空間組合而成的虛擬記憶體)的狀態。指令「vmstat 1 100」表示要以1秒鐘的間隔來取100次記憶體的狀態。

各個欄位的意義如下:

  • r:執行中和等待中的行程數量。
  • b:睡眠中的行程數量。
  • swpd:置換空間的使用量。(單位是KiB)
  • free:閒置實體記憶體的量。(單位是KiB)
  • buff:用來作為緩衝的記憶體的量。(單位是KiB)
  • cache:用來作為快取的記憶體的量。(單位是KiB)
  • si:資料從主記憶體置換進硬碟的每秒資料量。(單位是KiB)
  • so:資料從硬碟置換進主記憶體的每秒資料量。(單位是KiB)
  • bi:從區塊裝置取得資料至記憶體中的每秒資料量。(單位是KiB)
  • bo:將記憶體中的資料寫進區塊裝置的每秒資料量。(單位是KiB)
  • in:每秒的中斷數量。
  • cs:每秒的上下文交換(context switch)數量。
  • us:運行非Kernel程式的時間。
  • sy:運行Kernel程式的時間。
  • id:閒置的時間。
  • wa:等待IO的時間。

題目需要得知「等待IO的時間」,因此要看「wa」欄位,所以答案是選項「A」。