説明

プロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラム

【課題】ミッションクリティカル(業務の遂行に必要不可欠)なプロセスが障害を起こした場合に、その停止による損失を少なくすることを可能とするプロセス再起動装置等を提供する。
【解決手段】プロセス再起動装置10は、各々のプロセスの実行中のリソース使用量を集計してこれを統計情報31として保存するリソース記録部21と、各プロセスの動作にプロセス障害が発生したか否かを検出するプロセス監視部22と、プロセス障害が発生した場合に、統計情報に基づいてプロセス障害が発生した当該プロセスを再起動してもリソース不足が発生しないか否かについて判定するリソース不足判定部23と、リソース不足が発生し得ないと判定された場合に当該プロセスを再起動するプロセス再起動部24とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はプロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラムに関し、特にコンピュータまたはコンピュータクラスタで動作するプロセスに障害が発生した場合に、そのプロセスの再起動の失敗を防止するプロセス再起動装置等に関する。
【背景技術】
【0002】
コンピュータネットワークに関する技術の発達に伴い、多くのコンピュータを相互に接続して、それらをあたかも1台の巨大なコンピュータであるかのように利用することを可能とする技術を、コンピュータのクラスタリングという。また、相互に接続された個々のコンピュータをノード、多数のノードが相互に接続されて構成されるシステムをコンピュータクラスタ(以後、単にクラスタという)という。
【0003】
クラスタでは、1台のコンピュータでは得られない高い処理能力を得ることができるだけでなく、1つのクラスタの中で多数の処理を同時に動作させることが可能であり、一つのノードで動作に障害が発生したとしてもその処理を他のノードに引き継いで継続させることができるので、高い可用性(アベイラビリティ)を得ることができる。
【0004】
特に、ミッションクリティカル(業務の遂行に必要不可欠)な処理をクラスタ上で行う場合には、その処理を行っているノード上のプロセス(動作単位)を監視する手段をそのクラスタが備え、該プロセスに障害が発生した場合にはそのプロセスを再起動し、再起動してもそのプロセスの動作を復旧できない場合には他のノードに動作を引き継ぐということが行われている。
【0005】
これに関連して、次のような各々の技術文献がある。その中でも特許文献1には、異常終了した時の処理をプロセスごと・エラー種類ごとに割り振ることが可能であるというプロセス監視システムについて記載されている。特許文献2には、障害が発生したプロセスを停止し、そのプロセスが使用していた回線グループのリソースを解放してからそのプロセスを再起動するというプロセス管理システムについて記載されている。
【0006】
特許文献3には、冗長プロセスが必要か否かについて判断し、不要であれば消去するという冗長リソース管理装置について記載されている。特許文献4には、リソースの利用量や利用状態に応じてジョブの実行数や実行状態を制御するというジョブ実行制御システムについて記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2000−311099号公報
【特許文献2】特開2007−058679号公報
【特許文献3】特開2007−122434号公報
【特許文献4】特開2008−204243号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
ミッションクリティカルなプロセスの中には、起動される時に多くのコンピュータリソース(計算機資源、例えばメモリ使用量、ファイルオープン数など。以後単にリソースという)を消費するものがある。そのため、そのようなプロセスに障害が発生した場合、そのプロセスを再起動しても、リソース不足が発生するために再起動が失敗し、動作を復旧できない場合が多くある。
【0009】
特に昨今は、仮想化技術を利用して、仮想コンピュータ上でそれらのプロセスが実行されることも多くなってきている。そのため、リソースの管理が複雑化して、リソース不足に伴うプロセスの停止が発生しやすくなり、またその動作の復旧にも時間がかかるようになっている。ミッションクリティカルなプロセスの停止は、そのまま業務の停止となるので、停止して復旧に時間がかかることがあってはならない。
【0010】
障害が発生したプロセスの再起動が失敗した場合は、再起動に成功した場合や、そのまま他のノードに動作を引き継いだ場合に比べて動作の復旧に時間がかかるので、その停止による損失も大きくなる。そのため、障害が発生したプロセスを再起動する前に、その再起動が成功するか否かを予測することができれば望ましい。しかしながら、障害が発生したプロセスを再起動する前に、その再起動が成功するか否かを予測することを可能とする技術は、前述の特許文献1〜4には記載されていない。
【0011】
本発明の目的は、ミッションクリティカルなプロセスが障害を起こした場合に、その停止による損失を少なくすることを可能とするプロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラムを提供することにある。
【課題を解決するための手段】
【0012】
上記目的を達成するため、本発明に係るプロセス再起動装置は、単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置であって、各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存するリソース記録部と、各プロセスの動作に障害が発生したか否かを検出するプロセス監視部と、障害が発生したプロセスがある場合に、統計情報に基づいて障害が発生した当該プロセスを再起動してもコンピュータリソースに不足が発生し得るか否かについて判定するリソース不足判定部と、コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動させるプロセス再起動部とを有することを特徴とする。
【0013】
上記目的を達成するため、本発明に係るプロセス再起動方法は、単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量をリソース記録部が集計してこれを統計情報として保存し、各プロセスの動作に障害が発生したか否かをプロセス監視部が検出し、障害が発生したプロセスがある場合に、統計情報に基づいて障害が発生した当該プロセスを再起動してもコンピュータリソースに不足が発生し得るか否かについてリソース不足判定部が判定し、コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスをプロセス再起動部が再起動することを特徴とする。
【0014】
上記目的を達成するため、本発明に係るプロセス再起動プログラムは、単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、プロセス再起動装置が有するコンピュータに、各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存する手順、各プロセスの動作に障害が発生したか否かを検出する手順、障害が発生したプロセスがある場合に、統計情報に基づいて障害が発生した当該プロセスを再起動してもコンピュータリソースに不足が発生し得るか否かについて判定する手順、およびコンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動する手順を実行させることを特徴とする。
【発明の効果】
【0015】
本発明は、上記したように統計情報に基づいて当該プロセスを再起動してもリソース不足が発生しないか否かを判定してからそのプロセスを再起動する構成としたので、再起動に失敗する可能性を低くすることができる。これによって、ミッションクリティカルなプロセスが障害を起こした場合に、その停止による損失を少なくできるという、優れた特徴を持つプロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラムを提供することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の第1の実施形態に係るプロセス再起動装置の構成について示す説明図である。
【図2】図1に示したプロセス再起動装置を含むクラスタについて示す説明図である。
【図3】図1〜2に示したプロセス再起動装置とノードの各部による処理をより観念的に示す説明図である。
【図4】図1に示したプロセス再起動装置の動作について示すフローチャートである。
【図5】図1および図3に示した統計情報の内容の一例について示す説明図である。
【図6】図4のステップS203として示した、リソース不足判定部が監視対象プロセスを再起動した場合にリソース不足が発生し得るか否かについての判定についてより詳しく示す説明図である。
【図7】本発明の第2の実施形態に係るプロセス再起動装置の構成について示す説明図である。
【図8】図7に示したプロセス再起動装置の各部による処理をより観念的に示す説明図である。
【図9】図7〜8に示したプロセス再起動装置の動作について示すフローチャートである。
【図10】図7〜8に示した削除可能プロセス一覧の内容について示す説明図である。
【図11】図9のステップS401として示した、リソース不足判定部が行う判断の詳細について示す説明図である。
【発明を実施するための形態】
【0017】
(第1の実施形態)
以下、本発明の第1の実施形態の構成について添付図1〜3に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るプロセス再起動装置10は、単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置である。このプロセス再起動装置10は、各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報31として保存するリソース記録部21と、各プロセスの動作に障害が発生したか否かを検出するプロセス監視部22と、障害が発生したプロセスがある場合に、統計情報に基づいて障害が発生した当該プロセスを再起動してもコンピュータリソースに不足が発生し得るか否かについて判定するリソース不足判定部23と、コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動させるプロセス再起動部24とを有する。
【0018】
このリソース不足判定部23は、当該プロセス単独のリソース使用量の最大値と、当該プロセスと同一のコンピュータで実行される全てのプロセスのプロセス障害の発生時点でのリソース使用量との合計値が与えられた閾値を超える場合にコンピュータリソースに不足が発生し得ると判定し、リソース使用量の全項目について与えられた閾値を超えない場合にコンピュータリソースに不足が発生し得ないと判定する。ここでいうリソース使用量は、少なくともメモリ使用量およびファイルオープン数のうちいずれか1つ以上を項目として含む。
【0019】
そして、プロセス再起動装置10は、コンピュータリソースに不足が発生し得ると判断された場合に当該プロセスを実行するコンピュータを切り替えるよう指示するノード切替指示部25を有する。
【0020】
この構成を備えることにより、プロセス再起動装置10は、ミッションクリティカルなプロセスが障害を起こした場合に、その再起動に失敗する可能性を低くすることが可能となる。
以下、これをより詳細に説明する。
【0021】
図1は、本発明の第1の実施形態に係るプロセス再起動装置10の構成について示す説明図である。プロセス再起動装置10は、一般的なコンピュータとしての構成を備えている。即ち、プロセス再起動装置10は、コンピュータプログラムとして記述された各種処理を実行する主体である主演算制御手段(CPU: Central Processing Unit)11と、データを記憶する記憶手段12と、ネットワーク110に接続して他のコンピュータとの間でデータ通信を行う通信手段13とを備える。
【0022】
主演算制御手段11は、プロセス管理プログラムが動作することにより、後述するリソース記録部21、プロセス監視部22、リソース不足判定部23、プロセス再起動部24、およびノード切替指示部25の各々として機能する。また、記憶手段12には、統計情報31、システムログ32の各々が、主演算制御手段11の動作に応じて記憶される。これらについても後述する。
【0023】
図2は、図1に示したプロセス再起動装置10を含むクラスタ1について示す説明図である。クラスタ1は、プロセス再起動装置10と、各々のプロセスを実行する複数のコンピュータであるノード100a、100b、100c…が、ネットワーク110を介して相互に接続されて構成される。ノード100a、100b、100c…の台数は任意である。また、プロセス再起動装置10と各々のノード100a、100b、100c…を、仮想コンピュータによって構成することもできる。
【0024】
ノード100a、100b、100c…は各々、同一の構成を有するので、これらを総称してノード100といい、図2にはその中の1台についてのみ詳しい構成を示している。ノード100は、主演算制御手段101で管理プログラムが動作することにより、リソース監視部101a、ノード切替部101b、およびプロセス実行部101cの各々として機能する。また、ネットワーク110に接続して他のコンピュータとの間でデータ通信を行う通信手段102も備える。
【0025】
図3は、図1〜2に示したプロセス再起動装置10とノード100の各部による処理をより観念的に示す説明図である。各々のノード100では、プロセス実行部101cが各々のプロセスを実行し、リソース監視部101aが実行中の各プロセスのリソース使用量を取得し、プロセス再起動装置10に送信している。プロセス再起動装置10では、リソース記録部21が各々のノード100からリソース使用量についての情報を受信して集計し、統計情報31として保存する。
【0026】
その一方で、プロセス監視部22は、クラスタ1内で監視対象として予め指定されたプロセスが正常に動作しているか否かについて監視し、該プロセスが正常に動作していない場合、即ちプロセス障害(プロセスダウン)が発生した場合には、その旨をリソース不足判定部23に通知する。
【0027】
リソース不足判定部23は、プロセス障害が発生した場合に、統計情報31を参照して、そこからダウンした監視対象プロセスが使用していたリソースのピーク値と、そのプロセスを実行していたノード全体のリソース使用量とを読み出す。そして、リソース不足判定部23は、その監視対象プロセスを再起動した場合にリソース不足が発生しないか否かについて判定する。その判定基準については後述する。
【0028】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ないと判断された場合には、リソース不足判定部23はプロセス再起動部24に該プロセスの再起動を指示し、プロセス再起動部24は該プロセスを実行していたノード100のプロセス実行部101cに、該プロセスを再起動させる。
【0029】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ると判断された場合には、リソース不足判定部23はノード切替指示部25に、該プロセスを元のノードとは異なるノード100で実行する、即ち該プロセスを実行するノードを切り替えるよう指示する。ノード切替指示部25は、別のノード100のノード切替部101bを呼び出して、該プロセスの実行を引き継がせる。またこれに併せて、リソース不足判定部23は、その監視対象プロセスを再起動した場合にリソース不足が発生し得ると判断した旨をシステムログ32に記録することによってシステム管理者に通知する。
【0030】
図4は、図1に示したプロセス再起動装置10の動作について示すフローチャートである。プロセス監視部22は、クラスタ1内で監視対象プロセスが正常に動作しているか否かについて判断し(ステップS201)、該プロセスにてプロセス障害(プロセスダウン)が発生した場合には(ステップS201がイエス)、その旨をリソース不足判定部23に通知する。
【0031】
リソース不足判定部23は、プロセス障害が発生した場合に、統計情報31を参照して、そこから現在のクラスタ1全体でのリソース使用量と、ダウンした監視対象プロセスのリソース使用量のピーク値を読み出す(ステップS202)。そして、リソース不足判定部23は、その監視対象プロセスを再起動した場合にリソース不足が発生し得るか否かについて判定する(ステップS203)。
【0032】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ないと判断された場合(ステップS203がノー)には、リソース不足判定部23はプロセス再起動部24に該プロセスの再起動を指示する(ステップS204)。以後、ステップS201からの処理を繰り返す。
【0033】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ると判断された場合(ステップS203がイエス)には、リソース不足判定部23はノード切替指示部25に、該プロセスを実行するノードを切り替えるよう指示する(ステップS205)。そして、リソース不足判定部23は、リソース不足が発生し得ると判断した旨をシステムログ32に記録してシステム管理者に通知する(ステップS206)。以後、ステップS201からの処理を繰り返す。
【0034】
図5は、図1および図3に示した統計情報31の内容の一例について示す説明図である。統計情報31は、リソース記録部21が受信して記録した、各々のプロセスごとのリソース使用量とクラスタ1全体でのリソース使用量である。
【0035】
統計情報31は、各々のプロセスの起動された日時を記録する起動日時ファイル31aと、各々のプロセスが主記憶装置(メインメモリ)を使用した容量を一定周期ごとに記録するメモリ使用量記録ファイル31bと、各々のプロセスが実行中に開いたファイルの数(ファイルオープン数)を一定周期ごとに記録するファイルオープン数記録ファイル31cを少なくとも含む。これ以外のリソース使用量の項目についての記録も、もちろんあってもよい。
【0036】
図6は、図4のステップS203として示した、リソース不足判定部23が監視対象プロセスを再起動した場合にリソース不足が発生し得るか否かについての判定についてより詳しく示す説明図である。図6は、横軸に時刻を、縦軸には図5に示したファイルオープン数記録ファイル31cに記録されたファイルオープン数の中で、特定のプロセス(以後プロセスAという)単独でのファイルオープン数と、プロセスAを実行しているノード全体での合計ファイルオープン数をプロットしたグラフである。図6では、プロセスA単独とノード全体のファイルオープン数を、各々実線と破線で示している。
【0037】
プロセスAでプロセス障害(プロセスダウン)が発生した場合、リソース不足判定部23は図4・ステップS202の動作で、起動日時ファイル31aに示されるプロセスAの起動日時以後のプロセスAのファイルオープン数の推移を示す実線グラフの中から、ファイルオープン数の最大値(これをP1とする)を検出する。また、ノード全体のファイルオープン数を示す破線グラフの、プロセスダウン発生時点での値(これをP2とする)を取得する。
【0038】
そしてリソース不足判定部23は図4・ステップS203の判断で、P1+P2、即ちプロセスAのファイルオープン数の最大値+プロセスダウン発生時点でのノード全体のファイルオープン数の合計が、予め定められた閾値を越えた場合に、プロセスAを再起動した場合にリソース不足が発生し得る(ステップS203がイエス)と判断する。この場合は、前述のようにプロセスAを実行するノードを切り替える(ステップS205〜206)。図6の例では、ファイルオープン数500を閾値とし、それに対してP1が約200、P2が約400である例を示している。P1+P2は明らかに閾値の500を越えているので、リソース不足が発生し得ると判断される。
【0039】
リソース不足判定部23は、ファイルオープン数だけでなく、メモリ使用量、および統計情報31に記録されたその他のリソース使用量についてもこれと同様の判断を行い、プロセスAのリソース使用量の全項目についてリソース不足が発生し得ると判断されない場合に、リソース不足が発生し得ない(ステップS203がノー)と判断する。この場合は、前述のようにプロセスAをそのまま再起動することになる(ステップS204)。
【0040】
(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係るプロセス再起動方法は、コンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置10にあって、各プロセスの実行中に使用されるリソース使用量をリソース記録部21が集計してこれを統計情報として保存し、各プロセスの動作にプロセス障害が発生したか否かをプロセス監視部22が検出し(図4・ステップS201)、プロセス障害が発生した場合に、統計情報に基づいてプロセス障害が発生した当該プロセスを再起動してもリソース不足が発生しないか否かについてリソース不足判定部23が判定し(図4・ステップS202〜203)、リソース不足が発生し得ないと判定された場合に当該プロセスをプロセス再起動部24が再起動する(図4・ステップS204)。
【0041】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるプロセス再起動装置10に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【0042】
本実施形態のプロセス再起動装置10は、各ノードにおけるプロセスごとのリソース使用量から、障害を起こしたプロセスを再起動した場合にリソース不足が発生するか否かを判定してからそのプロセスを再起動するので、リソース不足に伴ってプロセス再起動が失敗する可能性を低くできる。そのため、特にミッションクリティカルなプロセスの停止による損失を少なくすることができる。
【0043】
障害を起こしたプロセスを再起動するとリソース不足が生じると判定された場合には、そのプロセスをそのまま再起動せず、元のノードとは異なるノードで実行するので、再起動が成功する可能性を高めることができる。その際、該プロセスの新しい実行元となるノードの選択にも、本実施形態と同様に各ノードのリソース使用量に基づいて判断することができる。例えば、リソース使用量(ファイルオープン数、メモリ使用量など)を各ノードごとの閾値と比較して、最も余裕のあるノードで実行するなどのような方法で判断することができる。
【0044】
(第2の実施形態)
本発明の第2の実施形態に係るプロセス再起動装置310は、概ね第1の実施形態で説明した構成と同一の構成を備えているが、コンピュータリソースに不足が発生し得ると判断された場合に予め登録された削除可能なプロセスをコンピュータの実行する対象から削除させる不要プロセス削除部326を有する点が第1の実施形態と異なる。
【0045】
この構成を備えることにより、プロセス再起動装置310は、ノードを切り替えることによってその障害を解決することができないシングルサーバ構成であっても、第1の実施形態と同一の効果を得ることができる。
以下、これをより詳細に説明する。
【0046】
図7は、本発明の第2の実施形態に係るプロセス再起動装置310の構成について示す説明図である。プロセス再起動装置310は、前述した第1の実施形態のプロセス再起動装置10と類似した構成を有するが、第1の実施形態が複数のノードと相互に接続されたクラスタであるのに対して、プロセス再起動装置310は1台のコンピュータのみで複数のプロセスを実行するシングルサーバ構成である。
【0047】
従って、プロセス再起動装置310のハードウェアとしての構成は、主演算制御手段11および記憶手段12については第1の実施形態のプロセス再起動装置10と同一である。しかしながら通信手段は本実施形態に係る動作では使用しないので、図7には示していない。
【0048】
また、ソフトウェアとしての構成も、主演算制御手段11でプロセス管理プログラムが動作することにより、第1の実施形態と同一のリソース記録部21、プロセス監視部22、およびプロセス再起動部24が機能するのに加えて、リソース不足判定部23が別のリソース不足判定部323に置き換えられており、また新たにリソース監視部325、不要プロセス削除部326、およびプロセス実行部327が機能する。
【0049】
そして、記憶手段12には、第1の実施形態と同一の統計情報31、システムログ32の各々に加えて、ユーザが予め作成して記憶させた削除可能プロセス一覧333が記憶されている。以後は、プロセス再起動装置310について、第1の実施形態のプロセス再起動装置10と異なる部分についてのみ説明し、同一の要素については同一の呼称および参照番号でいい、特に必要な場合を除いて説明を省略する。
【0050】
図8は、図7に示したプロセス再起動装置310の各部による処理をより観念的に示す説明図である。リソース監視部325およびプロセス実行部327は、各々第1の実施形態で各ノードが備えているリソース監視部101aおよびプロセス実行部101cと同一の機能を有する。即ち、プロセス実行部327が各々のプロセスを実行し、リソース監視部325は各プロセスのリソース使用量を取得してリソース記録部21に渡す。
【0051】
プロセス再起動装置310は、前述したようにシングルサーバ構成であるので、第1の実施形態とは違って、プロセス障害(プロセスダウン)が発生したプロセスを実行するノードを切り替えることによってその障害を解決することができない。そのため、プロセス再起動装置310では、削除可能プロセス一覧333が予め準備され、記憶されている。
【0052】
削除可能プロセス一覧333は、通常動作時において必要性が少なく、削除してもプロセス再起動装置310の動作に対して支障がないことが多い「削除可能な」プロセスと、それらの「削除可能な」プロセスの各々のリソース使用量の一覧である。不要プロセス削除部326は、この削除可能プロセス一覧333を参照して、この一覧にあるプロセスをプロセス実行部327から削除する。
【0053】
図9は、図7〜8に示したプロセス再起動装置310の動作について示すフローチャートである。図9は、図4に示した第1の実施形態のプロセス再起動装置10と同一の動作を多く含むので、同一の動作は同一の参照番号でいう。
【0054】
プロセス監視部22は、プロセス再起動装置310内で監視対象プロセスが正常に動作しているか否かについて判断し(ステップS201)、該プロセスにてプロセス障害(プロセスダウン)が発生した場合には(ステップS201がイエス)、その旨をリソース不足判定部323に通知する。
【0055】
リソース不足判定部323は、プロセス障害が発生した場合に、統計情報31を参照して、そこから現在のプロセス再起動装置310でのリソース使用量と、ダウンした監視対象プロセスが使用していたリソースのピーク値を読み出す(ステップS202)。そして、リソース不足判定部323は、その監視対象プロセスを再起動した場合にリソース不足が発生し得るか否かについて判定する(ステップS203)。
【0056】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ないと判断された場合(ステップS203がノー)には、リソース不足判定部323はプロセス再起動部24に該プロセスの再起動を指示する(ステップS204)。以後、ステップS201からの処理を繰り返す。ここまでは、対象のプロセスが全てプロセス再起動装置310内で動作するものであることを除いては、図4に示した第1の実施形態と同一の動作である。
【0057】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ると判断された場合(ステップS203がイエス)には、リソース不足判定部323は、削除可能プロセス一覧333を読み出し、「削除可能な」プロセスの各々のリソース使用量の合計を求める。そして、これらのプロセスを削除した場合に解放されるリソース使用量を含めた場合にリソース不足が解消できるか否かを判定する(ステップS401)。この判定について、より詳しくは後述する。
【0058】
「削除可能な」プロセスを削除すれば監視対象プロセスを再起動してもリソース不足が発生し得ないと判断された場合(ステップS401がイエス)、リソース不足判定部323は不要プロセス削除部326に「削除可能な」プロセスの削除を指示し(ステップS402)、その上でプロセス再起動部24に障害の発生したプロセスの再起動を指示する(ステップS403)。以後、ステップS201からの処理を繰り返す。
【0059】
「削除可能な」プロセスを削除しても監視対象プロセスを再起動した場合にリソース不足が発生し得ると判断された場合(ステップS401がノー)、リソース不足判定部323は、リソース不足が発生し得ると判断した旨をシステムログ32に記録してシステム管理者に通知して(ステップS404)異常停止する。
【0060】
図10は、図7〜8に示した削除可能プロセス一覧333の内容について示す説明図である。第1の実施形態と同じように、ここでいうリソース使用量はメモリ使用量およびファイルオープン数を含む。前述のように、削除可能プロセス一覧333は予め準備された「削除可能な」プロセスと、該プロセスの各々が使用するリソース使用量(メモリ使用量およびファイルオープン数)、そしてそれらのリソース使用量の合計(即ち、「削除可能な」プロセスを全て削除した場合に解放されるリソース使用量)が記憶されている。
【0061】
図11は、図9のステップS401として示した、リソース不足判定部323が行う判断の詳細について示す説明図である。図11は、図6と同様に、横軸に時刻を、縦軸には特定のプロセス(プロセスA)単独でのファイルオープン数と、プロセス再起動装置310全体での合計ファイルオープン数をプロットしたグラフである。
【0062】
図6に示した図4および図9のステップS203の判断と同様に、プロセスAのファイルオープン数の最大値をP1、プロセス再起動装置310全体のファイルオープン数のプロセスダウン発生時点での値をP2とする。そして、図10に示された「削除可能な」プロセスのファイルオープン数の合計をP3とする。
【0063】
ステップS203では、P1+P2が予め定められた閾値を越えるものと判断されたので、ステップS401に進んだ。ステップS401では、P1+P2−P3が、その閾値を越えるか否かについて判断する。そして、ファイルオープン数だけでなく、メモリ使用量、および統計情報31と削除可能プロセス一覧333に記録されたその他のリソース使用量についてもこれと同様の判断を行う。
【0064】
ステップS401で、「削除可能な」プロセスを削除してもリソース不足が発生し得ないとリソース不足判定部323が判断した場合には、前述のように「削除可能な」プロセスを削除した上でプロセスAを再起動する(ステップS402〜403)。
【0065】
以上の構成を備えることにより、プロセス再起動装置310は、ノードを切り替えることによってプロセス障害を解決することができないシングルサーバ構成であっても、「削除可能な」プロセスを削除することによって障害の発生したプロセスを再起動できるか否かを判断して、再起動が成功する可能性を高めることが可能となる。
【0066】
以上説明したように、本発明の第2の実施形態では、「削除可能な」プロセスを削除することによってリソース不足を解消する構成としたので、シングルサーバ構成に適用可能である。しかしながら、クラスタにこの構成を備えるようにしてももちろんよいし、リソース不足の解消で「ノードの切り替え」と「削除可能なプロセスの削除」とを併用するようにしてもよい。
【0067】
また、前述した構成では不要プロセス削除部326は削除可能プロセス一覧333にある全てのプロセスを削除するものとしたが、不足する分のリソース使用量(図11でいうP1+P2が閾値を超える量)に応じて、そのリソースの不足を解消するために必要最小限の削除可能プロセスを削除するようにしてももちろんよい。
【0068】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【0069】
上述した各々の実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【0070】
(付記1) 単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置であって、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存するリソース記録部と、
前記各プロセスの動作に障害が発生したか否かを検出するプロセス監視部と、
障害が発生した前記プロセスがある場合に、前記統計情報に基づいて障害が発生した当該プロセスを再起動しても前記コンピュータリソースに不足が発生し得るか否かについて判定するリソース不足判定部と、
前記コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動させるプロセス再起動部と
を有することを特徴とするプロセス再起動装置。
【0071】
(付記2) 前記リソース不足判定部が、当該プロセス単独のリソース使用量の最大値と、当該プロセスと同一のコンピュータで実行される全てのプロセスの前記プロセス障害の発生時点でのリソース使用量との合計値が与えられた閾値を超える場合に前記コンピュータリソースに不足が発生し得ると判定し、前記リソース使用量の全項目について与えられた閾値を超えない場合に前記コンピュータリソースに不足が発生し得ないと判定することを特徴とする、付記1に記載のプロセス再起動装置。
【0072】
(付記3) 前記リソース使用量が、少なくともメモリ使用量およびファイルオープン数のうちいずれか1つ以上を前記項目として含むことを特徴とする、付記2に記載のプロセス再起動装置。
【0073】
(付記4) 前記コンピュータリソースに不足が発生し得ると判断された場合に当該プロセスを実行するコンピュータを切り替えるよう指示するノード切替指示部を有することを特徴とする、付記1に記載のプロセス再起動装置。
【0074】
(付記5) 前記コンピュータリソースに不足が発生し得ると判断された場合に予め登録された削除可能なプロセスを前記コンピュータの実行する対象から削除させる不要プロセス削除部を有することを特徴とする、付記1に記載のプロセス再起動装置。
【0075】
(付記6) 単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量をリソース記録部が集計してこれを統計情報として保存し、
前記各プロセスの動作に障害が発生したか否かをプロセス監視部が検出し、
障害が発生した前記プロセスがある場合に、前記統計情報に基づいて障害が発生した当該プロセスを再起動しても前記コンピュータリソースに不足が発生し得るか否かについてリソース不足判定部が判定し、
前記コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスをプロセス再起動部が再起動する
ことを特徴とするプロセス再起動方法。
【0076】
(付記7) 単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、
前記プロセス再起動装置が有するコンピュータに、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存する手順、
前記各プロセスの動作に障害が発生したか否かを検出する手順、
障害が発生した前記プロセスがある場合に、前記統計情報に基づいて障害が発生した当該プロセスを再起動しても前記コンピュータリソースに不足が発生し得るか否かについて判定する手順、
および前記コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動する手順
を実行させることを特徴とするプロセス再起動プログラム。
【産業上の利用可能性】
【0077】
複数のプロセスを並行して実行するコンピュータまたはコンピュータクラスタに適用することができる。
【符号の説明】
【0078】
1 クラスタ
10、310 プロセス再起動装置
11、101 主演算制御手段
12 記憶手段
13、102 通信手段
21 リソース記録部
22 プロセス監視部
23、323 リソース不足判定部
24 プロセス再起動部
25 ノード切替指示部
31 統計情報
31a 起動日時ファイル
31b メモリ使用量記録ファイル
31c ファイルオープン数記録ファイル
32 システムログ
100、100a、100b、100c ノード
101a、325 リソース監視部
101b ノード切替部
101c、327 プロセス実行部
110 ネットワーク
326 不要プロセス削除部
333 削除可能プロセス一覧

【特許請求の範囲】
【請求項1】
単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置であって、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存するリソース記録部と、
前記各プロセスの動作に障害が発生したか否かを検出するプロセス監視部と、
障害が発生した前記プロセスがある場合に、前記統計情報に基づいて障害が発生した当該プロセスを再起動しても前記コンピュータリソースに不足が発生し得るか否かについて判定するリソース不足判定部と、
前記コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動させるプロセス再起動部と
を有することを特徴とするプロセス再起動装置。
【請求項2】
前記リソース不足判定部が、当該プロセス単独のリソース使用量の最大値と、当該プロセスと同一のコンピュータで実行される全てのプロセスの前記プロセス障害の発生時点でのリソース使用量との合計値が与えられた閾値を超える場合に前記コンピュータリソースに不足が発生し得ると判定し、前記リソース使用量の全項目について与えられた閾値を超えない場合に前記コンピュータリソースに不足が発生し得ないと判定することを特徴とする、請求項1に記載のプロセス再起動装置。
【請求項3】
前記リソース使用量が、少なくともメモリ使用量およびファイルオープン数のうちいずれか1つ以上を前記項目として含むことを特徴とする、請求項2に記載のプロセス再起動装置。
【請求項4】
前記コンピュータリソースに不足が発生し得ると判断された場合に当該プロセスを実行するコンピュータを切り替えるよう指示するノード切替指示部を有することを特徴とする、請求項1に記載のプロセス再起動装置。
【請求項5】
前記コンピュータリソースに不足が発生し得ると判断された場合に予め登録された削除可能なプロセスを前記コンピュータの実行する対象から削除させる不要プロセス削除部を有することを特徴とする、請求項1に記載のプロセス再起動装置。
【請求項6】
単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量をリソース記録部が集計してこれを統計情報として保存し、
前記各プロセスの動作に障害が発生したか否かをプロセス監視部が検出し、
障害が発生した前記プロセスがある場合に、前記統計情報に基づいて障害が発生した当該プロセスを再起動しても前記コンピュータリソースに不足が発生し得るか否かについてリソース不足判定部が判定し、
前記コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスをプロセス再起動部が再起動する
ことを特徴とするプロセス再起動方法。
【請求項7】
単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、
前記プロセス再起動装置が有するコンピュータに、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存する手順、
前記各プロセスの動作に障害が発生したか否かを検出する手順、
障害が発生した前記プロセスがある場合に、前記統計情報に基づいて障害が発生した当該プロセスを再起動しても前記コンピュータリソースに不足が発生し得るか否かについて判定する手順、
および前記コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動する手順
を実行させることを特徴とするプロセス再起動プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate