特定のプロセスのcpu使用率を確認する方法

お世話になっております。

特定のプロセスのCPUの使用率を監視したいのですが
その方法をご教示ください。

よろしくお願いいたします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

私の知っている限りでは、直接、各プロセスのCPU利用率を取得す
るアイテムはなかったと思います。

ただ、Linuxであれば、下に添付するURLのページに記載されている
ように、例えば、httpdなら、

UserParameter=httpd[cpu],ps auxw|grep httpd|grep -v grep| awk '{s+=$3} END {print s}'

などと、UserParameterを利用してpsコマンドの出力結果から切り
出して対応することができます。

ご参考:
  https://www.zabbix.com/forum/showthread.php?t=16445

もしくは、snmpdを起動して、SNMPでプロセスの情報を取得できる
ように設定して、SNMPで取得することも考えられます。
こちらは、プロセスを起動しなおすとインデックスが変わる場合が
ほとんどだと思いますのでご注意ください。

ご参考:
  http://d.hatena.ne.jp/ike-dai/20110119/1295437976

ユーザー dba43986 の写真

いつもありがとうございます。

監視対象がwindowsなので。。

proc_info[XXX.exe,utime,avg]

とやってみるとcpu時間?は取れそうなのですが
意味するところが微妙に分かりません。

更新時間は「10秒」なので
10秒間でXXX.exeがcpuを使った時間(の平均)でいいでしょうか?
#平均?

あるいは意味のない設定でしょうか?

よろしくお願いいたします。

ユーザー TNK の写真

utimeだけを取ってきても、そのプロセスのCPU利用率にはならなか
ったと思います。

 ご参考:
   http://www.zabbix.jp/node/86

他の方法として、Zabbixエージェントを利用して、パフォーマンス
カウンタから取得する方法もあります。

キーとして、IEの場合は「iexplore」を指定して、

 perf_counter["\Process(iexplore)\% Processor Time"]

などと指定すると、IEのCPU使用率が取得できます。

指定するプロセスの名前は、パフォーマンスモニタなどを参考にし
てください。

注意点としては、

 ・複数のプロセスで機能するものは、それぞれのプロセスに対し
  て個別に取得する必要があります。
 ・マルチコアのサーバでは、トータルで100% x コア数分の表示
  となります。つまり、2コアなら200%が最大値になります。

などが考えられます。

ユーザー dba43986 の写真

ありがとうございます。

やってみましたが、アイテムの登録はできるのですが、すぐに「取得不可」になります。
エラーの赤バツのメッセージは「Not supported ...」です。

よろしくお願いいたします。

ユーザー TNK の写真

どのようなアイテムを登録されたのかをお教えください。
すぐに取得不可になります、だけでは問題は特定できません。

ユーザー dba43986 の写真

ありがとうございます。

申し訳ありません。
頂いたキー情報をもとに、アイテムは以下の設定です。
---------------------------------------------------
・タイプ:Zabbixエージェント
・キー:perf_counter["\Process(XXXXX.EXE)\% Processor Time"]
・データ型:数値(浮動小数)
・単位:(なし)
・更新間隔:30
・ステータス:有効
・アプリケーション:CPU
#後はデフォルト
---------------------------------------------------
エラーメッセージは
「Not supported byZabbix Agent」

#バージョン:1.8.16

以上
よろしくお願いいたします。

ユーザー TNK の写真

パフォーマンスモニタで確認されましたか?

パフォーマンスモニタで確認すれば、プロセスを指定する名称には、
例示した通りEXEはつかないはずです。

再度、パフォーマンスモニタでProcessグループ内のインスタンス
の名前を確認してください。