- - PR -
MRTG CPU使用率
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-01-16 01:11
ぽんす さん、平易かつ簡潔なご説明をありがとうございました。
# たくさん書いていただいて多謝です m(_ _)m 教えていただいた内容から、また資料探しなどもできそうです。 よい機会だからと 「man top」 を見直してみて、そういや見ていなかったわ…と 「man 5 proc」 を見てみたところ、
とありましたので、あわせて記載しておきます。
はい、そのときはアホな質問をしたと思いました ![]() ロードアベレージについては、「1 以下なら OK」 や 「5 だとかなりの負荷がかかっている」 等の解説も見ていたんですね。 で、過去にそれが 1 以上になっているサーバを見る機会がありまして。 そのサーバは CPU を 2個搭載していたのですが、大事なのは 1 や 5 という数字自体ではないのだと、そのときに分かりました ![]() そういえば、「CPU 使用率」 といいますと 「top コマンドでどのくらい idle になっているかを見る」 と学んだのですが、みなさんはどうされているのでしょう? _________________ はゆる Smile, Smiles make me happy. | ||||||||||||||||
|
投稿日時: 2005-01-16 13:56
「にゃにいいい?」と思ったのでカーネルソースをざっと眺めてみました。 Linuxの場合、ロードアベレージを算出する際にみているプロセスは 2種類あります。ひとつは走行可能なプロセス、もうひとつはシグナル 受信不可(とりあえず受付を保留する)で待機しているプロセスです。 # それを数えているのは kernel/timer.c の count_active_tasks() で、シグナル受信不可で待機している(TASK_UNINTERRUPTIBLE の状態) というのは典型的にはディスクI/Oの際に用いられるとのこと。 マニュアルの記述はこのことを指しているのでしょう。 が、たとえばFreeBSDですと... 数えているプロセスはやはり2種類なんですが、それは「生成したてで まだ走行したことのないプロセス」と「走行可能なプロセス」です。 待機状態のプロセスは数えていません。 # 確認していませんが、おそらくBSD系はみんなこうだと思います。 ・・・うーん、驚きました。 書き忘れたので追記。 Linux でも FreeBSD でも、ロードアベレージを計算する元ネタを 拾ってるのは5秒に一回でした。
そうですね。いわゆる「デスクトップ」用途で使っているマシンで ロードアベレージが1というとかなり重く感じるのではないかと 思いますが、サーバ用途だとシングルプロセッサで5になっても ぜんぜん問題ない、ということも多いと思います。
I/O wait を idle とは別に表示する AIX の罠が... ![]() # ちゃちゃです、すみません。 [ メッセージ編集済み 編集者: ぽんす 編集日時 2005-01-16 14:14 ] | ||||||||||||||||
|
投稿日時: 2005-01-17 15:46
お、奥が深いです… ![]()
単に CPU 数だけで判断するのは早計だ、ということですよね。 日頃から、どんなプロセスがあるのかなどを、把握しておかなければならないと (^^; それと、OS によって違いがあることも分かりました。 # ロードアベレージにせよ、idle 率にせよ… 「処理が重いなぁ」 で CPU が限界なのかを判断するのも、やはり難しいんですねぇ ![]() 大変勉強になりました m(_ _)m _________________ はゆる Smile, Smiles make me happy. | ||||||||||||||||
|
投稿日時: 2005-01-19 21:17
CPU使用率は、奥が深いのですね。勉強になります。
その後、MRTGのCPU使用率に関してですが、書籍などで調べたのですが、 コンフィグの設定で、Targetを5分平均のまったく同じOIDを2つ並べたものに記述して、そのコンフィグをcrontabで5分間隔まわすようにしました。5分間隔の取得に直近の1分平均のCPU使用率を取得してもデータの意味が薄いので・・・ また、コンフィグの設定で、グラフの下部に同じデータが2行表示されるのは、見た目、”変”なので、 LegendI[xxx]: と引数なしで設定行を入れました。 以上、御参考まで、 っと言いたいのですが、何か問題や、参考になることが御座いましたらお教えください。 | ||||||||||||||||
|
投稿日時: 2006-08-18 13:07
まったく同じ疑問ですので、質問を追加させて下さい。
uptimeの値(ロードアベレージ)はUNIX系を経験が長い人には馴染の数値なのですが Windowsのようにパーセントで表した方が多くの人が理解しやすいのも確かです。 Linuxの端末を多く扱うので各ノードのCPUの負荷をMRTGでグラフ化したいのですが パーセントとして正しく扱うには、どの値を用いればいいのでしょうか? よろしくお願いします。 | ||||||||||||||||
|
投稿日時: 2006-08-18 15:42
top コマンドでは不十分ですか?
| ||||||||||||||||
|
投稿日時: 2006-08-24 20:19
ssCpuRawUser.0(.1.3.6.1.4.1.2021.11.50.0)とssCpuRawSystem.0(.1.3.6.1.4.1.2021.11.52.0)でユーザとシステムのCPU使用率がとれます。
値はTopともほぼ一致しているので、間違いないと思います。 下記が参考になります。 http://www.strikeout.jp/karaburi/2004/08/ | ||||||||||||||||
|
投稿日時: 2007-10-04 19:06
CpuIdleをMRTGに表示させたくて調べているうちにここを見つけたのですが
計算式でsnmpwalkで取ってきた値をそれぞれ計算すると確かにtopのIdleに近い 値が表示されるのですが、MRTGに計算式を組み込むと計算結果がlogに残って しまい、ssCpuRawIdle.0の生の値が無くなってしまうため前回のデータからの 引き算がおかしくなってしまいます。 この類いの事でMRTGでグラフ化に成功されてる方はおられましたらご教授をお願いします。m(_ _)m |