(57)【特許請求の範囲】
【請求項１】
単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置であって、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存するリソース記録部と、
前記各プロセスの動作に障害が発生したか否かを検出するプロセス監視部と、
障害が発生した前記プロセスがある場合に、前記統計情報に基づいて障害が発生した当該プロセスを再起動しても前記コンピュータリソースに不足が発生し得るか否かについて判定するリソース不足判定部と、
前記コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動させるプロセス再起動部と
を有し、
前記リソース不足判定部が、前記統計情報として記録された過去における当該プロセス単独のリソース使用量の最大値と、当該プロセスと同一のコンピュータで実行される全てのプロセスの前記プロセス障害の発生時点でのリソース使用量との合計値が与えられた閾値を超える場合に前記コンピュータリソースに不足が発生し得ると判定し、前記リソース使用量の全項目について与えられた閾値を超えない場合に前記コンピュータリソースに不足が発生し得ないと判定することを特徴とするプロセス再起動装置。
【請求項２】
前記リソース使用量が、少なくともメモリ使用量およびファイルオープン数のうちいずれか１つ以上を前記項目として含むことを特徴とする、請求項１に記載のプロセス再起動装置。
【請求項３】
前記コンピュータリソースに不足が発生し得ると判断された場合に当該プロセスを実行するコンピュータを切り替えるよう指示するノード切替指示部を有することを特徴とする、請求項１に記載のプロセス再起動装置。
【請求項４】
前記コンピュータリソースに不足が発生し得ると判断された場合に予め登録された削除可能なプロセスを前記コンピュータの実行する対象から削除させる不要プロセス削除部を有することを特徴とする、請求項１に記載のプロセス再起動装置。
【請求項５】
単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量をリソース記録部が集計してこれを統計情報として保存し、
前記各プロセスの動作に障害が発生したか否かをプロセス監視部が検出し、
障害が発生した前記プロセスがある場合に、前記統計情報として記録された過去における当該プロセス単独のリソース使用量の最大値と、当該プロセスと同一のコンピュータで実行される全てのプロセスの前記プロセス障害の発生時点でのリソース使用量との合計値を与えられた閾値とリソース不足判定部が比較し、
前記リソース使用量の全項目について前記閾値を超えないと判定された場合に当該プロセスをプロセス再起動部が再起動する
ことを特徴とするプロセス再起動方法。
【請求項６】
単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、
前記プロセス再起動装置が有するコンピュータに、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存する手順、
前記各プロセスの動作に障害が発生したか否かを検出する手順、
障害が発生した前記プロセスがある場合に、前記統計情報として記録された過去における当該プロセス単独のリソース使用量の最大値と、当該プロセスと同一のコンピュータで実行される全てのプロセスの前記プロセス障害の発生時点でのリソース使用量との合計値を与えられた閾値と比較する手順、
および前記リソース使用量の全項目について前記閾値を超えないと判定された場合に当該プロセスを再起動する手順
を実行させることを特徴とするプロセス再起動プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラムに関し、特にコンピュータまたはコンピュータクラスタで動作するプロセスに障害が発生した場合に、そのプロセスの再起動の失敗を防止するプロセス再起動装置等に関する。
【背景技術】
【０００２】
コンピュータネットワークに関する技術の発達に伴い、多くのコンピュータを相互に接続して、それらをあたかも１台の巨大なコンピュータであるかのように利用することを可能とする技術を、コンピュータのクラスタリングという。また、相互に接続された個々のコンピュータをノード、多数のノードが相互に接続されて構成されるシステムをコンピュータクラスタ（以後、単にクラスタという）という。
【０００３】
クラスタでは、１台のコンピュータでは得られない高い処理能力を得ることができるだけでなく、１つのクラスタの中で多数の処理を同時に動作させることが可能であり、一つのノードで動作に障害が発生したとしてもその処理を他のノードに引き継いで継続させることができるので、高い可用性（アベイラビリティ）を得ることができる。
【０００４】
特に、ミッションクリティカル（業務の遂行に必要不可欠）な処理をクラスタ上で行う場合には、その処理を行っているノード上のプロセス（動作単位）を監視する手段をそのクラスタが備え、該プロセスに障害が発生した場合にはそのプロセスを再起動し、再起動してもそのプロセスの動作を復旧できない場合には他のノードに動作を引き継ぐということが行われている。
【０００５】
これに関連して、次のような各々の技術文献がある。その中でも特許文献１には、異常終了した時の処理をプロセスごと・エラー種類ごとに割り振ることが可能であるというプロセス監視システムについて記載されている。特許文献２には、障害が発生したプロセスを停止し、そのプロセスが使用していた回線グループのリソースを解放してからそのプロセスを再起動するというプロセス管理システムについて記載されている。
【０００６】
特許文献３には、冗長プロセスが必要か否かについて判断し、不要であれば消去するという冗長リソース管理装置について記載されている。特許文献４には、リソースの利用量や利用状態に応じてジョブの実行数や実行状態を制御するというジョブ実行制御システムについて記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−３１１０９９号公報
【特許文献２】特開２００７−０５８６７９号公報
【特許文献３】特開２００７−１２２４３４号公報
【特許文献４】特開２００８−２０４２４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ミッションクリティカルなプロセスの中には、起動される時に多くのコンピュータリソース（計算機資源、例えばメモリ使用量、ファイルオープン数など。以後単にリソースという）を消費するものがある。そのため、そのようなプロセスに障害が発生した場合、そのプロセスを再起動しても、リソース不足が発生するために再起動が失敗し、動作を復旧できない場合が多くある。
【０００９】
特に昨今は、仮想化技術を利用して、仮想コンピュータ上でそれらのプロセスが実行されることも多くなってきている。そのため、リソースの管理が複雑化して、リソース不足に伴うプロセスの停止が発生しやすくなり、またその動作の復旧にも時間がかかるようになっている。ミッションクリティカルなプロセスの停止は、そのまま業務の停止となるので、停止して復旧に時間がかかることがあってはならない。
【００１０】
障害が発生したプロセスの再起動が失敗した場合は、再起動に成功した場合や、そのまま他のノードに動作を引き継いだ場合に比べて動作の復旧に時間がかかるので、その停止による損失も大きくなる。そのため、障害が発生したプロセスを再起動する前に、その再起動が成功するか否かを予測することができれば望ましい。しかしながら、障害が発生したプロセスを再起動する前に、その再起動が成功するか否かを予測することを可能とする技術は、前述の特許文献１〜４には記載されていない。
【００１１】
本発明の目的は、ミッションクリティカルなプロセスが障害を起こした場合に、その停止による損失を少なくすることを可能とするプロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明に係るプロセス再起動装置は、単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置であって、各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存するリソース記録部と、各プロセスの動作に障害が発生したか否かを検出するプロセス監視部と、障害が発生したプロセスがある場合に、統計情報に基づいて障害が発生した当該プロセスを再起動してもコンピュータリソースに不足が発生し得るか否かについて判定するリソース不足判定部と、コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動させるプロセス再起動部とを有し、リソース不足判定部が、統計情報として記録された過去における当該プロセス単独のリソース使用量の最大値と、当該プロセスと同一のコンピュータで実行される全てのプロセスのプロセス障害の発生時点でのリソース使用量との合計値が与えられた閾値を超える場合にコンピュータリソースに不足が発生し得ると判定し、リソース使用量の全項目について与えられた閾値を超えない場合にコンピュータリソースに不足が発生し得ないと判定することを特徴とする。
【００１３】
上記目的を達成するため、本発明に係るプロセス再起動方法は、単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量をリソース記録部が集計してこれを統計情報として保存し、各プロセスの動作に障害が発生したか否かをプロセス監視部が検出し、障害が発生したプロセスがある場合に、統計情報として記録された過去における当該プロセス単独のリソース使用量の最大値と、当該プロセスと同一のコンピュータで実行される全てのプロセスのプロセス障害の発生時点でのリソース使用量との合計値を与えられた閾値とリソース不足判定部が比較し、リソース使用量の全項目について閾値を超えないと判定された場合に当該プロセスをプロセス再起動部が再起動することを特徴とする。
【００１４】
上記目的を達成するため、本発明に係るプロセス再起動プログラムは、単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、プロセス再起動装置が有するコンピュータに、各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存する手順、各プロセスの動作に障害が発生したか否かを検出する手順、障害が発生したプロセスがある場合に、統計情報として記録された過去における当該プロセス単独のリソース使用量の最大値と、当該プロセスと同一のコンピュータで実行される全てのプロセスのプロセス障害の発生時点でのリソース使用量との合計値を与えられた閾値と比較する手順、およびリソース使用量の全項目について閾値を超えないと判定された場合に当該プロセスを再起動する手順を実行させることを特徴とする。
【発明の効果】
【００１５】
本発明は、上記したように統計情報に基づいて当該プロセスを再起動してもリソース不足が発生しないか否かを判定してからそのプロセスを再起動する構成としたので、再起動に失敗する可能性を低くすることができる。これによって、ミッションクリティカルなプロセスが障害を起こした場合に、その停止による損失を少なくできるという、優れた特徴を持つプロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態に係るプロセス再起動装置の構成について示す説明図である。
【図２】図１に示したプロセス再起動装置を含むクラスタについて示す説明図である。
【図３】図１〜２に示したプロセス再起動装置とノードの各部による処理をより観念的に示す説明図である。
【図４】図１に示したプロセス再起動装置の動作について示すフローチャートである。
【図５】図１および図３に示した統計情報の内容の一例について示す説明図である。
【図６】図４のステップＳ２０３として示した、リソース不足判定部が監視対象プロセスを再起動した場合にリソース不足が発生し得るか否かについての判定についてより詳しく示す説明図である。
【図７】本発明の第２の実施形態に係るプロセス再起動装置の構成について示す説明図である。
【図８】図７に示したプロセス再起動装置の各部による処理をより観念的に示す説明図である。
【図９】図７〜８に示したプロセス再起動装置の動作について示すフローチャートである。
【図１０】図７〜８に示した削除可能プロセス一覧の内容について示す説明図である。
【図１１】図９のステップＳ４０１として示した、リソース不足判定部が行う判断の詳細について示す説明図である。
【発明を実施するための形態】
【００１７】
（第１の実施形態）
以下、本発明の第１の実施形態の構成について添付図１〜３に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るプロセス再起動装置１０は、単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置である。このプロセス再起動装置１０は、各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報３１として保存するリソース記録部２１と、各プロセスの動作に障害が発生したか否かを検出するプロセス監視部２２と、障害が発生したプロセスがある場合に、統計情報に基づいて障害が発生した当該プロセスを再起動してもコンピュータリソースに不足が発生し得るか否かについて判定するリソース不足判定部２３と、コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動させるプロセス再起動部２４とを有する。
【００１８】
このリソース不足判定部２３は、当該プロセス単独のリソース使用量の最大値と、当該プロセスと同一のコンピュータで実行される全てのプロセスのプロセス障害の発生時点でのリソース使用量との合計値が与えられた閾値を超える場合にコンピュータリソースに不足が発生し得ると判定し、リソース使用量の全項目について与えられた閾値を超えない場合にコンピュータリソースに不足が発生し得ないと判定する。ここでいうリソース使用量は、少なくともメモリ使用量およびファイルオープン数のうちいずれか１つ以上を項目として含む。
【００１９】
そして、プロセス再起動装置１０は、コンピュータリソースに不足が発生し得ると判断された場合に当該プロセスを実行するコンピュータを切り替えるよう指示するノード切替指示部２５を有する。
【００２０】
この構成を備えることにより、プロセス再起動装置１０は、ミッションクリティカルなプロセスが障害を起こした場合に、その再起動に失敗する可能性を低くすることが可能となる。
以下、これをより詳細に説明する。
【００２１】
図１は、本発明の第１の実施形態に係るプロセス再起動装置１０の構成について示す説明図である。プロセス再起動装置１０は、一般的なコンピュータとしての構成を備えている。即ち、プロセス再起動装置１０は、コンピュータプログラムとして記述された各種処理を実行する主体である主演算制御手段（ＣＰＵ: Central Processing Unit）１１と、データを記憶する記憶手段１２と、ネットワーク１１０に接続して他のコンピュータとの間でデータ通信を行う通信手段１３とを備える。
【００２２】
主演算制御手段１１は、プロセス管理プログラムが動作することにより、後述するリソース記録部２１、プロセス監視部２２、リソース不足判定部２３、プロセス再起動部２４、およびノード切替指示部２５の各々として機能する。また、記憶手段１２には、統計情報３１、システムログ３２の各々が、主演算制御手段１１の動作に応じて記憶される。これらについても後述する。
【００２３】
図２は、図１に示したプロセス再起動装置１０を含むクラスタ１について示す説明図である。クラスタ１は、プロセス再起動装置１０と、各々のプロセスを実行する複数のコンピュータであるノード１００ａ、１００ｂ、１００ｃ…が、ネットワーク１１０を介して相互に接続されて構成される。ノード１００ａ、１００ｂ、１００ｃ…の台数は任意である。また、プロセス再起動装置１０と各々のノード１００ａ、１００ｂ、１００ｃ…を、仮想コンピュータによって構成することもできる。
【００２４】
ノード１００ａ、１００ｂ、１００ｃ…は各々、同一の構成を有するので、これらを総称してノード１００といい、図２にはその中の１台についてのみ詳しい構成を示している。ノード１００は、主演算制御手段１０１で管理プログラムが動作することにより、リソース監視部１０１ａ、ノード切替部１０１ｂ、およびプロセス実行部１０１ｃの各々として機能する。また、ネットワーク１１０に接続して他のコンピュータとの間でデータ通信を行う通信手段１０２も備える。
【００２５】
図３は、図１〜２に示したプロセス再起動装置１０とノード１００の各部による処理をより観念的に示す説明図である。各々のノード１００では、プロセス実行部１０１ｃが各々のプロセスを実行し、リソース監視部１０１ａが実行中の各プロセスのリソース使用量を取得し、プロセス再起動装置１０に送信している。プロセス再起動装置１０では、リソース記録部２１が各々のノード１００からリソース使用量についての情報を受信して集計し、統計情報３１として保存する。
【００２６】
その一方で、プロセス監視部２２は、クラスタ１内で監視対象として予め指定されたプロセスが正常に動作しているか否かについて監視し、該プロセスが正常に動作していない場合、即ちプロセス障害（プロセスダウン）が発生した場合には、その旨をリソース不足判定部２３に通知する。
【００２７】
リソース不足判定部２３は、プロセス障害が発生した場合に、統計情報３１を参照して、そこからダウンした監視対象プロセスが使用していたリソースのピーク値と、そのプロセスを実行していたノード全体のリソース使用量とを読み出す。そして、リソース不足判定部２３は、その監視対象プロセスを再起動した場合にリソース不足が発生しないか否かについて判定する。その判定基準については後述する。
【００２８】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ないと判断された場合には、リソース不足判定部２３はプロセス再起動部２４に該プロセスの再起動を指示し、プロセス再起動部２４は該プロセスを実行していたノード１００のプロセス実行部１０１ｃに、該プロセスを再起動させる。
【００２９】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ると判断された場合には、リソース不足判定部２３はノード切替指示部２５に、該プロセスを元のノードとは異なるノード１００で実行する、即ち該プロセスを実行するノードを切り替えるよう指示する。ノード切替指示部２５は、別のノード１００のノード切替部１０１ｂを呼び出して、該プロセスの実行を引き継がせる。またこれに併せて、リソース不足判定部２３は、その監視対象プロセスを再起動した場合にリソース不足が発生し得ると判断した旨をシステムログ３２に記録することによってシステム管理者に通知する。
【００３０】
図４は、図１に示したプロセス再起動装置１０の動作について示すフローチャートである。プロセス監視部２２は、クラスタ１内で監視対象プロセスが正常に動作しているか否かについて判断し（ステップＳ２０１）、該プロセスにてプロセス障害（プロセスダウン）が発生した場合には（ステップＳ２０１がイエス）、その旨をリソース不足判定部２３に通知する。
【００３１】
リソース不足判定部２３は、プロセス障害が発生した場合に、統計情報３１を参照して、そこから現在のクラスタ１全体でのリソース使用量と、ダウンした監視対象プロセスのリソース使用量のピーク値を読み出す（ステップＳ２０２）。そして、リソース不足判定部２３は、その監視対象プロセスを再起動した場合にリソース不足が発生し得るか否かについて判定する（ステップＳ２０３）。
【００３２】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ないと判断された場合（ステップＳ２０３がノー）には、リソース不足判定部２３はプロセス再起動部２４に該プロセスの再起動を指示する（ステップＳ２０４）。以後、ステップＳ２０１からの処理を繰り返す。
【００３３】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ると判断された場合（ステップＳ２０３がイエス）には、リソース不足判定部２３はノード切替指示部２５に、該プロセスを実行するノードを切り替えるよう指示する（ステップＳ２０５）。そして、リソース不足判定部２３は、リソース不足が発生し得ると判断した旨をシステムログ３２に記録してシステム管理者に通知する（ステップＳ２０６）。以後、ステップＳ２０１からの処理を繰り返す。
【００３４】
図５は、図１および図３に示した統計情報３１の内容の一例について示す説明図である。統計情報３１は、リソース記録部２１が受信して記録した、各々のプロセスごとのリソース使用量とクラスタ１全体でのリソース使用量である。
【００３５】
統計情報３１は、各々のプロセスの起動された日時を記録する起動日時ファイル３１ａと、各々のプロセスが主記憶装置（メインメモリ）を使用した容量を一定周期ごとに記録するメモリ使用量記録ファイル３１ｂと、各々のプロセスが実行中に開いたファイルの数（ファイルオープン数）を一定周期ごとに記録するファイルオープン数記録ファイル３１ｃを少なくとも含む。これ以外のリソース使用量の項目についての記録も、もちろんあってもよい。
【００３６】
図６は、図４のステップＳ２０３として示した、リソース不足判定部２３が監視対象プロセスを再起動した場合にリソース不足が発生し得るか否かについての判定についてより詳しく示す説明図である。図６は、横軸に時刻を、縦軸には図５に示したファイルオープン数記録ファイル３１ｃに記録されたファイルオープン数の中で、特定のプロセス（以後プロセスＡという）単独でのファイルオープン数と、プロセスＡを実行しているノード全体での合計ファイルオープン数をプロットしたグラフである。図６では、プロセスＡ単独とノード全体のファイルオープン数を、各々実線と破線で示している。
【００３７】
プロセスＡでプロセス障害（プロセスダウン）が発生した場合、リソース不足判定部２３は図４・ステップＳ２０２の動作で、起動日時ファイル３１ａに示されるプロセスＡの起動日時以後のプロセスＡのファイルオープン数の推移を示す実線グラフの中から、ファイルオープン数の最大値（これをＰ１とする）を検出する。また、ノード全体のファイルオープン数を示す破線グラフの、プロセスダウン発生時点での値（これをＰ２とする）を取得する。
【００３８】
そしてリソース不足判定部２３は図４・ステップＳ２０３の判断で、Ｐ１＋Ｐ２、即ちプロセスＡのファイルオープン数の最大値＋プロセスダウン発生時点でのノード全体のファイルオープン数の合計が、予め定められた閾値を越えた場合に、プロセスＡを再起動した場合にリソース不足が発生し得る（ステップＳ２０３がイエス）と判断する。この場合は、前述のようにプロセスＡを実行するノードを切り替える（ステップＳ２０５〜２０６）。図６の例では、ファイルオープン数５００を閾値とし、それに対してＰ１が約２００、Ｐ２が約４００である例を示している。Ｐ１＋Ｐ２は明らかに閾値の５００を越えているので、リソース不足が発生し得ると判断される。
【００３９】
リソース不足判定部２３は、ファイルオープン数だけでなく、メモリ使用量、および統計情報３１に記録されたその他のリソース使用量についてもこれと同様の判断を行い、プロセスＡのリソース使用量の全項目についてリソース不足が発生し得ると判断されない場合に、リソース不足が発生し得ない（ステップＳ２０３がノー）と判断する。この場合は、前述のようにプロセスＡをそのまま再起動することになる（ステップＳ２０４）。
【００４０】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係るプロセス再起動方法は、コンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置１０にあって、各プロセスの実行中に使用されるリソース使用量をリソース記録部２１が集計してこれを統計情報として保存し、各プロセスの動作にプロセス障害が発生したか否かをプロセス監視部２２が検出し（図４・ステップＳ２０１）、プロセス障害が発生した場合に、統計情報に基づいてプロセス障害が発生した当該プロセスを再起動してもリソース不足が発生しないか否かについてリソース不足判定部２３が判定し（図４・ステップＳ２０２〜２０３）、リソース不足が発生し得ないと判定された場合に当該プロセスをプロセス再起動部２４が再起動する（図４・ステップＳ２０４）。
【００４１】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるプロセス再起動装置１０に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【００４２】
本実施形態のプロセス再起動装置１０は、各ノードにおけるプロセスごとのリソース使用量から、障害を起こしたプロセスを再起動した場合にリソース不足が発生するか否かを判定してからそのプロセスを再起動するので、リソース不足に伴ってプロセス再起動が失敗する可能性を低くできる。そのため、特にミッションクリティカルなプロセスの停止による損失を少なくすることができる。
【００４３】
障害を起こしたプロセスを再起動するとリソース不足が生じると判定された場合には、そのプロセスをそのまま再起動せず、元のノードとは異なるノードで実行するので、再起動が成功する可能性を高めることができる。その際、該プロセスの新しい実行元となるノードの選択にも、本実施形態と同様に各ノードのリソース使用量に基づいて判断することができる。例えば、リソース使用量（ファイルオープン数、メモリ使用量など）を各ノードごとの閾値と比較して、最も余裕のあるノードで実行するなどのような方法で判断することができる。
【００４４】
（第２の実施形態）
本発明の第２の実施形態に係るプロセス再起動装置３１０は、概ね第１の実施形態で説明した構成と同一の構成を備えているが、コンピュータリソースに不足が発生し得ると判断された場合に予め登録された削除可能なプロセスをコンピュータの実行する対象から削除させる不要プロセス削除部３２６を有する点が第１の実施形態と異なる。
【００４５】
この構成を備えることにより、プロセス再起動装置３１０は、ノードを切り替えることによってその障害を解決することができないシングルサーバ構成であっても、第１の実施形態と同一の効果を得ることができる。
以下、これをより詳細に説明する。
【００４６】
図７は、本発明の第２の実施形態に係るプロセス再起動装置３１０の構成について示す説明図である。プロセス再起動装置３１０は、前述した第１の実施形態のプロセス再起動装置１０と類似した構成を有するが、第１の実施形態が複数のノードと相互に接続されたクラスタであるのに対して、プロセス再起動装置３１０は１台のコンピュータのみで複数のプロセスを実行するシングルサーバ構成である。
【００４７】
従って、プロセス再起動装置３１０のハードウェアとしての構成は、主演算制御手段１１および記憶手段１２については第１の実施形態のプロセス再起動装置１０と同一である。しかしながら通信手段は本実施形態に係る動作では使用しないので、図７には示していない。
【００４８】
また、ソフトウェアとしての構成も、主演算制御手段１１でプロセス管理プログラムが動作することにより、第１の実施形態と同一のリソース記録部２１、プロセス監視部２２、およびプロセス再起動部２４が機能するのに加えて、リソース不足判定部２３が別のリソース不足判定部３２３に置き換えられており、また新たにリソース監視部３２５、不要プロセス削除部３２６、およびプロセス実行部３２７が機能する。
【００４９】
そして、記憶手段１２には、第１の実施形態と同一の統計情報３１、システムログ３２の各々に加えて、ユーザが予め作成して記憶させた削除可能プロセス一覧３３３が記憶されている。以後は、プロセス再起動装置３１０について、第１の実施形態のプロセス再起動装置１０と異なる部分についてのみ説明し、同一の要素については同一の呼称および参照番号でいい、特に必要な場合を除いて説明を省略する。
【００５０】
図８は、図７に示したプロセス再起動装置３１０の各部による処理をより観念的に示す説明図である。リソース監視部３２５およびプロセス実行部３２７は、各々第１の実施形態で各ノードが備えているリソース監視部１０１ａおよびプロセス実行部１０１ｃと同一の機能を有する。即ち、プロセス実行部３２７が各々のプロセスを実行し、リソース監視部３２５は各プロセスのリソース使用量を取得してリソース記録部２１に渡す。
【００５１】
プロセス再起動装置３１０は、前述したようにシングルサーバ構成であるので、第１の実施形態とは違って、プロセス障害（プロセスダウン）が発生したプロセスを実行するノードを切り替えることによってその障害を解決することができない。そのため、プロセス再起動装置３１０では、削除可能プロセス一覧３３３が予め準備され、記憶されている。
【００５２】
削除可能プロセス一覧３３３は、通常動作時において必要性が少なく、削除してもプロセス再起動装置３１０の動作に対して支障がないことが多い「削除可能な」プロセスと、それらの「削除可能な」プロセスの各々のリソース使用量の一覧である。不要プロセス削除部３２６は、この削除可能プロセス一覧３３３を参照して、この一覧にあるプロセスをプロセス実行部３２７から削除する。
【００５３】
図９は、図７〜８に示したプロセス再起動装置３１０の動作について示すフローチャートである。図９は、図４に示した第１の実施形態のプロセス再起動装置１０と同一の動作を多く含むので、同一の動作は同一の参照番号でいう。
【００５４】
プロセス監視部２２は、プロセス再起動装置３１０内で監視対象プロセスが正常に動作しているか否かについて判断し（ステップＳ２０１）、該プロセスにてプロセス障害（プロセスダウン）が発生した場合には（ステップＳ２０１がイエス）、その旨をリソース不足判定部３２３に通知する。
【００５５】
リソース不足判定部３２３は、プロセス障害が発生した場合に、統計情報３１を参照して、そこから現在のプロセス再起動装置３１０でのリソース使用量と、ダウンした監視対象プロセスが使用していたリソースのピーク値を読み出す（ステップＳ２０２）。そして、リソース不足判定部３２３は、その監視対象プロセスを再起動した場合にリソース不足が発生し得るか否かについて判定する（ステップＳ２０３）。
【００５６】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ないと判断された場合（ステップＳ２０３がノー）には、リソース不足判定部３２３はプロセス再起動部２４に該プロセスの再起動を指示する（ステップＳ２０４）。以後、ステップＳ２０１からの処理を繰り返す。ここまでは、対象のプロセスが全てプロセス再起動装置３１０内で動作するものであることを除いては、図４に示した第１の実施形態と同一の動作である。
【００５７】
その監視対象プロセスを再起動した場合にリソース不足が発生し得ると判断された場合（ステップＳ２０３がイエス）には、リソース不足判定部３２３は、削除可能プロセス一覧３３３を読み出し、「削除可能な」プロセスの各々のリソース使用量の合計を求める。そして、これらのプロセスを削除した場合に解放されるリソース使用量を含めた場合にリソース不足が解消できるか否かを判定する（ステップＳ４０１）。この判定について、より詳しくは後述する。
【００５８】
「削除可能な」プロセスを削除すれば監視対象プロセスを再起動してもリソース不足が発生し得ないと判断された場合（ステップＳ４０１がイエス）、リソース不足判定部３２３は不要プロセス削除部３２６に「削除可能な」プロセスの削除を指示し（ステップＳ４０２）、その上でプロセス再起動部２４に障害の発生したプロセスの再起動を指示する（ステップＳ４０３）。以後、ステップＳ２０１からの処理を繰り返す。
【００５９】
「削除可能な」プロセスを削除しても監視対象プロセスを再起動した場合にリソース不足が発生し得ると判断された場合（ステップＳ４０１がノー）、リソース不足判定部３２３は、リソース不足が発生し得ると判断した旨をシステムログ３２に記録してシステム管理者に通知して（ステップＳ４０４）異常停止する。
【００６０】
図１０は、図７〜８に示した削除可能プロセス一覧３３３の内容について示す説明図である。第１の実施形態と同じように、ここでいうリソース使用量はメモリ使用量およびファイルオープン数を含む。前述のように、削除可能プロセス一覧３３３は予め準備された「削除可能な」プロセスと、該プロセスの各々が使用するリソース使用量（メモリ使用量およびファイルオープン数）、そしてそれらのリソース使用量の合計（即ち、「削除可能な」プロセスを全て削除した場合に解放されるリソース使用量）が記憶されている。
【００６１】
図１１は、図９のステップＳ４０１として示した、リソース不足判定部３２３が行う判断の詳細について示す説明図である。図１１は、図６と同様に、横軸に時刻を、縦軸には特定のプロセス（プロセスＡ）単独でのファイルオープン数と、プロセス再起動装置３１０全体での合計ファイルオープン数をプロットしたグラフである。
【００６２】
図６に示した図４および図９のステップＳ２０３の判断と同様に、プロセスＡのファイルオープン数の最大値をＰ１、プロセス再起動装置３１０全体のファイルオープン数のプロセスダウン発生時点での値をＰ２とする。そして、図１０に示された「削除可能な」プロセスのファイルオープン数の合計をＰ３とする。
【００６３】
ステップＳ２０３では、Ｐ１＋Ｐ２が予め定められた閾値を越えるものと判断されたので、ステップＳ４０１に進んだ。ステップＳ４０１では、Ｐ１＋Ｐ２−Ｐ３が、その閾値を越えるか否かについて判断する。そして、ファイルオープン数だけでなく、メモリ使用量、および統計情報３１と削除可能プロセス一覧３３３に記録されたその他のリソース使用量についてもこれと同様の判断を行う。
【００６４】
ステップＳ４０１で、「削除可能な」プロセスを削除してもリソース不足が発生し得ないとリソース不足判定部３２３が判断した場合には、前述のように「削除可能な」プロセスを削除した上でプロセスＡを再起動する（ステップＳ４０２〜４０３）。
【００６５】
以上の構成を備えることにより、プロセス再起動装置３１０は、ノードを切り替えることによってプロセス障害を解決することができないシングルサーバ構成であっても、「削除可能な」プロセスを削除することによって障害の発生したプロセスを再起動できるか否かを判断して、再起動が成功する可能性を高めることが可能となる。
【００６６】
以上説明したように、本発明の第２の実施形態では、「削除可能な」プロセスを削除することによってリソース不足を解消する構成としたので、シングルサーバ構成に適用可能である。しかしながら、クラスタにこの構成を備えるようにしてももちろんよいし、リソース不足の解消で「ノードの切り替え」と「削除可能なプロセスの削除」とを併用するようにしてもよい。
【００６７】
また、前述した構成では不要プロセス削除部３２６は削除可能プロセス一覧３３３にある全てのプロセスを削除するものとしたが、不足する分のリソース使用量（図１１でいうＰ１＋Ｐ２が閾値を超える量）に応じて、そのリソースの不足を解消するために必要最小限の削除可能プロセスを削除するようにしてももちろんよい。
【００６８】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【００６９】
上述した各々の実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００７０】
（付記１）  単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置であって、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存するリソース記録部と、
前記各プロセスの動作に障害が発生したか否かを検出するプロセス監視部と、
障害が発生した前記プロセスがある場合に、前記統計情報に基づいて障害が発生した当該プロセスを再起動しても前記コンピュータリソースに不足が発生し得るか否かについて判定するリソース不足判定部と、
前記コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動させるプロセス再起動部と
を有することを特徴とするプロセス再起動装置。
【００７１】
（付記２）  前記リソース不足判定部が、当該プロセス単独のリソース使用量の最大値と、当該プロセスと同一のコンピュータで実行される全てのプロセスの前記プロセス障害の発生時点でのリソース使用量との合計値が与えられた閾値を超える場合に前記コンピュータリソースに不足が発生し得ると判定し、前記リソース使用量の全項目について与えられた閾値を超えない場合に前記コンピュータリソースに不足が発生し得ないと判定することを特徴とする、付記１に記載のプロセス再起動装置。
【００７２】
（付記３）  前記リソース使用量が、少なくともメモリ使用量およびファイルオープン数のうちいずれか１つ以上を前記項目として含むことを特徴とする、付記２に記載のプロセス再起動装置。
【００７３】
（付記４）  前記コンピュータリソースに不足が発生し得ると判断された場合に当該プロセスを実行するコンピュータを切り替えるよう指示するノード切替指示部を有することを特徴とする、付記１に記載のプロセス再起動装置。
【００７４】
（付記５）  前記コンピュータリソースに不足が発生し得ると判断された場合に予め登録された削除可能なプロセスを前記コンピュータの実行する対象から削除させる不要プロセス削除部を有することを特徴とする、付記１に記載のプロセス再起動装置。
【００７５】
（付記６）  単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量をリソース記録部が集計してこれを統計情報として保存し、
前記各プロセスの動作に障害が発生したか否かをプロセス監視部が検出し、
障害が発生した前記プロセスがある場合に、前記統計情報に基づいて障害が発生した当該プロセスを再起動しても前記コンピュータリソースに不足が発生し得るか否かについてリソース不足判定部が判定し、
前記コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスをプロセス再起動部が再起動する
ことを特徴とするプロセス再起動方法。
【００７６】
（付記７）  単数または複数のコンピュータで実行される複数のプロセスの実行を管理するプロセス再起動装置にあって、
前記プロセス再起動装置が有するコンピュータに、
前記各プロセスの実行中に使用されるコンピュータリソースの量であるリソース使用量を集計してこれを統計情報として保存する手順、
前記各プロセスの動作に障害が発生したか否かを検出する手順、
障害が発生した前記プロセスがある場合に、前記統計情報に基づいて障害が発生した当該プロセスを再起動しても前記コンピュータリソースに不足が発生し得るか否かについて判定する手順、
および前記コンピュータリソースに不足が発生し得ないと判定された場合に当該プロセスを再起動する手順
を実行させることを特徴とするプロセス再起動プログラム。
【産業上の利用可能性】
【００７７】
複数のプロセスを並行して実行するコンピュータまたはコンピュータクラスタに適用することができる。
【符号の説明】
【００７８】
１  クラスタ
１０、３１０  プロセス再起動装置
１１、１０１  主演算制御手段
１２  記憶手段
１３、１０２  通信手段
２１  リソース記録部
２２  プロセス監視部
２３、３２３  リソース不足判定部
２４  プロセス再起動部
２５  ノード切替指示部
３１  統計情報
３１ａ  起動日時ファイル
３１ｂ  メモリ使用量記録ファイル
３１ｃ  ファイルオープン数記録ファイル
３２  システムログ
１００、１００ａ、１００ｂ、１００ｃ  ノード
１０１ａ、３２５  リソース監視部
１０１ｂ  ノード切替部
１０１ｃ、３２７  プロセス実行部
１１０  ネットワーク
３２６  不要プロセス削除部
３３３  削除可能プロセス一覧
【図１】
0005601587.tif 000002
【図２】
0005601587.tif 000003
【図３】
0005601587.tif 000004
【図４】
0005601587.tif 000005
【図５】
0005601587.tif 000006
【図６】
0005601587.tif 000007
【図７】
0005601587.tif 000008
【図８】
0005601587.tif 000009
【図９】
0005601587.tif 000010
【図１０】
0005601587.tif 000011
【図１１】
0005601587.tif 000012