知識、知恵のカタマリ

[PR]365日、乾かない肌へ。

解決済

複数CPUで稼動するlinuxのload averageの目安に関する信頼できるソース

snmpの.1.3.6.1.4.1.2021.10やuptimeやwで取得できる
load averageで機器の負荷を監視しています。
昔どこかで、「搭載CPUの個数を目安に監視する」と聞き、
2CPUの機器は2.00を目安に監視していたのですが、
CPUの数にかかわらす1を超えてはいけないという
反論を頂きました。

複数CPUのload averageの目安に関する信頼できる団体によるソースを教えてください。


一般的な記事のソース


2006-06-02 19:45の質問
linux  average  load  複数CPU  目安  
Load
歌ネットによる歌詞情報です
www.uta-net.com/user/phplib/J-Word.php
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
Ads By Google

回答(3)

3.

2006-06-30 05:45:03ベスト
コメント#4までカバーできるかどうかわかりませんが、ご質問の答はたぶん、↓がよいかと思います。
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)

#ギリギリですが、お蔵入りになりませんように。。。
回答レベル : 回答

困難な質問に回答いただき、ほんとうにありがとうございます。
大変助かります。
基本的にお蔵入りになっても解決するまで再掲載しているので、
今後もよろしくおねがいします。

1.

2006-06-03 07:54:45
1でなければならないかどうかについては
運用のレスポンスタイム等を鑑みた経験則だと思うので
人または運用形態によって言う事が違ってくると思います。

お使いのOSまたはツールのソースコードレベルから
この問題を考えないといけないので、
一般論では答えにくいのではないかと思いますよ。
自信度 : 自信なし 回答レベル : アドバイス

2.

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

ただし、このことは、CPUの数を倍に増やすとload averageが半分になるという意味ではありません。スケジューリングによって問題は変わってきます。また、load averageはCPUを観測しているものなので、性能評価指標のひとつにはなりますが、それだけで性能を測ることはできません。

信頼できるソースは、ぴったりよさそうなものはなかなかみつかりませんが、中野 彰郎さん@早大の修論↓の3章に、しくみについてのわかりやすい説明があります。
http://dspace.wul.waseda.ac.jp/dspace/bitstream/20...

あとは、ソースコード関連だとlinux本家にはもちろんデータはありますが、該当部分のソースコードは、カーネルの知識とサンプリング→平均を換算する知識が必要でレベルが高いです。
回答レベル : 回答
Ads By Google

コメント(5)

#1.  ひみつ
2006-06-21 13:28:04

「仕組みがわからないから仕組みを教えてください」ではなく

僕とかのいうことでは信用できないといわれて困っているため
「信頼できる団体によるソースを教えてください。」と
質問しております。

2006-06-21 13:39:59

>>#1
なるほど、自分用ではなく、他人に提出するわけですね。それを明記して頂きたかった。
>>2
の論文で説明しても納得してもらえないですか?修論なのである程度信用はできると思いますが。英語でもよければ、もう少し漁りますよ。

#3.  ひみつ
2006-06-21 15:34:16

論文の方はLoadAverageの評価方法、算出方法に触れておらず厳しそうです。

スレッド等のfoke処理の無い単純Processが稼動し続けているとき
LoadAverageはほぼ1をさすと思います。
プロセスが動作し続ける限りCPU割り当てキューには
割り当てるべきプロセスが常に1そんざいするからです。

2CPU環境で2つ動作し続けてLoadAverage2のとき、
動作し続けている2つのプロセスには割当先も2つあるので
ほぼ遅延が無いため、2.0を基準に監視しています。

平均CPU割り当てキューという言葉じりから
平均的にキューが1になるということは遅延が発生しているという主張をされています。

HTは通常のタイムシェアもかなり効率化できると思いますが
論文の記事は深く読まないとHTがなければ
実際に大幅に遅くなるといわれそうです。

#4.  ひみつ
2006-06-21 15:36:22

CPUタイムシェア処理で、CPU割り当て先があいていれば
実行中のプロセスが継続して割り当てられるだけなので
各処理は通常のタイムシェア処理以上の遅延はなく、
CPU個数以下のキューは影響がないと考えています。

算出方法、評価方法の点で説明できる資料であれば
英語であっても解決できると思っています。

2006-07-01 05:16:41

ベストありがとうございます^^

トラックバック

トラックバックURL: