ディスクI/Oを確認する
ディスクI/Oを確認する
ディスクI/Oを確認するには先ほどのvmstatコマンドを使用します。
ここで見るのは、b、bi、bo、waの値です。それぞれの値の意味は次のようになります。
| b | 割り込み不可能なスリープ状態にあるプロセス数 |
| bi | 読み出しブロック数 |
| bo | 書き込みブロック数 |
| wa | 待ちプロセスの割合 |
bi、boの値が大きい程ディスクアクセスが頻繁に行われています。ディスクアクセスが増えると、待ちプロセスが増加して、b、waの値が増えてい きます。ディスクアクセスが増えて待ちプロセスが増えると、どんなに高速CPUでどんなにメモリを搭載していても処理がなかなか実行されなくなり、大きな ボトルネックとなってしまいます。
ディスクI/Oが多い場合の対策
ディスクI/Oが多い場合は次のような対策を行います。
- アドホックな対策
-
- 該当プロセスを終了させる
- 恒久的な対策
-
- ディスクアクセスが少なくなるようにプログラムを変更する
- ディスクを高速なものに変更する
- ディスクを増やす、RAID構成にするなどしてI/Oを並列化させる
- サーバを増やして負荷分散する
CPUやメモリの時と同様に、どうしようもない緊急の場合は、該当プロセスを終了させましょう。恒久的な対策も同様にハードウェアとソフトウェアの両面から対策をします。
ストレージに関しては様々な値段、性能のソリューションがあります。予算と要求仕様によっていろいろ検討する必要があります。
まとめ
サーバの負荷を軽減するにはボトルネックの特定が必要不可欠です。ボトルネックになっていない部分をいくら改善しても、時間とお金がかかるだけで、それほど多くの成果を出すことができません。またボトルネックの箇所によって、調べる方法も違います。
様々な方法を使って原因を特定し、サーバの負荷対策を行うように心がけましょう。
