解決済
複数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の目安に関する信頼できる団体によるソースを教えてください。
一般的な記事のソース
回答(3)
3.

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.
運用のレスポンスタイム等を鑑みた経験則だと思うので
人または運用形態によって言う事が違ってくると思います。
お使いのOSまたはツールのソースコードレベルから
この問題を考えないといけないので、
一般論では答えにくいのではないかと思いますよ。
2.
*仮に各CPUについての平均になっていれば、1.0ということになりますが、そうはなっていません。
ただし、このことは、CPUの数を倍に増やすとload averageが半分になるという意味ではありません。スケジューリングによって問題は変わってきます。また、load averageはCPUを観測しているものなので、性能評価指標のひとつにはなりますが、それだけで性能を測ることはできません。
信頼できるソースは、ぴったりよさそうなものはなかなかみつかりませんが、中野 彰郎さん@早大の修論↓の3章に、しくみについてのわかりやすい説明があります。
http://dspace.wul.waseda.ac.jp/dspace/bitstream/20...
あとは、ソースコード関連だとlinux本家にはもちろんデータはありますが、該当部分のソースコードは、カーネルの知識とサンプリング→平均を換算する知識が必要でレベルが高いです。
コメント(5)
「仕組みがわからないから仕組みを教えてください」ではなく
僕とかのいうことでは信用できないといわれて困っているため
「信頼できる団体によるソースを教えてください。」と
質問しております。
>>#1
なるほど、自分用ではなく、他人に提出するわけですね。それを明記して頂きたかった。
>>2
の論文で説明しても納得してもらえないですか?修論なのである程度信用はできると思いますが。英語でもよければ、もう少し漁りますよ。
論文の方はLoadAverageの評価方法、算出方法に触れておらず厳しそうです。
スレッド等のfoke処理の無い単純Processが稼動し続けているとき
LoadAverageはほぼ1をさすと思います。
プロセスが動作し続ける限りCPU割り当てキューには
割り当てるべきプロセスが常に1そんざいするからです。
2CPU環境で2つ動作し続けてLoadAverage2のとき、
動作し続けている2つのプロセスには割当先も2つあるので
ほぼ遅延が無いため、2.0を基準に監視しています。
平均CPU割り当てキューという言葉じりから
平均的にキューが1になるということは遅延が発生しているという主張をされています。
HTは通常のタイムシェアもかなり効率化できると思いますが
論文の記事は深く読まないとHTがなければ
実際に大幅に遅くなるといわれそうです。
CPUタイムシェア処理で、CPU割り当て先があいていれば
実行中のプロセスが継続して割り当てられるだけなので
各処理は通常のタイムシェア処理以上の遅延はなく、
CPU個数以下のキューは影響がないと考えています。
算出方法、評価方法の点で説明できる資料であれば
英語であっても解決できると思っています。
ベストありがとうございます^^


