• 締切済み

UNIXのCPU負荷の自動検知法

HP-UX11ですが、1日に1回、1分間だけCPUの負荷が100% 近くになってしまいとても困っています。 原因となるプロセス名はわかっているので本来はそのバグ を修正すべきなのでしょうが、事情がありそれがなかなか 出来ない状態なので、CPUに負荷がかかったらそのプロセス を殺すとしくみを自動検知で作りたいのですが、その検知 方法がわかりません。 PSをポーリングするというのはそ れ自体が負荷となるのでNGです。 よろしくお願いします。

みんなの回答

回答No.2

かなり後ろ向きな対策ですが...。 問題のプロセスのプロセスIDが変わらないのであれば(常駐しているのであれば)、「renice +20 プロセスID」 として優先を下げてしまうというのはどうでしょう?(起動する場所がわかっていれば「/usr/bin/nice -n 20 コマンド」でもいいです。)また、root権限があれば他のプロセスの優先のほうををあげる手もあります。 csh上で「limit cputime 60」とした環境から起動すると、CPU時間に制限をつけることができます。(制限を超えるとシグナルがとんできて、何もしなければ終わります。) いちおうSCOのUnixWareのマニュアルで確認しました。(SystemV系です。) 機種依存があるかもしれないので試す場合はマニュアルで確認してみてください。

7color
質問者

お礼

ありがとうございます。 試してみます。

noname#271
noname#271
回答No.1

1日に1回そのプロセスが実行されるということは、 1.起動される時間が固定の場合   cronに登録されていないか確認し   登録されている場合は、削除する。 2.shを作成し30秒ぐらいの間隔で   プロセス監視し、プロセスがあったらkillする。   <shの例> #!/bin/sh while [ 1 ] do sleep 30; PS_ID=`ps -ef | grep xxx` if [ X$PS_ID -eq X ] then ; else #ここでプロセスIDを取得しkillする kill xx; fi done こんな感じでしょうか? これならPSでのポーリングでもそれほど負担にならないと おもいます。

7color
質問者

補足

ご回答ありがとうございます。 ただ、このプロセスがあれば必ず悪さするという事でも なく何かのタイミングで起こるようです。 ですのでCPUの負荷を検知したいのですが・・・。

関連するQ&A

  • プロセスIDの再利用

    こんちにちは、honiyonです。  親子関係のない全く別々に起動されたプロセスの終了するプログラムを作ろうと思います。  .NETではシステムで一意なIDというものがある、という情報を見かけたのですが、.NETは使用したくないのでプロセスIDを使って監視出来ないかと考えています。  プロセスIDを使って、定期的にポーリングする方法をとったとき、 プロセスIDが再利用されてしまう事で終了を検知出来ない事があるのではという疑問が出てきました。  UNIXでは極力重複しない(再利用しない)という方針があるようですが、Windowsではそのような仕組みはありますでしょうか?  そのような仕組みがあれば、再利用による検知ミスは無視出来るレベルの問題かなと考えています。    また、プロセスIDでの監視以外で良い手段がありましたら、是非ご教授頂ければ幸いです。  宜しくお願いします(..  

  • windowsコマンドラインでcpuやプロセス監視

    nt系windowsでcpuやプロセス監視する際に GUIのタスクマネージャーがあると思います。 ただメモリが圧迫しているときやcpu負荷が 高いときはこのGUI自体が起動しないことも 多いです。 windowsコマンドラインでcpuやプロセス監視 できるものを探しています。linuxのtopやpsのように cpuやメモリを食っているプロセスなどが コマンドラインでわかると助かります。 対象OSはWin2000,XP,2003です。 よろしくお願いします。

  • CPU使用率が100%

    タスク マネジャー上でCPU使用率が100%となり困っています。 プロセスのSYSTEMが使用率95%以上となっております。 ウイルスセキュリティZEROのウイルス自動検知を無効にするとCPU使用率が5~10%になり、全く問題なくなります。 2台のパソコンにこのソフトを入れていますが、1台は問題なしに作動しています。 どう対処すれば良いでしょうか?

  • プロセスが使用するCPU使用率を下げる設定は?

    非常に負荷の高いプログラムを実行している時に、CPU使用率が100%になり、高負荷になることが気になっていまして、CPU使用率やマシン負荷が軽減できないか、方法などを模索しています。 少し処理時間が掛かっても良いので、負荷を減らし時間で解決できればと考えています。 niceコマンド、priocntlコマンド(root権限で実行)で、プロセスの優先度の設定をしつつ、プロセスの実行ができることは分かったのですが、topコマンドでCPU使用率のところを見ると、0% idle状態なのはnice/prioctl未使用時とくらべ、変化はなく、効果の具合がよく分かりませんでした。 また、priocntlはroot権限で実行しないといけないようで、一般ユーザでの実行を考えているので、これもNGかなと思っています。 なにか解決策はありませんでしょうか?ご存じの方がいらっしゃいましたら、教えて頂けませんか。 よろしくお願いします。

  • 指定プログラムのプロセスを監視・killするには?

    CGIが不正終了(もしくは無限ループ)して、CPUに負担をかけ続けることで悩んでいます。 topコマンドで負担をかけているプロセスを発見してkillすることは可能ですが、これを自動で実行するようなことはできないでしょうか。 cronを使って1分間に1度チェックし、3分以上同じプロセスが動いている場合にkillしたり、もしくは不具合の起こる特定のプログラム(hoge.cgi等)を監視してkillするということができるようにしたいのです。 自分で考えたのは「top -n 1」で出力して、3分間同じプロセスがCPUに負担をかけ続けている場合にkillできるようにphpなどでプログラミングすることでしたが、もっと簡単にできるような方法がありますでしょうか。

  • モーターの制御

    こんにちは 初めて利用させていただきます 私は謀機械メーカーの者です メーカーといっても下請機械加工です このたび自社内で使う穴あけ専用機を 製作する事になりました そこで加工時の主軸の過負荷を検知し切削送りを 停止したいのですがどのような方法が在るでしょうか? 一つにはメーターリレーを主軸モーターに取付ける方法が あると思いますが詳しい使い方がわかりません 何か簡単に過負荷を検知する方法があれば アドバイスお願いします 素人ですみませんがよろしくお願いします ps 負荷が軽すると自動的にリセットしたいのでサーマルリレー以外で考えています

  • cygwin(psコマンド)についての質問です

    cygwin(psコマンド)についての質問です ----- いつもお世話になっています。 cygwin/Linux勉強中です。 cygwinからwindows上のプロセスを見て、cpu負荷が高いものをkillしようと思っているのですが、以下のコマンドをたたいてもcpuの使用率が表示されません。 ps aux -W manコマンドで確認したところ、psのオプションにはauxについての説明がありませんでしたので使用できないのでしょうか? もしくは、オプションが間違っているのでしょうか? 低レベルな質問で申し訳ありませんが、ご教示の程、よろしくお願いいたします ------ cygwin version:1.7.5-1

  • CPU GPU温度が高くないのに電源が落ちる

    マウスコンピューターのゲーミングノートパソコンなのですがビープ音が断続的になります、温度異常かメモリーの不具合なのですが電源が自動で落ち画面にBIOSが表示されておらずファンが前回出回りますので温度異常と思い新品のグリースをCPUとgpuに塗りましたそして本来であれば良くないのですが電源が落ちるまでの間ヒートシンクに指を当てて温度が高くないかどうか確認もしたのですがやはり電源が落ちますwindows10も起動しておりシャットダウンを自動でしておりますので温度センサーが故障しているか温度によるシャットダウンまでのマージンが間違っているのどちらかだと思います、そこで質問なのですが温度センサーを無効にしたりシャットダウンまでのマージンを変更することはできないでしょうか?また危険は承知十分承知しておりますが自動シャットダウンを無効したいです、特に問題点がなく温度検知機能の以上と思われるためです

  • ThinkPad_s30のCPU能力が急に1/4に・・・

    保管していた古いThinkPad_s30をXPにして使おうとしたら、CPU能力の表示が151MHz(本来は600MHz)となってしまったのですが、考え得る原因をご存知の方いらっしゃいませんでしょうか。 Win2000のs30をXPにアップグレードすると、システムのプロパティ上のCPUのクロック数表示が151MHzと、元の25%になってしまいます。 レノボのサイトからXP対応の修正ファイル類はダウンロードして当てたのですが、一向に改善されません。 体感的にはCPU能力が75%も激減しているとは思えないレスポンスなのですが、フレッツ接続ツールの自動インストールでは「CPU能力不足で続行できない」と出てしまいます。 再リカバリ→OSアップグレードも数回繰り返してみましたが、これも効果ありませんでした。 対処法をご存知の方がいらっしゃいましたら、助けて下さいませんか。

  • ScanSnap Home(登録)と熱暴走

    Mac mini(2018年モデル,macOS 10.14.6)でScanSnap Home(1.4.1)を使っているのですが,アプリ?の様子がおかしく熱暴走してしまい困っています.具体的な現象は以下の通りです: アクティビティモニタ(Windowsで言う所のタスクマネージャでしょうか)を開くと,「ScanSnap Home(登録)」というプロセスが常に% CPUの値が99を超えており,これが原因でひどく発熱しています.実際,このプロセスを終了させるとCPU負荷が大きく下がり,Mac本体のファンも動かなくなります. 他のプロセス「ScanSnap Home」や「ScanSnap Home(スキャン)」は異常なCPU負荷をかけていません. CPU負荷が大きいのもそうですが,もう一つ困ったことがあって,Macを起動すると「ScanSnap Home(登録)」が自動で始動します.これはアプリではないので,いちいちアクティビティモニタを開いて終了しなければならず,とても面倒です.放置すると他の作業に支障が出るので放っておくわけにもいきません…. もしかしたらどのPCでも自動起動するのかもしれませんが,私の場合コイツが妙な暴走をするので困っています. 私はMacBook(2017年モデル,OS同)も持っていて,同じくScanSnap Home(1.4.1)を入れていますが,そちらでは「ScanSnap Home(登録)」の暴走は見られません.動いているのは確認できますが,わざわざ終了させなければならないほどCPU負荷をかけません. ググってみましたが,同じ症状の方が見当たらず困っています.アプリの再インストールは効果がなかったですし,富士通公式に問い合わせを送ってみましたが混雑していて返信に時間がかかる旨のメッセージをもらいました. そもそも「ScanSnap Home(登録)」ってなんのためのものなんでしょうか?名前からしてスキャナーを登録するときのためのものだと思うんですが,なぜこれが異常にCPU負荷をかけるのやら…. 何か解決のヒントをご存知の方がいらっしゃいましたら,ご回答いただきたく存じます. ※OKWAVEより補足:「「ScanSnap/fiシリーズ/HHKB」商品について」についての質問です。