Linux

Load AverageとCPU Utilizationの違い

More than 5 years have passed since last update.

リソースモニタなどでCPUをモニタリングする指標として、Load AverageとCPU Utilization(使用率)がありますが、

それぞれどういう意味か曖昧になっていたので調べてみました。


  • Load Averageは実行キューのプロセス数とI/Oなどでシグナル受信不可(uninterruptible)のプロセス数の合計


    • BSD系のカーネルはuninterruptibleなプロセスは含まないらしい




  • /proc/loadavgから1,5,15分の平均プロセス数が取得できる

  • この数がCPUのコア数より多いと、実行中なのにCPU時間が割り当てられていないプロセスが存在する→パフォーマンス低下

  • CPU使用率が100%未満でも、I/O待ちのプロセスが多いとLoad Averageが上がる

  • 同じCPU使用率100%でも、コア数が違うとかかっている負荷が違う。Load Averageはコア数が違っても同じ値を示すので、より直接的に負荷の量を表す。


参考

http://stackoverflow.com/questions/21617500/understanding-load-average-vs-cpu-usage

http://en.wikipedia.org/wiki/Load_(computing)#Unix-style_load_calculation