「複数CPUならload averageはCPU数で割れ」は正しいか?

【この記事の所要時間 : 約 3 分

「複数CPUで稼動するlinuxのload averageの目安はいくつだ?」という前から気になっていた疑問をLivedoor Knowledge で見つけたので、読んでみた。

snmpの.1.3.6.1.4.1.2021.10やuptimeやwで取得できる
load averageで機器の負荷を監視しています。
昔どこかで、「搭載CPUの個数を目安に監視する」と聞き、
2CPUの機器は2.00を目安に監視していたのですが、
CPUの数にかかわらす1を超えてはいけないという
反論を頂きました。
複数CPUのload averageの目安に関する信頼できる団体によるソースを教えてください。
複数CPUで稼動するlinuxのload averageの目安に関する信頼できるソース

つまり、
2CPUならLoad Avarageの監視目安は2.0で、3CPUなら3.0でいいのか?」ということ。
これに対して、IBMのサイトドキュメントを信頼できるソースとして紹介し、
In a multi-CPU (or multi-core) system, divide the load average by the number of CPUs. (複数CPUならload averageはCPU数で割れ)」を回答としていた。

http://www-128.ibm.com/developerworks/aix/library/…
Using uptimeの章の真ん中くらいに、

複数CPUならload averageはCPU数で割れ

と書いてあります。他の章も含めて、いい記事だと思います。
IBMサイトのドキュメントなので、信頼してもよいと思いますが、著者の紹介はページの一番下の方をご参照下さい。
この記事自体は、Linuxに限定したものではなく、一般のUNIXシステムが対象のようで、multi-CPU対応になった頃から、だいたいこの仕様みたいです。
↓は信用度はわかりませんが、一応挙げておきます。
http://en.wikipedia.org/wiki/Load_(computing)

信頼していいと思った。
これから根拠を聞かれたらコレで行こうと思う。
「CPU数の分だけ待ち行列が用意されていて、load averageの表示はそれらの合計を表示している。」とのことらしい。

カーネルによって話が若干違いますが、現在のSMPカーネルだと、CPU数の分だけ待ち行列が用意されていて、load averageの表示はそれらの合計を表示しています。したがって、2CPUの場合は2.0の基準で基本的には間違いありません。2.0を超えているということは、CPU内で平均的に待ちが生じていることになります。
*仮に各CPUについての平均になっていれば、1.0ということになりますが、そうはなっていません。

少しカシコクなった。

コンピュータはなぜ動くのか~知っておきたいハードウエア&ソフトウエアの基礎知識~
矢沢 久雄 日経ソフトウエア
日経BP社
売り上げランキング: 9,184
スポンサーリンク
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
レクタングル(大)広告

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です