- - PR -
MRTG CPU使用率
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-12-22 15:50
MRTG CPU使用率を使おうとしています。
あるサイトで、グラフ表示されているのを見て疑問が出てきました。 週間グラフ(30分間平均) 最大値 1分間平均 63.0 (%) 、最大値 5分間平均 92.0 (%) とか、 月間グラフ(2時間平均) 最大値 1分間平均 46.0 (%) 、最大値 5分間平均 48.0 (%) とか、なっていました。 これらは、最大1分平均 < 最大5分平均となっており、 単純に考えるとありえないと思います。 このサイトの値がサンプル値か否かは不明ですが、 最大1分平均 < 最大5分平均 ってありえるのでしょうか? | ||||||||||||
|
投稿日時: 2004-12-23 02:04
1分平均、5分平均となっているので、そのサイトは多分net-snmp(ucd-snmp)のUCD-SNMP-MIB::laLoadInt.1とかlaLoadInt.2の値を取っているんだと思います。私もMRTGを使うときに調べたときもこれをもってCPU使用率と言っているサイトが多かったのですが、これってuptimeとかtopで見れるロードアベレージです。ロードアベレージってCPU実行キューの待ちプロセス数(だったような)ですから、その値はパーセンテージで表せる性質のものではないし、オプションのgaugeやabsoluteの使い方がまちまちだったので、正しい値を表していないと思いました。
| ||||||||||||
|
投稿日時: 2004-12-23 16:23
回答、ありがとうございます。
正しい値を示していないのかもしれませんネ。 ま、これだけ普及していると言うことは、目安にはして良いって事ですよネ。 書きながら思ったのですけど、 よくMRTGの実行は、5分間隔のcronで行いますが、 5分間隔で得た所の1分平均、5分平均というのは、その時点の直近ですよネ。 とすると、最大の1分平均というのは、全時間帯の最大の1分平均ではなく 5分に1回、測定された1分平均の中の最大なので、最大1分平均 < 最大5分平均 になったのかも? もし、例えば、トラフィック的に×と思いますが、 MRTGの実行を、1分間隔のcronで行ったとすれば、 特に1分間隔がまったく違う結果になるのでしょうか? 推測で書きましたが、如何でしょうか? | ||||||||||||
|
投稿日時: 2004-12-23 23:54
Pっくりさんの推測通りで、そうなると思います。
私の書き方が悪かったのですが、前回私が言いたかったのは、topやuptimeで得られるロードアベレージの値をMRTGでCPU使用率(100%が上限)と言う形でグラフ化しているなら、そもそもロードアベレージの意味を誤解しているので、MRTGのオプションも間違ったものを指定している可能性があるから気をつけてくださいと言うことでした。 [ メッセージ編集済み 編集者: nag 編集日時 2004-12-24 00:03 ] | ||||||||||||
|
投稿日時: 2005-01-12 13:45
こんにちは。
久々に MRTG を見る機会があったのでスレッドを覗いてみたのですが…たしかにロードアベレージをパーセントにしているサイトさんは多いですね (^^; # ので、「CPU 使用率」 という表現は不適切かと… ふと思い立って、@IT さんの記事 を見てみたのですが、見事にパーセントになっていました(苦笑) 別途、修正依頼スレを立てたいと思います。 それと、ITmedia さんのデベロッパーチャンネルにある 「SNMPによるネットワークモニタリング」 が、MRTG を丁寧に解説していたと思いますので、よろしければご覧になってみてください。
あまり稼動していないホストにたくさんコンパイルさせたりすると、「1分平均 < 5分平均」 なグラフが取れるかもしれません。 # 見たことはあります あと、脱線なのですが、load について解説しているドキュメントなどをご存知の方がいらっしゃれば、ご教示いただきたく、お願いいたします。 # 「man top」 は見ているのですが…プロセスだけカウントするのかな?とか _________________ はゆる Smile, Smiles make me happy. | ||||||||||||
|
投稿日時: 2005-01-12 21:21
ロードアベレージの算出方法ですか? 「プロセスだけカウントする」というのはどういうことでしょうか。 スレッドのことを気にしていますか? | ||||||||||||
|
投稿日時: 2005-01-13 18:52
言葉足らずですみません。 ロードアベレージは、サイトや書籍などでよく 「システム負荷平均」 と紹介されているので、「”システム負荷” って?」 が引っかかっていたのでした。 # 字面にかかずらっているだけでしょうか… それと、「1,5,15分間での負荷平均です」 という説明は見かけるのですが、それが何を指しているのかや、どういう風に見るのかについては、ほとんど言及されていないなぁと思いまして。 私の探し方が悪いだけかもしれません ![]() 負荷がかかっているかどうかは cpu 数で判断すると、人づてに聞いて分かったのですが。 何かご存知でしたら、よろしくお願いします。 # kernel 方面の勉強をしなければならないような… _________________ はゆる Smile, Smiles make me happy. | ||||||||||||
|
投稿日時: 2005-01-13 22:37
他にうまい言い方がみつからなかった、ということじゃないでしょーか。
同感です。 実際、分かっていない人が多いと思います。 ・・・で、私が分かっているかといえば、そうでもないのですが ![]() 「まあ、こんなところだろう」という程度なら... えー、クロック割り込みというものがあります。 むかしの Unix だと1秒間に50回とか60回とか、いまどきの Unix だと たいてい毎秒100回の割り込みが発生します。 この割り込みの処理の際に、直前の動作モードを調べてそれがカーネル モードであったならば sys として記録し、ユーザモードであったなら user として記録する。これでCPU使用率が出るわけですが、じゃあ CPU使用率が100%近くになるとまずいのか?というと必ずしもそうでも なくて、頼まれた仕事をこなしているうちは問題がない。 が、さばける仕事の何倍もの量を押しつけられていたとしても100%より 上はないのだからCPU使用率をみてもそのことは分からないわけです。 OS がプロセスのスケジュールをする際に、プロセスが走行可能な状態 なのか、それとも「待ち」に入って寝てるのか、という分類をやって います。1個のCPUである瞬間に走らせることができるプロセスは ひとつしかないわけで、走行可能なプロセスが複数あるということは すなわちCPUの空きを待たされてるプロセスがある、ということです。 クロック割り込みのたびに走行可能なプロセスの数を調べていけば CPUの忙しさのおおよその目安ができるはずです。これがロード アベレージです、たぶん ![]() でも、本当に毎秒100回調べて平均しているのかというとそうでも なくて、100回のうちの1回だけを取り出してその1秒間の状態を 代表させている旨の説明がなされているOSもあります。
CPUが多いとロードアベレージも高くなる、という話でしょうか。 それはそうです。CPUが4個あれば4つのプロセスが同時に走行可能 ですので。 |
1|2|3
次のページへ»