- 締切済み
プロセス監視
はじめまして。 シェルスクリプトについて質問があります。 現在、以下のような内容のスクリプトを考えております。 ===================== プロセスを監視して、CPU使用率が70%以上で、なおかつメモリ使用率が 80%を超えたプロセスがあった場合、[プロセス名・PID・CPU使用率・メモリ使用率]を本文にしたメール送信する。 ===================== いろいろと模索しているのですが、うまく組むことが出来ないでいます。 皆様でしたら、どのように組みますでしょうか? ご教示下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- k_izumo
- ベストアンサー率50% (68/134)
え? マジですか? topコマンドでの%CPU %MEM部分で監視するんですか? それってなんの意味があるんですか? TOPコマンドの%CPU(%MEM)は同じようにps auxで確認できますが このアベレージは本当にアクティブなプロセスでも 何も動かしてなければ合計はほぼ 0.0 になるはずです。 そして、CPUが1個のシステムであればどんなに重くなったとしても %CPUの合計が100を超えることはありません。(man psで確認できます) この値の正式な計算方法は プロセスの生存時間÷実行時間=CPU使用率 です。(%MEMも同様です) もし、監視のタイミングでプロセスを再起動する運用なら プロセスのCPU占有率を確認できるかも知れないですが 24時間以上常時稼動するのであれば%CPUの正当性は 低いと考えた方がいいです。 ちなみに・・・ プロセス占有率検査プログラムはあるのですが全てWindows用です。 タスクマネージャーでのプロセスは合計が100になるようになってますので
- k_izumo
- ベストアンサー率50% (68/134)
shellの稼動するサーバと警告を出すエージェントは同一サーバですか?(あるいは同一ネットワーク内のサーバ?) 同一であればMIBで監視してはどうでしょう? プロセス関係のOIDは標準のLinuxでは1.3.6.4.1.2021.2の何れかになります。 この回答を書きながら思ったのですが・・・ > プロセスを監視して、CPU使用率が70%以上で、なおかつメモリ使用率が > 80%を超えたプロセスがあった場合、[プロセス名・PID・CPU使用率・メモリ使用率]を本文にしたメール送信する。 このCPU/MEMの70/80%は単独のプロセスですか? 基本CPU70%、メモリ80%とはシステム内の全体使用率だと思ってたのですが
補足
ご教示ありがとうございます。 言葉足らずで、すみません。 >shellの稼動するサーバと警告を出すエージェントは同一サーバです >か? はい、同一サーバになります。 >このCPU/MEMの70/80%は単独のプロセスですか? 自分の考えていますのは、単独のプロセスです。 topコマンドでの%CPU %MEM部分を考えております。
お礼
ご教示頂きましてありがとうございます。 勉強不足でした・・・。 このアドバイスを参考に、もう一度頭の中を整理していみたいと 思います。