CPU 使用率について(ps,top,sar)

回答受付中の質問

CPU 使用率について(ps,top,sar)

 "ps -aux"コマンドを利用したスクリプトを作成し、CPU 使用率を定期的に監視するようにしています。
先日、このスクリプトで CPU 使用率 99% を示す異常がありましたが、同じタイミングで top や sar を
試したところ、CPU 使用率は 1% もありませんでした。


異常があった時の ps -aux の取得結果は以下の通りです。

USER   PID %CPU %MEM VSZ RSS TTY STAT START  TIME COMMAND
root    7 99.9  0.0  0  0  ?  SW Jul23 272:54 [kscand/Normal]
※等幅フォントだと見易いです


kscand で CPU を 99.9% 消費しているように見えるのですが、top や sar コマンドの CPU 使用率は
いずれも 1% 未満でした。またサーバの動作自体は軽快で、とても CPU を使い切っているようには
思えませんでした。

この事から ps コマンドの異常か何かだと思うのですが、ps と top や sar で取得する CPU 使用率の値に
どの様な違いがあるのでしょうか。また、取得する値についてそれぞれ信頼性はあるのでしょうか。
ご存知の方いらっしゃいましたらご教示の程お願いします。


■バージョン
OS:Redhat Linux 9 (Shrike)
procps version 2.0.11
sysstat version 4.0.7

投稿日時 - 2007-07-30 18:55:56

連想キーワード:

QNo.3212913

困ってます

4人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(1件中 1~1件目)

ANo.1

ps のmanより

現在のところ CPU 使用率は、プロセスの生存期間中に実行に利用した時間のパーセンテージで表される。

なので値は、希望するものと異なるでしょう。
通常、psのCPUの使用率は、個々のプロセスのみのみの
判断材料とするべきでしょう。

余談ですが
ps -aux は、恐らく文法が間違っています。
かなりの人がそのような間違った書き方をしますが。。。。


希望しているには

ps aux か
ps -ef でしょう。

投稿日時 - 2007-08-01 01:33:27

お礼

つまり、PS コマンドにおいての CPU 使用率とは
<プロセスの生存時間>÷<実行時間>=<CPU使用率>
として求められているのですね。
何かの事情でプロセスが残ってしまった場合、CPU使用率の値が
不当となる、という理解で構わないのでしょうか。

とにかくありがとうございました。あれからスクリプトには
PS コマンドは使用しないようにしております。

## かなりお礼が送れてしまいました。
## ps の文法のミスのご指摘もありがとうございました。

投稿日時 - 2008-02-28 11:55:55

あわせてチェックしたい
  • sysstatをインストールしたが、sarが使えない ...
  • [Redhat Linux]sarの出力結果について ...
  • sysstatでのリソース状況取得において、0時0分のデータが出力され ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら