システムの負荷を確認する際に、top
や uptime
コマンドで表示される「Load Average」という指標を目にすることは多い。
Load Average はプロセスの実行待ち状態を表す値であり、システムの混雑度合いを示す重要な指標である。
Load Average とは、一定期間内に「実行可能状態または実行中のプロセスが何個あったか」の平均値である。LinuxやUNIX系OSでは、1分・5分・15分の平均値が表示される。
load average: 0.78, 1.32, 1.48
左から順番に1分、5分、15分の平均値を表す。
この数値は、CPUコアに対して同時に実行または実行待ちしていたプロセスの数を示しており、CPUの混雑具合を間接的に表している。
なお、Load Average は「CPUの使用率」ではない。CPUの使用率は %
で表されるが、Load Average は「プロセス数の平均値」であるという点でまったく性質が異なる。
Load Average の評価において最も重要なのは、CPUのコア数との相対関係である。
たとえば、4コアのマシンで Load Average が 4.0 であれば、全コアが常にフル稼働している状態となる。これを超えると、プロセスがCPUの空きを待つ状態、つまり「詰まり」が発生している可能性がある。
逆に、8コアのマシンで Load Average が 1.5 の場合、コアごとの平均実行待ちは 0.1875 に過ぎず、十分に余裕がある状態である。
Load Average が高いからといって、必ずしも異常というわけではない。たとえば、以下のようなケースでは一時的に高くなるのが自然である。
このような場合、Load Average が高くてもユーザー体験に影響がなければ、問題視する必要はない。
以下のような症状が見られる場合は、Load Average の高さが実害につながっている可能性がある。
このようなときは、top
や vmstat
、iostat
などのツールで詳細を確認し、どのリソースにボトルネックがあるかを特定する必要がある。
Load Average はあくまで「プロセスがどのくらい詰まっているか」を見る指標である。それ以外にも、システムの状態を把握するためには以下のような指標もあわせて見る必要がある。
指標 | 内容 | 代表的なコマンド |
---|---|---|
Load Average | 実行待ちのプロセス数平均 | uptime , top |
CPU使用率 | CPU時間の使用割合 | top , mpstat |
IO Wait | IO待ち時間の割合 | iostat , vmstat |
メモリ使用率 | 実メモリの使用状態 | free , htop |
実プロセス数 | 現在起動中のプロセス数 | ps , htop |
Load Average は「数値」だけを見て一喜一憂するものではなく、そのサーバーにおける適正値を知った上で傾向を見るべきである。コア数を超えていないか、異常なスパイクがないか、実害があるかどうか。この三点を意識すれば、過剰な反応を避けることができる。
また、Load Average の推移はシステムがどれだけ忙しいかの「温度感」をつかむには良い指標である。CPU使用率やメモリ使用率と組み合わせることで、より実態に即した分析が可能になる。
Load Average はプロセスの渋滞状況を知る指標として、システムの混雑度合いを把握するために有効な情報を提供する。特に CPU コア数との相対関係を意識することで、値の意味を正しく評価できる。
CPU使用率やIO Wait、メモリ使用率など他の指標と組み合わせて観察することで、単なる数値ではなく、実際のボトルネックや処理待ちの状況を読み解く手がかりとなる。
「Load Average が高い」だけで問題視するのではなく、「その影響がユーザー体験やシステム全体にどう現れているか」を考慮する必要がある。
関連書籍