説明

CPU監視装置およびCPU監視プログラム

【課題】動作異常が発生したと判断する基準を変更することができる。
【解決手段】暴走監視装置1は、複数のプログラムと書き換え可能なデータファイル6とデータを記憶する領域とを有する記憶部3と、プログラムを実行する実行処理部21およびプロセスのタスク量を測定する測定処理部22を有する制御部2と、時刻を得るタイマ部4とを備え、同時期に複数のプログラムを実行可能なマルチプロセス機能を有する装置であって、測定処理部22が測定したプロセス毎のタスク量を記憶部3に記憶させる暴走監視処理部12と、データファイル6に記録された暴走監視周期値61の周期で暴走監視処理部12を機能させる周期実行処理部11と、データファイル6に記録された暴走閾値62と、記憶部3に記憶されたタスク量81とその1周期前のタスク量82との差分値である判定タスク量とを比較し、動作異常を判定する暴走判定処理部13とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、CPU監視装置およびCPU監視プログラムに関し、特に、CPU(Central Processing Unit)を備えるコンピュータにおいて、アプリケーションプログラムを実行中のCPUのタスク量を監視するCPU監視装置およびCPU監視プログラムの技術に関する。
【背景技術】
【0002】
従来、オペレーティングシステム(OS:Operating System)上で動作するアプリケーションプログラムが無限ループに陥ったり、資源競合の結果、ハングアップしたりするといったプログラムの動作異常を検出する異常検出プログラムが知られている。
【0003】
OS内で管理されるプロセスディスクリプタと対応する動作情報(CPU上で動作するプロセスの切り替え)をOS側で収集し、OS上で動作する監視プロセスが、CPU上で動作するプロセスの切り替え(以下、「コンテキストスイッチ」と言う)回数の変化を取得する。この取得したコンテキストスイッチ回数の変化と異常種別(無限ループ、CPU待ち時間、I/O待ち時間)との関係を用いて監視対象アプリの動作異常を検出することが特許文献1に開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−277115号公報(段落〔0047〕〜〔0049〕,〔0090〕〜〔0101〕,図2,図9,図10,図11)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1における記載の発明の動作異常判定部が行う異常種別であるか否かの判定は、第N回目に検出した他発的コンテキストスイッチ回数が、直前の第N−1回目に検出した他発的コンテキストスイッチ回数と比較して変化していないときに、動作異常であると判定している(図9,図10,図11)。そのため、第N−1回目の検出時には、すでに動作異常が発生しており、動作異常が発生したと判定するタイミングが遅いという問題点がある。
また、従来の動作異常判定には、基準値を用いて動作異常が発生したと判断するものがあるが、その基準値は固定されているため、コンピュータが設置されたシステム環境に応じた動作異常判定を行うことができないという問題点がある。
【0006】
本発明は、以上のような問題を解決するためになされたものであり、動作異常(暴走)が発生したと判断する基準を変更することができるCPU監視装置およびCPU監視プログラムを提供することを課題とする。
【課題を解決するための手段】
【0007】
前記課題を解決するために、第1の発明は、複数のプログラムと書き換え可能なデータファイルとデータを記憶する領域とを有する記憶部と、前記プログラムを実行する実行処理部および前記プログラムを実行中の前記実行処理部が処理するプロセスのタスク量を測定する測定処理部を有する制御部と、時刻を得るタイマ部とを備え、同時期に複数の前記プログラムを実行可能なマルチプロセス機能を有するCPU監視装置において、前記測定処理部によって測定された前記プロセス毎のタスク量を前記記憶部に記憶させる暴走監視処理部と、前記タイマ部から時刻を取得し、前記データファイルに記録された暴走監視周期値の周期で前記暴走監視処理部を機能させる周期実行処理部と、前記データファイルに記録された暴走閾値と、前記記憶部に記憶されたタスク量とその1周期前のタスク量との差分値である判定タスク量とを比較し、暴走プロセスを判定する暴走判定処理部とを備える構成とした。
【0008】
また、第2の発明は、複数のプログラムと書き換え可能なデータファイルとを記憶する記憶部と、前記プログラムを実行する実行処理部および前記プログラムを実行中の前記実行処理部が処理するプロセスのタスク量を測定する測定処理部を有する制御部とを備え、同時期に複数の前記プログラムを実行可能なマルチプロセス機能を有するコンピュータを、前記測定処理部によって測定された前記プロセス毎のタスク量を取得する暴走監視処理手段、前記データファイルに記録された暴走閾値と、前記暴走監視処理手段が取得した判定タスク量とを比較し、暴走プロセスを判定する暴走判定処理手段として機能させることを特徴とするCPU監視プログラムとした。
【発明の効果】
【0009】
本発明は、以下に示す優れた効果を奏するものである。
第1の発明および第2の発明によれば、プロセス毎のタスク量を測定し、プロセスのタスク量と暴走閾値とを比較し、暴走閾値以上になったタスク量のプロセスが暴走していると判断される。
また、第1の発明および第2の発明によれば、データファイルの暴走閾値を書き換えることができるため、プロセスが暴走していると判断する基準を自由に変更することができる。
すなわち、コンピュータが設置されたシステム環境に必要なRASIS(Reliability Availability Serviceability Integrity Security)の評価に応じて暴走閾値を書き換えることができ、タスク量が暴走閾値以上になった時点で、すぐに、そのタスク量のプロセスが暴走していると判断することができる。
【図面の簡単な説明】
【0010】
【図1】本発明で用いられるコンピュータの内部構成を示す図である。
【図2】本発明に係る監視プログラムを、コンピュータ(暴走監視装置)が読み込むことによって、実現される機能ブロックを示す図である。
【図3】本発明に係る暴走監視装置の監視処理動作のフローチャートである。
【図4】図3に続く本発明に係る暴走監視装置の監視処理動作のフローチャートである。
【図5】本発明に係る暴走監視装置のタスク量測定処理動作のフローチャートである。
【図6】本発明に係る暴走監視装置の待機処理動作のフローチャートである。
【発明を実施するための形態】
【0011】
次に、本発明の実施形態について、適宜、図面を参照しながら詳細に説明する。
[暴走監視装置の構成]
図1に示すように、コンピュータ(暴走監視装置1:CPU監視装置)は、CPUで構成される制御部2と、ROM(Read Only Memory)3a、RAM(Random Access Memory)3bやHDD(Hard Disc Drive)3cから成る記憶部3と、時刻を得るタイマ部4と、データが入力される入力部5とを備える。暴走監視装置1を構成する各構成部は、各構成部間でデータの送受信が可能なように接続されている。
【0012】
記憶部3が備えるHDD3cは不揮発性の記憶部であり、データの書き換えが可能な(上書き保存可能な)データファイル6と、制御部2で実行される(複数の)プログラム7とを記憶する。
そして、制御部2により、必要に応じて、データファイル6に記録されたデータや、プログラム7は読み出されて、RAM3bに記憶される。
【0013】
入力部5は、データが入力される構成部である。例えば、ユーザ(管理者)により操作されたキーボードなどからデータが入力されたり、CD−ROM(Compact Disc ROM)やUSB(Universal Serial Bus)メモリなどの外部記憶媒体に記憶されたデータを読み取って入力されてもよい。
【0014】
[暴走監視装置にて監視プログラム実行時の構成]
図2は、本発明に係る監視プログラムがインストールされ、記憶部に記憶された暴走監視プログラムを、コンピュータ(暴走監視装置)が読み込むことによって、実現される機能ブロックを示す図である。
【0015】
[記憶部3]
記憶部3には、プログラム7として、監視プログラム10と、OS71と、複数のアプリケーションプログラム72(72a,72b,72c,・・・)とが記憶されている。
【0016】
OS71は、一般的なコンピュータシステム全体を管理するソフトウェアであり、コンピュータ(暴走監視装置1)の電源がONとなったときに、制御部2に読み込まれ、実行される。
本実施形態では、OS71がLinux(登録商標)である場合について説明する。
【0017】
監視プログラム10は、OS71上で動作するプログラムであり、図2に示すように、制御部2に読み込まれ、実行されて、周期実行処理部11、暴走監視処理部12、暴走判定処理部13、中断処理部14として実現される。
【0018】
アプリケーションプログラム72は、OS71上で動作するプログラムであり、図2に示すように、制御部2に読み込まれ、実行処理部21として実現される。
閾値設定プログラム73は、OS71上で動作するプログラムであり、図2に示すように、制御部2に読み込まれ、閾値記憶処理部23として実現される。
【0019】
[制御部2]
制御部(CPU)2は、例えば、CPUで構成され、プログラム7を読み込んで、プログラム7に基づいて、コンピュータ(暴走監視装置1)が備える各構成部を制御する制御部である。
制御部2は、図2に示すように、コンピュータ(暴走監視装置1)が起動すると、記憶部3からOS71を読み込んで、OS71の基本ソフトウェアの機能を実現する。
そして、アプリケーションプログラム72を読み込むことで実現される実行処理部21と、実行処理部21が実行したタスク量を測定する測定処理部22と、監視プログラム10を読み込むことで実現される周期実行処理部11と、暴走監視処理部12と、暴走判定処理部13と、中断処理部14と、閾値設定プログラム73を読み込むことで実現される閾値記憶処理部23とを備える。
【0020】
[測定処理部22]
測定処理部22は、OS71の機能を使って、実行処理部21がアプリケーションプログラム72の機能を実現するために処理したタスク量を測定する処理部である。例えば、OS71がLinux(登録商標)の場合、測定処理部22は、OS71が収集している『/proc/stat』ファイルの情報から、全タスク量を、jiffies数で取得することができるし、『/proc/<PID>/task/<tid>/stat』(<PID>はプロセスID、<tid>はスレッドID)のファイルの情報から、<tid>に該当するスレッドIDのスレッド測定タスク量を、jiffies数で取得することができる。
【0021】
[閾値記憶処理部23]
閾値記憶処理部23は、監視周期値61と暴走閾値62とを含むデータが入力部5から入力されたときに、OS71の機能により、閾値設定プログラム73を読み込むことで実現される処理部であり、取得した監視周期値61と暴走閾値62とを記憶部3のデータファイル6に書き込む(記憶させる)。このとき、データファイル6を新たに作成(更新)してもよいし、データファイル6に上書きで書き込んでもよい。このデータファイル6は、バイナリ形式やテキスト形式のコンフィグ(config)ファイルであることが望ましい。
【0022】
監視周期値61は、時間を示す値であり、タイマ部4から取得した時刻と比較できる値である。そして、この監視周期値61には、後記する周期実行処理部11の待機処理で、待機する時間が設定される。
例えば、監視周期値61には、設定可能範囲の0〜3600000ミリ秒を設定することができる。そして、監視周期値61に“0”が設定された場合には、監視を行わないこととすることもできる。
【0023】
暴走閾値62は、コンピュータ(暴走監視装置1)が設置されたシステム環境に必要なRASISの評価と、制御部2(実行処理部21)が処理できるプロセスのタスク量の限界値(限界タスク量)とを考慮した所定の値である。例えば、限界タスク量の80%程度の値である。
例えば、暴走閾値62はタスク量に基づくCPU使用率であり、暴走閾値62には、設定可能範囲の1〜100%を設定することができる。
【0024】
[CPU使用率の定義]
ここで、OS71がLinux(商標登録)の場合において、本実施形態では、CPU使用率はjiffies数を用いて算出する。
例えば、OS71が、『/proc/stat』ファイルの情報から、全タスク量を、jiffies数で取得する。次にOS71は、『/proc/<PID>/task』ファイルの情報から、スレッドID(thread ID)を取得する。そして、『/proc/<PID>/task/<tid>/stat』ファイル(<PID>は抽出PID、<tid>はスレッドID)の情報から、<tid>に該当するスレッドIDのスレッド測定タスク量を、jiffies数で取得する。
ここで、CPU使用率は、スレッド測定タスク量を、全タスク量で割り、百分率で表した値である。
【0025】
[周期実行処理部11]
周期実行処理部11は、待機処理を実行する処理部であり、後記する暴走監視処理部12または暴走判定処理部13からの処理開始タイミングを受けて、待機処理を実行する。
待機処理を実行する周期実行処理部11は、記憶部3のデータファイル6を読み込み、データファイル6に書き込まれた監視周期値61を取得する。そして、周期実行処理部11は、タイマ部4から時刻を取得して、データファイル6から監視周期値61を取得したとき(待機開始時)から監視周期値61の時間が経過するまで待機する。
【0026】
[暴走監視処理部12]
暴走監視処理部12は、測定処理部22に、実行処理部21が処理するプロセスのタスク量を測定させて、プロセス毎のタスク量を取得する処理部である。
監視プログラム10を読み込んだ制御部2により、暴走監視処理部12は実行され、暴走監視処理部12は、OS71の機能を使ってPID一覧データを取得し、タスク量測定処理を行う。ここでPIDとは、アプリケーションプログラム72を実行中の実行処理部21が処理するプロセスそれぞれに付けられた識別子である。そして、例えば、OS71がLinux(登録商標)の場合、暴走監視処理部12は、『ps aux』のコマンドを実行させることで、実行処理部21が処理するすべてのプロセスのPIDを取得することができる(PID一覧データの取得)。
【0027】
タスク量測定処理を実現する暴走監視処理部12は、PID一覧データに含まれるPIDそれぞれに対応するプロセスのタスク量(測定タスク量)を測定する。そして、暴走監視処理部12は、すべてのPIDと、それぞれのPIDの測定タスク量とを対応付けた測定タスク量一覧を生成し、記憶部3に記憶させる。
暴走監視処理部12は、このタスク量測定処理を、周期実行処理部11の待機処理後にもう一度行って、2つの測定タスク量一覧(新測定タスク量一覧81と前測定タスク量一覧82)を記憶部3に記憶させる。
【0028】
[暴走判定処理部13]
暴走判定処理部13は、データファイル6に記録された暴走閾値62と、暴走監視処理部12が取得した測定タスク量(新測定タスク量一覧81と前測定タスク量一覧82)とを比較し、暴走プロセスを判定する処理部である。
暴走監視処理部12からの処理開始タイミングを受けて、暴走判定処理部13は、データファイル6から暴走閾値62を取得する。
次に、暴走判定処理部13は、新測定タスク量一覧81から、PIDと、そのPIDに対応する新測定タスク量とを抽出し、さらに、前測定タスク量一覧82から、そのPIDに対応する前測定タスク量を抽出する。
【0029】
そして、暴走判定処理部13は新測定タスク量と前測定タスク量とから、PIDのプロセスにおけるタスク量を算出する。
ここで、CPU使用率をタスク量とする場合、CPU使用率は、新測定タスク量一覧81の測定タスク量から前測定タスク量一覧82の測定タスク量を差分した値を、新測定タスク量一覧81の全タスク量から前測定タスク量一覧82の全タスク量を差分した値で割ることで得られる。
【0030】
そして、暴走判定処理部13は、算出したタスク量(CPU使用率)と、データファイル6から取得した暴走閾値62とを比較する。この比較処理を、新測定タスク量一覧81からすべてのPIDを抽出するまで行い、すべてのPIDを抽出したとき、処理(暴走判定処理)を終了する。
ここで、暴走判定処理における比較処理にて、暴走閾値≦CPU使用率となったとき、暴走判定処理部13は、抽出したPIDのプロセスが暴走していると判定(暴走プロセスを判定)し、中断処理部14に処理を移す。
【0031】
一方、前測定タスク量一覧82が記憶部3に存在しない場合または暴走判定処理が終了したときには、暴走判定処理部13は、新測定タスク量一覧81を複製(コピー)して、複製した一覧を前測定タスク量一覧82として記憶部3に保存し、複製元の新測定タスク量一覧81を記憶部3から削除する。そして、暴走判定処理部13は、周期実行処理部11に処理を移す。
【0032】
本実施形態では、タスク量をCPU使用率としたが、単に、新測定タスク量一覧81の測定タスク量から前測定タスク量一覧82の測定タスク量を差分した値であっても構わない。そして、その差分値と比較可能な所定の値の暴走閾値62であればよい。
【0033】
[中断処理部14]
中断処理部14は、OS71の機能を使って、暴走監視装置1を再起動させる処理部である。
中断処理部14は、暴走判定処理部13からの処理開始タイミングを受けて、暴走監視装置1を再起動させる。
【0034】
[暴走監視装置の監視処理動作]
次に、図3および図4を参照して、暴走監視装置1の監視処理動作について説明する(適宜、図2を参照)。
以下、本実施形態では、OS71がLinux(登録商標)である場合について説明する。
まず、制御部2は、記憶部3から監視プログラム10を読み込む(ステップS101)。これにより、制御部2が監視プログラム10を実行することにより、制御部2は、周期実行処理部11、暴走監視処理部12、暴走判定処理部13、中断処理部14として機能する。
【0035】
そして、暴走監視処理部12は、OS71の機能を使ってPID一覧データを取得する(ステップS102)。
次に、暴走監視処理部12は、タスク量測定処理(図5)を実現する(ステップS103)。
当該タスク量測定処理を実現することで、暴走監視処理部12は、PID一覧データに含まれるPIDそれぞれに対応するプロセスのタスク量(測定タスク量)を測定する。そして、暴走監視処理部12は、すべてのPIDと、それぞれのPIDの測定タスク量とを対応付けた新測定タスク量一覧81を生成し、記憶部3に記憶させる。
【0036】
タスク量測定処理終了後、暴走監視処理部12は、記憶部3に前測定タスク量一覧82が存在するか否かを判定する(ステップS104)。
当該判定は、暴走監視処理部12が、前測定タスク量一覧82を記憶部3から取得できたか否かで判定することとする。
【0037】
記憶部3から前測定タスク量一覧82を取得できなかった場合(ステップS104,No)、暴走監視処理部12は、新測定タスク量一覧81を複製(コピー)して、複製した一覧を前測定タスク量一覧82として記憶部3に保存し、複製元の新測定タスク量一覧81を記憶部3から削除する(ステップS105)。そして、暴走監視処理部12は、周期実行処理部11に処理を移す。
そして、周期実行処理部11は待機処理(図6)を実行する(ステップS106)。待機後、周期実行処理部11は暴走監視処理部12に処理を移し、暴走監視処理部12は、ステップS102の処理を再び行う。
【0038】
一方、記憶部3から前測定タスク量一覧82を取得できた場合(ステップS104,Yes)、暴走判定処理部13に処理を移す。このとき、記憶部3には、新測定タスク量一覧81と前測定タスク量一覧82とが記憶されている。
まず、暴走判定処理部13は、データファイル6から暴走閾値62を取得する(ステップS107)。
【0039】
暴走判定処理部13は、新測定タスク量一覧81から、PIDと、そのPIDに対応する新測定タスク量とを抽出し、さらに、前測定タスク量一覧82から、そのPIDに対応する前測定タスク量を抽出する(ステップS108)。
そして、暴走判定処理部13は新測定タスク量と前測定タスク量とから、PIDのプロセスにおけるCPU使用率(タスク量)を算出する(ステップS109)。
【0040】
暴走判定処理部13は、算出したCPU使用率と、データファイル6から取得した暴走閾値62とを比較する(暴走閾値≦CPU使用率)(ステップS110)。
【0041】
暴走閾値>CPU使用率である場合(ステップS110,No)、暴走判定処理部13は、新測定タスク量一覧81にて他に未抽出のPIDがあるか否かを判定する(ステップS111)。
すべてのPIDを抽出している(未抽出のPIDがない)場合(ステップS111,No)、暴走判定処理部13は、新測定タスク量一覧81を複製(コピー)して、複製した一覧を前測定タスク量一覧82として記憶部3に保存し、複製元の新測定タスク量一覧81を記憶部3から削除する(ステップS112)。そして、暴走判定処理部13は、周期実行処理部11に処理を移す。
そして、周期実行処理部11は待機処理(図6)を実行する(ステップS113)。待機後、周期実行処理部11は暴走監視処理部12に処理を移す。これにより、ステップS102に戻る。
【0042】
一方、ステップS111にて、未抽出のPIDがある場合(ステップS111,Yes)、暴走判定処理部13は、ステップS108の処理に戻り、新測定タスク量一覧81から、未取得のPIDと、その未取得のPIDに対応する新測定タスク量とを抽出し、さらに、前測定タスク量一覧82から、その未取得のPIDに対応する前測定タスク量を抽出する。
【0043】
一方、ステップS110にて、暴走閾値≦CPU使用率である場合(ステップS110,Yes)、暴走判定処理部13は、中断処理部14に処理を移す。
このとき、暴走判定処理部13は、PIDのプロセスが暴走していると判定する(暴走プロセスであると判定する)。
【0044】
そして、中断処理部14は、OS71の機能を使って、暴走監視装置1を再起動させる(ステップS114)。そして、暴走監視装置1は、監視処理動作を終了する。
【0045】
[暴走監視装置のタスク量測定処理動作]
図5を参照して、図3のステップS103における、暴走監視装置1のタスク量測定処理動作について説明する(適宜、図2ないし図4を参照)。
ここで、暴走監視処理部12は、測定処理部22(OS71の機能)を使って、タスク量測定処理を実現する。
【0046】
まず、暴走監視処理部12は、ステップS102(図3)の処理で取得したPID一覧データから、PIDを一つ抽出する(ステップS201)。
そして、暴走監視処理部12は、測定処理部22に、アプリケーションプログラム72を実行中の実行処理部21が処理するすべてのプロセスのタスク量(全タスク量)を測定させ、測定処理部22から全タスク量を取得する(ステップS202)。
この全タスク量を測定する手段は、例えば、OS71がLinux(商標登録)の場合、測定処理部22が『/proc/stat』ファイルの情報を取得することで、全タスク量を、jiffies数で取得することができる。
【0047】
次に、暴走監視処理部12は、測定処理部22に、抽出したPID(抽出PID)のプロセスにおける、スレッド毎のタスク量(スレッド測定タスク量)を測定させ、測定処理部22からスレッド測定タスク量を取得する(ステップS203)。そして、測定したすべてのスレッドのスレッド測定タスク量を合計して、抽出PIDの測定タスク量を算出する(ステップS204)。
この各測定タスク量を測定する手段は、例えば、OS71がLinux(商標登録)の場合、『/proc/<PID>/task』情報を取得することで、スレッドID(thread ID)を取得することができる。そして、『/proc/<PID>/task/<tid>/stat』ファイル(<PID>は抽出PID、<tid>はスレッドID)の情報を取得する。<tid>に該当するスレッドIDのスレッド測定タスク量を、jiffies数で取得することができる。
【0048】
次に、暴走監視処理部12は、取得した全タスク量と、抽出PIDの測定タスク量とを、抽出PIDで対応付けて、記憶部3の新測定タスク量一覧81に記憶させる(ステップS205)。
【0049】
そして、暴走監視処理部12は、他に未抽出のPIDがあるか否かを判定する(ステップS206)。
未抽出のPIDがある場合(ステップS206,Yes)、暴走監視処理部12は、ステップS201の処理を実行し、PID一覧データから未取得のPIDを抽出する。
【0050】
一方、未抽出のPIDがない場合(ステップS206,No)、暴走監視処理部12は、タスク量測定処理を終了する。
以上のタスク量測定処理により、記憶部3には、PIDと測定タスク量とが対応付けられた新測定タスク量一覧81が記憶される。
【0051】
[暴走監視装置の待機処理動作]
図6を参照して、図3のステップS106および図4のステップS113における、暴走監視装置1の待機処理動作について説明する(適宜、図2ないし図4を参照)。
周期実行処理部11は、記憶部3からデータファイル6を読み込み、監視周期値61を取得し(ステップS301)、この時を待機開始時とする。
そして、周期実行処理部11は、タイマ部4から現在の時刻を取得し(ステップS302)、ステップS301処理後の待機開始時からの経過時間が、監視周期値61以上となったか否かを判定する(待機開始時からの経過時間≧監視周期値?)(ステップS303)
経過時間<監視周期値61の場合(ステップS303,No)、周期実行処理部11は、再びステップS302の処理を行う。
一方、経過時間≧監視周期値61の場合(ステップS303,Yes)、周期実行処理部11は、暴走監視処理部12に処理を移し、待機処理動作を終了する。
【0052】
以上の動作によって、本実施形態の暴走監視装置1は、プロセス毎のタスク量を測定し(ステップS103)、プロセスのタスク量(CPU使用率)と暴走閾値62とを比較し(ステップS110)、暴走閾値62以上になったタスク量のプロセスが暴走していると判断する。ここで、本実施形態の暴走監視装置1は、データファイル6の暴走閾値62を、入力部5を介して書き換えることができるため、当該装置が設置されたシステム環境に応じて、プロセスが暴走していると判断する基準を変更することができる。
【0053】
すなわち、データファイル6を書き換えて、暴走閾値62を変更することで、コンピュータ(暴走監視装置1)が設置されたシステム環境に必要なRASISの評価に応じてプロセスが暴走していると判断する基準を変更することができる。
【0054】
また、RAM3bやHDD3cで構成される記憶部3に対して、データの取得や記録ができないことなどの記憶部3の不具合によるプロセスの暴走についても、検出することができる。
【0055】
以上、本発明の実施形態について説明したが、本発明は前記した実施形態に限定されず、適宜変更して実施することが可能である。
例えば、本実施形態では、OS71がLinux(登録商標)である場合について説明したが、その他のUNIX(登録商標)系のOSであってもよいし、Microsoft社が提供するWindows(登録商標)や、Apple社が提供するMacOS(登録商標)などでもよい。そして、暴走監視装置1を含むシステム環境に適合するように適宜変更してもよい。
【0056】
[複数のCPU]
また、例えば、暴走監視装置1には、制御部2であるCPUが複数備えられていてもよい。
この場合、複数のCPUのうちの1つのCPUで実現される暴走監視処理部12は、PID一覧データを取得する(ステップS102,図3)前に、暴走監視装置1が備えるCPUの数を取得してから、ステップS102以降の処理を、それぞれのCPUが実行すればよい。これにより、複数のCPUが備えられていても本実施形態を実施することができる。
ここで、暴走監視装置1が備えるCPUの数を取得する手段は、例えば、OS71がLinux(商標登録)の場合、『/proc/cpuinfo』のコマンドを実行させ、『processor:』で表示されるCPUの識別番号から、制御部2の数を取得することができる。
このとき、データファイル6に記録される暴走閾値62には、RASISの評価と限界タスク量とを考慮した限界のCPU使用率(最大100%)を、CPUの数で割った値が記録されている。例えば、4CPUの場合、設定可能範囲は1〜25%である。ここで、限界のCPU使用率が80%である場合、データファイル6には、暴走閾値62として“20”が記録されている。
【符号の説明】
【0057】
1 暴走監視装置(CPU監視装置)
2 制御部(CPU)
3 記憶部
4 タイマ部
5 入力部
6 データファイル
7 プログラム
10 監視プログラム
11 周期実行処理部
12 暴走監視処理部
13 暴走判定処理部
14 中断処理部
21 実行処理部
22 測定処理部
23 閾値記憶処理部
61 監視周期値
62 暴走閾値
72(72a,72b,72c,・・・) アプリケーションプログラム
73 閾値設定プログラム
81 新測定タスク量一覧
82 前測定タスク量一覧

【特許請求の範囲】
【請求項1】
複数のプログラムと書き換え可能なデータファイルとデータを記憶する領域とを有する記憶部と、前記プログラムを実行する実行処理部および前記プログラムを実行中の前記実行処理部が処理するプロセスのタスク量を測定する測定処理部を有する制御部と、時刻を得るタイマ部とを備え、同時期に複数の前記プログラムを実行可能なマルチプロセス機能を有するCPU監視装置であって、
前記測定処理部によって測定された前記プロセス毎のタスク量を前記記憶部に記憶させる暴走監視処理部と、
前記タイマ部から時刻を取得し、前記データファイルに記録された暴走監視周期値の周期で前記暴走監視処理部を機能させる周期実行処理部と、
前記データファイルに記録された暴走閾値と、前記記憶部に記憶されたタスク量とその1周期前のタスク量との差分値である判定タスク量とを比較し、暴走プロセスを判定する暴走判定処理部と、
を備えることを特徴とするCPU監視装置。
【請求項2】
複数のプログラムと書き換え可能なデータファイルとを記憶する記憶部と、前記プログラムを実行する実行処理部および前記プログラムを実行中の前記実行処理部が処理するプロセスのタスク量を測定する測定処理部とを有する制御部とを備え、同時期に複数の前記プログラムを実行可能なマルチプロセス機能を有するCPU監視装置であって、
前記測定処理部によって測定された前記プロセス毎のタスク量を取得する暴走監視処理部と、
前記データファイルに記録された暴走閾値と、前記暴走監視処理部が取得した判定タスク量とを比較し、暴走プロセスを判定する暴走判定処理部と、
を備えることを特徴とするCPU監視装置。
【請求項3】
前記暴走判定処理部にて前記判定タスク量が前記暴走閾値を超えたときに、当該CPU監視装置を再起動させる中断処理部をさらに備えることを特徴とする請求項1または請求項2に記載されたCPU監視装置。
【請求項4】
複数のプログラムと書き換え可能なデータファイルとを記憶する記憶部と、前記プログラムを実行する実行処理部および前記プログラムを実行中の前記実行処理部が処理するプロセスのタスク量を測定する測定処理部を有する制御部とを備え、同時期に複数の前記プログラムを実行可能なマルチプロセス機能を有するコンピュータを、
前記測定処理部によって測定された前記プロセス毎のタスク量を取得する暴走監視処理手段、
前記データファイルに記録された暴走閾値と、前記暴走監視処理手段が取得した判定タスク量とを比較し、暴走プロセスを判定する暴走判定処理手段、
として機能させることを特徴とするCPU監視プログラム。
【請求項5】
前記データファイルには暴走監視周期値が記録され、さらに、時刻を得るタイマ部を備えた前記コンピュータを、
前記タイマ部から時刻を取得し、前記暴走監視周期値の周期で前記暴走監視処理手段を機能させることを特徴とする請求項4に記載されたCPU監視プログラム。
【請求項6】
前記暴走判定処理手段にて前記判定タスク量が前記暴走閾値を超えたときに、前記コンピュータを再起動させる中断処理手段
として機能させることを特徴とする請求項4または請求項5に記載されたCPU監視プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−141786(P2011−141786A)
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願番号】特願2010−2603(P2010−2603)
【出願日】平成22年1月8日(2010.1.8)
【出願人】(308033722)株式会社OKIネットワークス (165)
【出願人】(591051645)株式会社OKIソフトウェア (173)
【Fターム(参考)】