質問: HP-UX11ですが、1日に1回、1分間だけCPUの負荷が100% 近くになってしまいとても困っています。 原因となるプロセス名はわかっているので本来はそのバグ を修正すべきなのでしょうが、事情がありそれがなかなか 出来ない状態なので、CPUに負荷がかかったらそのプロセス を殺すとしくみを自動検知で作りたいのですが、その検知 方法がわかりません。 PSをポーリングするというのはそ れ自体が負荷となるのでNGです。 よろしくお願いします。
回答: かなり後ろ向きな対策ですが...。 問題のプロセスのプロセスIDが変わらないのであれば(常駐しているのであれば)、「renice +20 プロセスID」 として優先を下げてしまうというのはどうでしょう?(起動する場所がわかっていれば「/usr/bin/nice -n 20 コマンド」でもいいです。)また、root権限があれば他のプロセスの優先のほうををあげる手もあります。 csh上で「limit cputime 60」とした環境から起動すると、CPU時間に制限をつけることができます。(制限を超えるとシグナルがとんできて、何もしなければ終わります。) いちおうSCOのUnixWareのマニュアルで確認しました。(SystemV系です。) 機種依存があるかもしれないので試す場合はマニュアルで確認してみてください。