(57)【要約】  プロセス制御部（４１）は、制限値ｘ以下のサイズのメモリ領域で制御対象の複数のプロセスを動作させる。リソース割当部（４３）は、停止したプロセスが検出されると、制御対象のプロセス毎に使用可能なメモリ領域のサイズを緩和制限値として割り当てる。プロセス制御部（４１）は、停止したプロセスが検出されると、制御対象の各プロセスを、リソース割当部（４３）によってそのプロセスに割り当てられた緩和制限値以下のサイズのメモリ領域で縮退運転させる。
2019167157.tif 000002
【特許請求の範囲】
【請求項１】
制限値ｘ以下のサイズのメモリ領域で制御対象の複数のプロセスを動作させるプロセス制御部と、
前記制御対象の複数のプロセスから停止したプロセスを検出する停止検出部と、
前記停止検出部によって停止したプロセスが検出されると、前記制御対象のプロセス毎に使用可能なメモリ領域のサイズを緩和制限値として割り当てるリソース割当部と
を備え、
前記プロセス制御部は、前記停止検出部によって停止したプロセスが検出されると、前記制御対象の各プロセスを、前記リソース割当部によってそのプロセスに割り当てられた前記緩和制限値以下のサイズのメモリ領域で縮退運転させるリソース制御装置。
【請求項２】
前記制限値ｘは、使用可能なメモリ領域のサイズよりも小さいサイズであり、
前記リソース割当部は、前記制御対象の各プロセスを対象プロセスとして、前記停止検出部によって停止したプロセスが検出された時点における前記対象プロセスが使用するメモリ領域のサイズよりも大きいサイズを前記緩和制限値として割り当てる
請求項１に記載のリソース制御装置。
【請求項３】
前記制限値ｘは、使用可能なメモリ領域のサイズに１よりも小さい値αを乗じたサイズであり、
前記リソース割当部は、前記対象プロセスが使用するメモリ領域のサイズに、前記値αの逆数を乗じたサイズを前記緩和制限値として割り当てる
請求項２に記載のリソース制御装置。
【請求項４】
前記プロセス制御部は、他のプロセスが動作するために必要なプロセスである依存プロセスが存在する場合には、依存プロセスを優先して前記緩和制限値以下のサイズのメモリ領域で縮退運転させる
請求項１から３までのいずれか１項に記載のリソース制御装置。
【請求項５】
前記プロセス制御部は、使用するメモリ領域のサイズが大きいプロセスを優先して前記緩和制限値以下のサイズのメモリ領域で縮退運転させる
請求項１から４までのいずれか１項に記載のリソース制御装置。
【請求項６】
前記プロセス制御部は、前記各プロセスを前記緩和制限値以下のサイズのメモリ領域で縮退運転させている場合に、前記制御対象の複数のプロセスから停止したプロセスが検出されなくなると、前記制限値ｘ以下のサイズのメモリ領域で前記制御対象の複数のプロセスを動作させる
請求項１から５までのいずれか１項に記載のリソース制御装置。
【請求項７】
前記リソース制御装置は、さらに、
前記各プロセスが使用するメモリ領域のサイズと、実行した処理との少なくともいずれかを示すログデータを出力するログ出力部
を備える請求項１から６までのいずれか１項に記載のリソース制御装置。
【請求項８】
前記プロセス制御部は、ガーベージコレクタであるプロセスを優先して前記緩和制限値以下のサイズのメモリ領域で縮退運転させる
請求項１から７までのいずれか１項に記載のリソース制御装置。
【請求項９】
前記リソース制御装置は、さらに、
前記各プロセスの起動時刻に基づき、ガーベージコレクタであるプロセスを推定するガーベージコレクタ推定部
を備え、
前記プロセス制御部は、前記ガーベージコレクタ推定部によってガーベージコレクタであるプロセスと推定されたプロセスを優先して前記緩和制限値以下のサイズのメモリ領域で縮退運転させる
請求項８に記載のリソース制御装置。
【請求項１０】
プロセス制御部が、制限値ｘ以下のサイズのメモリ領域で制御対象の複数のプロセスを動作させ、
停止検出部が、前記制御対象の複数のプロセスから停止したプロセスを検出し、
リソース割当部が、前記停止検出部によって停止したプロセスが検出されると、前記制御対象のプロセス毎に使用可能なメモリ領域のサイズを緩和制限値として割り当て、
前記プロセス制御部が、前記停止検出部によって停止したプロセスが検出されると、前記制御対象の各プロセスを、前記リソース割当部によってそのプロセスに割り当てられた前記緩和制限値以下のサイズのメモリ領域で縮退運転させるリソース制御方法。
【請求項１１】
制限値ｘ以下のサイズのメモリ領域で制御対象の複数のプロセスを動作させるプロセス制御処理と、
前記制御対象の複数のプロセスから停止したプロセスを検出する停止検出処理と、
前記停止検出処理によって停止したプロセスが検出されると、前記制御対象のプロセス毎に使用可能なメモリ領域のサイズを緩和制限値として割り当てるリソース割当処理と
を備え、
前記プロセス制御処理では、前記停止検出処理によって停止したプロセスが検出されると、前記制御対象の各プロセスを、前記リソース割当処理によってそのプロセスに割り当てられた前記緩和制限値以下のサイズのメモリ領域で縮退運転させるリソース制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プロセスが使用するリソースを制御する技術に関する。
【背景技術】
【０００２】
従来のリソース制御では、グループ化したプロセス群に対して、そのグループが使用可能なメモリ使用量が制限される。また、グループのメモリ使用量が制限値に達した場合、グループに所属する全てのプロセスを停止させることにより、他のグループに影響させない制御されている。【０００３】
特許文献１には、リソース制御対象のプロセスが動作するメモリ領域において、メモリ使用量の残量が無い場合に、基準値を用いてプロセスを選出し、選出されたプロセスを停止させることが記載されている。これにより、特許文献１では、メモリを確保し、不具合プロセスに起因したメモリ負荷による、他のプロセスへの影響を排除している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２９３３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のリソース制御では、リソース制御対象のプロセスの素性が判明していることが前提となっている。
ユーザによって開発されたプロセスのように、機能及び特性を特定できないプロセスを有するシステムにおいて、リソース制御対象の全てのプロセスを特定のグループに分類し、グループ毎に適切なリソース制御を実施することは困難である。リソース制御対象のプロセスが動作するメモリ領域において、使用可能なメモリ領域の残量が無い場合、どのプロセスを再起動もしくは停止させるかの判定も同様に困難である。そのため、継続動作が期待されるサービスに関わるプロセスを再起動もしくは停止させる恐れがあり、サービスを継続して動作させられない可能性があった。
この発明は、リソース制御対象のプロセスの素性が判明してしない場合であっても、サービスを継続して動作させ易くすることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るリソース制御装置は、
制限値ｘ以下のサイズのメモリ領域で制御対象の複数のプロセスを動作させるプロセス制御部と、
前記制御対象の複数のプロセスから停止したプロセスを検出する停止検出部と、
前記停止検出部によって停止したプロセスが検出されると、前記制御対象のプロセス毎に使用可能なメモリ領域のサイズを緩和制限値として割り当てるリソース割当部と
を備え、
前記プロセス制御部は、前記停止検出部によって停止したプロセスが検出されると、前記制御対象の各プロセスを、前記リソース割当部によってそのプロセスに割り当てられた前記緩和制限値以下のサイズのメモリ領域で縮退運転させる。
【発明の効果】
【０００７】
この発明では、使用可能なメモリ領域の残量が無くなる前に、使用可能なメモリ領域をプロセス毎に分離して割り当て、縮退運転させる。これにより、各プロセスのメモリ領域の使用量を抑制させつつ、異常が発生していないプロセスを縮退運転により継続動作させることが可能である。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るリソース制御装置１０のハードウェア構成図。
【図２】実施の形態１に係るリソース制御装置１０のソフトウェア構成図。
【図３】実施の形態１に係るリソース制御装置１０の全体的な動作を示すフローチャート。
【図４】実施の形態１に係る依存管理テーブル５１を示す図。
【図５】実施の形態１に係る使用量管理テーブル５２を示す図。
【図６】実施の形態１に係るグループ監視処理のフローチャート。
【図７】実施の形態２に係るリソース制御装置１０のソフトウェア構成図。
【図８】実施の形態２に係る使用量ログテーブル５３を示す図。
【図９】実施の形態２に係る操作履歴テーブル５４を示す図。
【図１０】実施の形態３に係るリソース制御装置１０のソフトウェア構成図。
【図１１】実施の形態３に係るリソース制御装置１０の動作を示すフローチャート。
【発明を実施するための形態】
【０００９】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を参照して、実施の形態１に係るリソース制御装置１０のハードウェア構成を説明する。
リソース制御装置１０は、プロセッサ１１と、メモリ１２と、ストレージ１３と、通信インタフェース１４とのハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１０】
プロセッサ１１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。つまり、プロセッサ１１は、処理回路である。プロセッサ１１は、具体例としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１１】
メモリ１２は、データを一時的に記憶する記憶装置である。メモリ１２は、具体例としては、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００１２】
ストレージ１３は、データを保管する記憶装置である。ストレージ１３は、具体例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、ストレージ１３は、ＳＤ（登録商標，Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ，登録商標）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記録媒体であってもよい。
【００１３】
通信インタフェース１４は、外部の装置と通信するためのインタフェースである。通信インタフェース１４は、具体例としては、Ｅｔｈｅｒｎｅｔ（登録商標）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＨＤＭＩ（登録商標，Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）のポートである。
【００１４】
図１では、プロセッサ１１は、１つだけ示されていた。しかし、プロセッサ１１は、複数であってもよい。
【００１５】
図２を参照して、実施の形態１に係るリソース制御装置１０のソフトウェア構成を説明する。
リソース制御装置１０では、オペレーティングシステム２０が動作する。オペレーティングシステム２０では、複数のプロセス３０と、管理部４０とが動作する。図２では、４つのプロセス３０が示されているが、プロセス３０の数は２つであっても、３つであっても、５つ以上であってもよい。
【００１６】
オペレーティングシステム２０は、機能構成要素として、リソース制御部２１を備える。
リソース制御部２１は、リソースの制御対象のプロセス３０について、グループ作成と、グループ削除と、グループへのプロセス３０の登録と、プロセス３０の所属先のグループの変更と、メモリ使用量の制限と、メモリ使用量の収集とを実施するためのインタフェースである。
【００１７】
管理部４０は、機能構成要素として、プロセス制御部４１と、停止検出部４２と、リソース割当部４３とを備える。
プロセス制御部４１は、プロセスのグループの作成といったグループに関する処理等をリソース制御部２１に対して要求する。停止検出部４２は、リソースの制御対象の複数のプロセス３０から、停止したプロセス３０を検出する。リソース割当部４３は、制御対象のプロセス３０毎に使用可能なメモリ領域のサイズを割り当てる。
【００１８】
＊＊＊動作の説明＊＊＊
図３から図６を参照して、実施の形態１に係るリソース制御装置１０の動作を説明する。
実施の形態１に係るリソース制御装置１０の動作は、実施の形態１に係るリソース制御方法に相当する。また、実施の形態１に係るリソース制御装置１０の動作は、実施の形態１に係るリソース制御プログラムの処理に相当する。
【００１９】
図３を参照して、実施の形態１に係るリソース制御装置１０の全体的な動作を説明する。
（ステップＳ１０１：テーブル生成処理）
プロセス制御部４１は、リソースの制御対象である複数のプロセス３０を管理するための依存管理テーブル５１を生成する。プロセス制御部４１は、依存管理テーブル５１をストレージ１３に書き込む。
図４に示すように、依存管理テーブル５１は、プロセス３０毎に、起動時刻と、依存プロセスとを記憶する。起動時刻は、互いに比較演算でき、絶対時刻が分かる形式の時刻である。具体例としては、起動時刻は、ＵＮＩＸ（登録商標）  ｔｉｍｅである。依存プロセスは、対象のプロセス３０が動作するために必要なプロセス３０である。つまり、依存プロセスが動作していない場合には、対象のプロセス３０は動作できない。例えば、Ｌｉｎｕｘ（登録商標）であれば、依存プロセスは、対象のプロセス３０の親プロセスのことである。
【００２０】
（ステップＳ１０２：グループＸ生成処理）
プロセス制御部４１は、リソース制御部２１を介して、グループＸを生成し、リソースの制御対象である複数のプロセス３０をグループＸに所属させる。
リソース割当部４３は、リソース制御部２１を介して、メモリ１２の使用量の制限値である制限値ｘをグループＸに対して設定する。制限値ｘは、グループＸが使用可能なメモリ領域のサイズよりも小さいサイズである。実施の形態１では、制限値ｘは、グループＸが使用可能なメモリ領域のサイズに１よりも小さい値α（例えば、０．９５）を乗じたサイズである。
【００２１】
（ステップＳ１０３：使用量取得処理）
プロセス制御部４１は、リソース制御部２１を介して、各プロセス３０が使用しているメモリ領域のサイズであるメモリ使用量を取得する。図５に示すように、プロセス制御部４１は、メモリ使用量を示す使用量管理テーブル５２を生成する。プロセス制御部４１は、使用量管理テーブル５２をストレージ１３に書き込む。
【００２２】
（ステップＳ１０４：停止検出処理）
停止検出部４２は、リソース制御部２１を介して、リソースの制御対象の複数のプロセス３０から、停止したプロセス３０を検出する。つまり、停止検出部４２は、グループＸに所属する複数のプロセス３０から、停止したプロセス３０を検出する。
停止検出部４２は、停止したプロセス３０が検出された場合には、処理をステップＳ１０５に進める。一方、停止検出部４２は、停止したプロセス３０が検出されなかった場合には、処理をステップＳ１０３に戻して、一定時間経過後に再びメモリ使用量を取得する。
【００２３】
（ステップＳ１０５：グループＹ生成処理）
プロセス制御部４１は、リソース制御部２１を介して、グループＸに所属するプロセス３０の数と同じ数のグループＹを生成し、各プロセス３０をそれぞれ別のグループＹに所属させる。つまり、１つのグループＹに１つのプロセス３０が所属する。
リソース割当部４３は、各グループＹを対象として、メモリ領域の使用量の制限値である制限値ｙを対象のグループＹに対して設定する。言い換えると、リソース割当部４３は、プロセス３０毎に使用可能なメモリ領域のサイズを制限値ｙとして割り当てる。制限値ｙは、ステップＳ１０４で停止したプロセスが検出された時点における、対象のグループＹに所属するプロセス３０が使用するメモリのサイズである。つまり、第２制限値は、直近のステップＳ１０３で取得された、対象のグループＹに所属するプロセス３０が使用するメモリ領域のサイズである。
【００２４】
各プロセス３０が各グループＹに移行されても、停止したプロセス３０が使用可能なメモリ領域のサイズは、停止したときに使用しているサイズと同じ制限値ｙであるため、停止したプロセス３０は停止したままになる。
【００２５】
（ステップＳ１０６：縮退運転処理）
プロセス制御部４１は、複数のグループＹから１つのグループを選択する。プロセス制御部４１は、リソース制御部２１を介して、選択したグループＹの制限値ｙを緩和した上で、選択したグループＹに所属するプロセス３０を縮退運転させる。例えば、プロセス制御部４１は、シグナル又はメッセージキューといったプロセス間通信、あるいは、共有メモリを用いて、プロセス３０が停止したことの通知を、選択したグループＹに所属するプロセス３０に送信する。プロセス３０は、通知を受信すると、メモリ不足が発生しているとして、縮退運転に移行する。
つまり、プロセス制御部４１は、選択したグループＹに対して、制限値ｙよりも大きいサイズである緩和制限値を割り当てる。緩和制限値は、直近のステップＳ１０３で取得された、対象のグループＹに所属するプロセス３０が使用するメモリ領域のサイズよりも大きいサイズである。実施の形態１では、直近のステップＳ１０３で取得された、対象のグループＹに所属するプロセス３０が使用するメモリ領域のサイズに、値αの逆数（つまり、１／α）を乗じたサイズである。
縮退運転は、不要な機能を動作させず、必要最小限の機能のみで動作する運転モードである。
【００２６】
ここで、プロセス制御部４１は、依存管理テーブル５１を参照して、依存プロセスを有するプロセス３０が存在する場合には、依存プロセスを第１に優先して選択する。また、プロセス制御部４１は、直近のステップＳ１０３で取得されたメモリ使用量が多いプロセス３０を第２に優先して選択する。つまり、プロセス制御部４１は、複数の依存プロセスが存在する場合には、メモリ使用量が多い依存プロセスを優先して選択する。
【００２７】
制限値ｙが緩和されたため、メモリ不足で停止したプロセス３０の動作を再開させることが可能になる場合がある。
【００２８】
（ステップＳ１０７：緩和判定処理）
プロセス制御部４１は、全てのグループＹに所属するプロセス３０について、ステップＳ１０６の処理が実行されたか否かを判定する。
プロセス制御部４１は、実行された場合には、処理をステップＳ１０８に進める。一方、プロセス制御部４１は、実行されていない場合には、処理をステップＳ１０６に戻して、未だ処理が実行されていないグループＹを選択する。
【００２９】
（ステップＳ１０８：グループ監視処理）
プロセス制御部４１は、全てのグループＹに所属するプロセス３０が使用するメモリ領域のサイズの合計値がステップＳ１０２で設定された制限値ｘ以下になるまで監視を行う。
【００３０】
（ステップＳ１０９：グループＹ削除処理）
プロセス制御部４１は、ステップＳ１０８で合計値が制限値ｘ以下になることが確認され不要になった全てのグループＹを削除する。
【００３１】
図６を参照して、実施の形態１に係るグループ監視処理（ステップＳ１０８）を説明する。
（ステップＳ２０１：使用量判定処理）
プロセス制御部４１は、リソース制御部２１を介して、全てのグループＹに所属するプロセス３０が使用しているメモリ領域のサイズであるメモリ使用量を取得する。そして、プロセス制御部４１は、全てのグループＹに所属するプロセス３０が使用するメモリ領域のサイズの合計値が、ステップＳ１０２で設定された制限値ｘ以下であるか否かを判定する。
プロセス制御部４１は、合計値が制限値ｘ以下である場合には、処理をステップＳ２０２に進める。一方、合計値が制限値ｘより大きい場合には、処理をステップＳ２０３に進める。
【００３２】
（ステップＳ２０２：復旧処理）
プロセス制御部４１は、リソース制御部２１を介して、全てのグループＹに所属するプロセス３０を、グループＸに移行させる。そして、プロセス制御部４１は、各プロセス３０に対して、メモリ不足が解消されたことを通知し、各プロセス３０を縮退運転ではなく通常運転で動作させる。
【００３３】
（ステップＳ２０３：停止判定処理）
停止検出部４２は、全てのグループＹに所属するプロセス３０から、停止したプロセス３０を検出する。
停止検出部４２は、停止したプロセス３０が検出された場合には、処理をステップＳ２０４に進める。一方、停止検出部４２は、停止したプロセス３０が検出されなかった場合には、処理をステップＳ２０１に戻して、一定時間経過後に再びメモリ使用量を取得する。
【００３４】
（ステップＳ２０４：再起動処理）
プロセス制御部４１は、リソース制御部２１を介して、ステップＳ２０３で検出された停止したプロセス３０を再起動させる。そして、プロセス制御部４１は、処理をステップＳ２０１に戻して、一定時間経過後に再びメモリ使用量を取得する。
【００３５】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係るリソース制御装置１０は、使用可能なメモリ領域の残量が無くなる前に、使用可能なメモリ領域をプロセス３０毎に分離して割り当て、各プロセス３０を縮退運転させる。これにより、各プロセス３０のメモリ領域の使用量を抑制させつつ、メモリ領域の使用量が異常に増加したプロセス３０とは無関係なプロセス３０を縮退運転により継続動作させることが可能である。また、異常が発生したプロセス３０については、使用可能なメモリ領域のサイズを大きく割り当てることにより、動作を再開させることが可能である。
プロセス３０を継続動作させることにより、システムの可用性が向上する。また、プロセス３０毎に閾値及び対処方法を事前に設定する必要がなく、導入が容易である。
【００３６】
実施の形態２．
実施の形態２は、各プロセス３０が使用するメモリ領域のサイズをログデータとして出力する点が実施の形態１と異なる。実施の形態２では、この異なる点を説明し、同一の点については説明を省略する。
【００３７】
＊＊＊構成の説明＊＊＊
図７を参照して、実施の形態２に係るリソース制御装置１０のソフトウェア構成を説明する。
リソース制御装置１０は、管理部４０がログ出力部４４を備える点が図２に示すリソース制御装置１０と異なる。
【００３８】
＊＊＊動作の説明＊＊＊
図３と図６と図８と図９とを参照して、実施の形態２に係るリソース制御装置１０の動作を説明する。
実施の形態２に係るリソース制御装置１０の動作は、実施の形態２に係るリソース制御方法に相当する。また、実施の形態２に係るリソース制御装置１０の動作は、実施の形態２に係るリソース制御プログラムの処理に相当する。
【００３９】
図３のステップＳ１０３と、図６のステップＳ２０１とにおいて、ログ出力部４４は、取得されたメモリ使用量をログデータとして出力する。
実施の形態２では、図８に示すように、ログ出力部４４は、取得されたメモリ使用量を使用量ログテーブル５３に追記する。図８では、使用量ログテーブル５３は、取得時刻毎に、各プロセス３０のメモリ使用量と、メモリ使用量毎の比率とを記憶する。メモリ使用量毎の比率は、メモリ使用量をＡ１とＡ２とＡ３との３つのレベルに分類し、各レベルに該当するメモリ使用量のプロセス３０の数を表している。つまり、図８の１行目のレコードであれば、メモリ使用量毎の比率は、４：０：０なので、レベルＡ１に該当するプロセス３０の数が４であり、レベルＡ２とＡ３とに該当するプロセス３０の数は０であることを表している。ここでは、レベルＡ１は、メモリ使用量が、制限値ｙ以下の場合である。レベルＡ２は、メモリ使用量が、制限値ｙより多く、かつ、緩和制限値以下の場合である。レベルＡ３は、メモリ使用量が、緩和制限値より多い場合である。
【００４０】
図３のステップＳ１０２とステップＳ１０５とステップＳ１０６と、図６のステップＳ２０２とステップＳ２０３とステップＳ２０４とにおいて、ログ出力部４４は、実施した操作をログデータとして出力する。なお、ログ出力部４４は、各ステップにおいて、複数回ログデータを出力してもよい。
実施の形態２では、図９に示すように、ログ出力部４４は、実施した操作を操作履歴テーブル５４に追記する。図９では、操作履歴テーブル５４は、時刻毎に、操作種類と、操作内容と、結果とを記憶する。操作種類は、実施された操作の分類である。操作種類は、グループ作成と、グループ削除と、グループへのプロセス３０の登録と、プロセス３０の所属先のグループの変更と、メモリ使用量の制限と、メモリ使用量の収集と、通知と、再起動と等である。操作内容は、実施された操作の具体的な内容である。結果は、実施された操作が成功したか失敗したかを示す。結果は、オペレーティングシステム２０及びリソース制御部２１に対する要求の結果である。なお、結果は、操作が失敗した場合には、原因を示すエラー番号を含んでもよい。
【００４１】
＊＊＊実施の形態２の効果＊＊＊
以上のように、実施の形態２に係るリソース制御装置１０は、各時点において、メモリ使用量と実施された操作とをログデータとして出力する。これにより、メモリ不足が発生した場合に、原因がプロセス３０にあるか環境にあるかといったことを特定可能である。また、障害のレベルの解析も可能である。
【００４２】
実施の形態３．
実施の形態３は、ガーベージコレクタを優先して縮退運転を開始させる点が実施の形態１，２と異なる。実施の形態３では、この異なる点を説明し、同一の点については説明を省略する。
実施の形態３では、実施の形態１に機能を追加した場合を説明するが、実施の形態２に機能を追加することも可能である。
【００４３】
＊＊＊構成の説明＊＊＊
図１０を参照して、実施の形態３に係るリソース制御装置１０のソフトウェア構成を説明する。
リソース制御装置１０は、ガーベージコレクタ推定部４５を備える点が図２に示すリソース制御装置１０と異なる。
【００４４】
＊＊＊動作の説明＊＊＊
図１１を参照して、実施の形態３に係るリソース制御装置１０の動作を説明する。
実施の形態３に係るリソース制御装置１０の動作は、実施の形態３に係るリソース制御方法に相当する。また、実施の形態３に係るリソース制御装置１０の動作は、実施の形態３に係るリソース制御プログラムの処理に相当する。
【００４５】
ステップＳ３０１からステップＳ３０５の処理は、図３のステップＳ１０１からステップＳ１０５の処理と同じである。ステップＳ３０８からステップＳ３１０の処理は、図３のステップＳ１０７からステップＳ１０９の処理と同じである。
【００４６】
（ステップＳ３０６：ガーベージコレクタ推定処理）
ガーベージコレクタ推定部４５は、全てのグループＹに所属するプロセス３０のうちガーベージコレクタを推定する。具体的には、ガーベージコレクタ推定部４５は、依存管理テーブル５１を参照して、起動時刻が最も早いプロセス３０をガーベージコレクタと推定する。
プロセス制御部４１は、ガーベージコレクタであるプロセス３０が所属するグループＹの制限値ｙを緩和した上で、ガーベージコレクタであるプロセス３０を縮退運転させる。
【００４７】
プロセス制御部４１は、ガーベージコレクタの動作が完了した、又は、ガーベージコレクタが未動作であることを示す通知を受信した場合と、縮退運転させたプロセス３０が停止した場合とに、処理をステップＳ３０７に進める。
【００４８】
（ステップＳ３０７：縮退運転処理）
プロセス制御部４１は、ステップＳ３０６で縮退運転させたプロセス３０が所属するグループＹ以外のグループＹから１つのグループを選択する。そして、プロセス制御部４１は、リソース制御部２１を介して、選択したグループＹの制限値ｙを緩和した上で、選択したグループＹに所属するプロセス３０を縮退運転させる。
【００４９】
＊＊＊実施の形態３の効果＊＊＊
以上のように、実施の形態３に係るリソース制御装置１０は、ガーベージコレクタであるプロセス３０を推定し、ガーベージコレクタであるプロセス３０を優先して、縮退運転させる。ガーベージコレクタが実行されれば、メモリが解放され、メモリ不足が解消する。そのため、ガーベージコレクタであるプロセス３０を優先して運転させることにより、早期にメモリ不足を解消させることが可能である。
【符号の説明】
【００５０】
１０  リソース制御装置、１１  プロセッサ、１２  メモリ、１３  ストレージ、１４  通信インタフェース、２０  オペレーティングシステム、２１  リソース制御部、３０  プロセス、４０  管理部、４１  プロセス制御部、４２  停止検出部、４３  リソース割当部、４４  ログ出力部、４５  ガーベージコレクタ推定部。
【図１】
2019167157.tif 000003
【図２】
2019167157.tif 000004
【図３】
2019167157.tif 000005
【図４】
2019167157.tif 000006
【図５】
2019167157.tif 000007
【図６】
2019167157.tif 000008
【図７】
2019167157.tif 000009
【図８】
2019167157.tif 000010
【図９】
2019167157.tif 000011
【図１０】
2019167157.tif 000012
【図１１】
2019167157.tif 000013
【国際調査報告】
2019167157.tif 000014
2019167157.tif 000015