備忘録: vmstat の iowait について
8月 30th, 2007
たまには技術的な内容を。
vmstat の iowait について、新たな発見があったので備忘録として残しておく。
仕事で使っているサーバの iowait が頻繁に 50% を超えるようになってきた。

vmstat で表示されているように、cpu idle の値は 100 – us – sy – wa になっているので、iowait というのは cpu 負荷に直結するものなんだと思っていた。つまり、 idle=0, wa=100 というのは cpu 使用率 100% ということだと思っていた。でも調べてみるとどうやらそういうことではないらしい。
以下のサイトが参考になった。
iowaitは、 CPUがアイドル状態で、システムに未処理のディスク入出力要求があった時間の割合を意味しますが、iowaitの状態であれば、CPUを必要とするプロセスが他にある場合には、そのプロセスがCPUを使用することが可能です。
つまり、iowaitが98%であってもCPUの負荷が高い状態ではありません。
一般的に、usとsyの列の値を足した値をCPU使用率と見ます。そのため、iowaitが98%であることだけでは業務への影響が大きいとは言えません。
ここに書いてあるとおり、CPU 使用率を見るには、us と sy だけを見ればいいということだ!
ひょ、ひょっとして常識・・・?!
CPUの使用率は?と考えた時、自然と us と sy だけを見ていますた。。
us + sy + idel = 100(%) かなと。
iowait についてお勉強になりました(笑)