LoginSignup
113
95

More than 5 years have passed since last update.

LoadAverage(ロードアベレージ)について

Posted at

ロードアベレージの事がよく分かってなかったのでメモ。
実際には本を見つつ、コマンドの部分は実際に動かしながら確認。

参考

この本に全て書いてありました。
Linuxの性能の話などすごく分かりやすかったです。
詳細はこちらの4章を見ていただくのが良いかと思います。

[24時間365日]サーバ/インフラを支える技術 ……スケーラビリティ,ハイパフォーマンス,省力運用

結論

本に書いてあるまんまですが、ロードアベレージとは以下の状態のプロセス数を表示しています。

  • プロセスの状態がTASK_RUNNINGの状態(実行はされていない)
  • プロセスの状態がTASK_UNINTERRUPTIBLEの状態

TASK_RUNNINGはプロセスにCPUが割り当てられれば実行可能な状態。TASK_UNINTERRUPTIBLEはディスクのI/O待ち状態。
なので、 上記2つは処理を実行したくても待たされている状態 という意味になります。ロードアベレージでは上記のプロセス数を表示するので、値が高ければサーバーの処理が詰まってしまってしまい、負荷が高い状態となっていると言えると思います。

プロセスの状態

プロセスの状態には以下の5種類があるようです。

  • TASK_RUNNING->CPUが割り当たれば実行可能な状態。CPUが割り当たって処理実行中もこの状態に当たる。(実行中のプロセスはロードアベレージの数値には換算されない)
  • TASK_INTERRUPTIBLE->割り込み可能な待ち状態。sleepやユーザーからの入力待ちなど。 この状態のプロセスはロードアベレージには換算されない
  • TASK_UNINTERRUPTIBLE->割り込み不可能な待ち状態。ディスクのI/O待ち
  • TASK_STOPPED->サスペンドのシグナルが送られて実行中断になっている状態
  • TASK_ZOMBIE->子プロセスがexitして親プロセスにリープされるまでの状態

どうやってロードアレベージを調べるのか

top,uptime,sarコマンドなどで確認できます。

以下はtopコマンド実行結果のキャプチャです。

$top
top - 23:01:13 up  9:38,  2 users,  load average: 0.00, 0.01, 0.04
Tasks:  71 total,   1 running,  70 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.1%st
Mem:   1019444k total,   450140k used,   569304k free,    16368k buffers
Swap:        0k total,        0k used,        0k free,   369504k cached

上記の場合、 「load average: 0.00, 0.01, 0.04」という表示の部分がロードアベレージの値です。左から直近1分, 5分, 15分間のロードアベレージの値です。

uptimeコマンドでも同様に現在の状態を確認できます。
ロードアベレージだけ見たい場合にはこちらの方が見易いですね。

$uptime
 23:08:34 up  9:45,  2 users,  load average: 0.00, 0.01, 0.04

sarコマンドでは過去の状況の確認もできます。(sysstatパッケージのインストールが必要)

$sar -q
Linux 4.1.17-22.30.amzn1.x86_64 (ip-172-31-29-53)   2016年03月07日   _x86_64 (1 CPU)

13時30分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
13時40分01秒         0        76      0.00      0.01      0.03
13時50分01秒         0        76      0.00      0.01      0.03
14時00分01秒         0        76      0.00      0.01      0.03
14時10分01秒         0        77      0.00      0.01      0.03

「ldavg-1,ldavg-5,ldavg-15」がtopやuptimeと同じように対象時間をベースにした直近1分、5分、15分間のロードアベレージの時間となっています。

113
95
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
113
95