FreeBSD初心者運用日記 このページをアンテナに追加

 | 

2006-12-27 このエントリーを含むブックマーク このエントリーのブックマークコメント

load averageについて調べた。

load averageはtopコマンドとかwコマンドで表示される項目の一つ。

直訳すると負荷平均だが、意味的にはCPU負荷平均となる。

このCPU負荷平均が何を示すものかを説明する前にプロセスの状態について整理する。

プロセスは、おおまかに以下の4つの状態がある。

・実行状態(まさに今CPUで処理が実行されてる状態)

・実行可能状態(CPUさえ割り当てられれば今すぐに処理開始できる状態)

・入出力待ち状態(ディスクなどの読み書きのリクエストを出してそのレスポンスコントローラから待っている状態)

・sleep状態(sleep状態)

厳密にはこれ以外にもプロセスの状態は存在するが、ここでは説明のために無視する。

この4つある状態の中で実行可能状態にあるプロセス待ち行列数がloadとなり、

その平均を取ったものがload averageとなる。

load averageが1に満たない場合、CPUが使われてない時間帯があるということであり、

1以上の場合、CPUが常に働いている状態であることを示す。

load averageに関する実験をしてみた。

ターミナルを二つ開く。

一つ目のターミナルtopコマンドを実行し、load average(1minute)を確認すると0.3となっていた。

二つ目のターミナルで、以下のようなスクリプトを作成し、実行してみる。

#!/bin/sh

while true
do
    echo "aaa"
done

このような状態で、数分後に一つ目のターミナルを確認すると、load averageが約1ほど増加していた。

 |