(57)【要約】【課題】ＶＭＭを用いる場合に稼動中の仮想機械に割り当てられたメモリの消費電力を削減することができない。【解決手段】本発明によるメモリ消費電力削減システムは、ＶＭＭを用いて仮想マシンを制御する場合に、物理的な情報処理装置が備える複数の物理メモリの領域を仮想マシンのプロセスに割り当てるメモリ割り当て手段と、プロセスが終了して、メモリ割り当て手段がプロセスに割り当てた物理メモリの領域を開放すると、メモリコンパクションを実行するメモリコンパクション手段と、メモリコンパクション手段がメモリコンパクションを実行した結果、未使用状態の物理メモリが発生すると、当該未使用状態となった物理メモリの通電を停止する制御を行う電源制御手段とを含むことを特徴とする。【選択図】図５
2010211644.tif 000002
【特許請求の範囲】
【請求項１】
ＶＭＭを用いて仮想マシンを制御する場合に、物理的な情報処理装置が備える複数の物理メモリの領域を前記仮想マシンのプロセスに割り当てるメモリ割り当て手段と、
前記プロセスが終了して、前記メモリ割り当て手段が前記プロセスに割り当てた前記物理メモリの領域を開放すると、メモリコンパクションを実行するメモリコンパクション手段と、
前記メモリコンパクション手段がメモリコンパクションを実行した結果、未使用状態の物理メモリが発生すると、当該未使用状態となった物理メモリの通電を停止する制御を行う電源制御手段とを
含むことを特徴とするメモリ消費電力削減システム。
【請求項２】
プロセスの動作履歴を示す動作履歴情報を記憶するプロセス情報記憶手段と、
前記プロセス情報記憶手段が記憶する前記動作履歴情報に基づいて、プロセスが長命であるか短命であるかを判定するプロセス判定手段を含み、
メモリ割り当て手段は、前記プロセス判定手段の判定結果に基づいて、前記長命なプロセスと、前記短命なプロセスとを区別して物理メモリの領域を割り当て、
メモリコンパクション手段は、長命なプロセスの場合と短命なプロセスの場合とで異なる頻度でメモリコンパクションを実行する
請求項１記載のメモリ消費電力削減システム。
【請求項３】
プロセス判定手段は、生成されるプロセスの平均起動時間と、前記プロセスと異なる他の全てのプロセスの平均起動時間とを比較し、前記プロセスの平均起動時間の方が長ければ、長命なプロセスであると判定し、前記プロセスの平均起動時間の方が短ければ、短命なプロセスであると判定する
請求項２記載のメモリ消費電力削減システム。
【請求項４】
仮想マシンにおいてプロセスが生成される際に、プロセス情報記憶手段が記憶する動作履歴情報に基づいて、前記プロセスが今後要求するメモリ量を予測して算出するメモリ要求量算出手段と、
前記メモリ要求量算出手段が算出したメモリ量が、当該情報処理装置において稼動中の物理メモリの空き容量以下であるか否かを判定する空き容量判定手段とを含み、
電源制御手段は、前記空き容量判定手段が空き容量以下であると判定し、かつ、当該情報処理装置に停止状態の物理メモリが存在する場合に、前記停止状態の物理メモリの通電を開始する制御を行う
請求項１から請求項３のうちのいずれか１項に記載のメモリ消費電力削減システム。
【請求項５】
メモリコンパクション手段は、メモリ使用量が最も少ない物理メモリを特定し、前記物理メモリの使用量が他の物理メモリの空き容量より少なければ、前記他の物理メモリに前記物理メモリが保持する情報を全て移動する
請求項１から請求項４のうちのいずれか１項に記載のメモリ消費電力削減システム。
【請求項６】
ＶＭＭを用いて仮想マシンを制御する場合に、物理的な情報処理装置が備える複数の物理メモリの領域を前記仮想マシンのプロセスに割り当てるメモリ割り当てステップと、
前記プロセスが終了して、前記プロセスに割り当てた前記物理メモリの領域を開放すると、メモリコンパクションを実行するメモリコンパクションステップと、
メモリコンパクションを実行した結果、未使用状態の物理メモリが発生すると、当該未使用状態となった物理メモリの通電を停止する制御を行う電源制御ステップとを
含むことを特徴とするメモリ消費電力削減方法。
【請求項７】
仮想マシンにおいてプロセスが生成される際に、前記プロセスの動作履歴を示す動作履歴情報に基づいて、前記プロセスが長命であるか短命であるかを判定するプロセス判定ステップを含み、
メモリ割り当てステップで、判定結果に基づいて、前記長命なプロセスと、前記短命なプロセスとを区別して物理メモリの領域を割り当て、
メモリコンパクションステップで、長命なプロセスの場合と短命なプロセスの場合とで異なる頻度でメモリコンパクションを実行する
請求項６記載のメモリ消費電力削減方法。
【請求項８】
コンピュータに、
ＶＭＭを用いて仮想マシンを制御する場合に、物理的な情報処理装置が備える複数の物理メモリの領域を前記仮想マシンのプロセスに割り当てるメモリ割り当て処理と、
前記プロセスが終了して、前記プロセスに割り当てた前記物理メモリの領域を開放すると、メモリコンパクションを実行するメモリコンパクション処理と、
メモリコンパクションを実行した結果、未使用状態の物理メモリが発生すると、当該未使用状態となった物理メモリの通電を停止する制御を行う電源制御処理とを
実行させるためのメモリ消費電力削減プログラム。
【請求項９】
プロセスの動作履歴を示す動作履歴情報を記憶する記憶手段を備えたコンピュータに、
仮想マシンにおいてプロセスが生成される際に、前記動作履歴情報に基づいて、前記プロセスが長命であるか短命であるかを判定するプロセス判定処理を実行させ、
メモリ割り当て処理で、判定結果に基づいて、前記長命なプロセスと、前記短命なプロセスとを区別して物理メモリの領域を割り当てる処理を実行させ、
メモリコンパクション処理で、長命なプロセスの場合と短命なプロセスの場合とで異なる頻度でメモリコンパクションを実行させる
請求項８記載のメモリ消費電力削減プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＶＭＭを用いる場合にメモリの消費電力を削減するメモリ消費電力削減システム、メモリ消費電力削減方法、及びメモリ消費電力削減プログラムに関する。
【背景技術】
【０００２】
データセンターのランニングコストのうち電気料金が占める割合が高い。原因の１つとして、一般的なサーバ装置では、メモリの使用率が低くても常にメモリが電力を消費していることが挙げられる。そのため、エネルギー効率の観点からも、サーバ装置の電力消費量の削減を行う必要がある。
【０００３】
このような、メモリの電源を管理する装置として、例えば、特許文献１には、メモリ領域を複数のバンクに分割し、節電制御を行う装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２６２４５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された装置では、装置上で動作する仮想マシンが停止した際に、全メモリ領域が未使用の状態にあるメモリバンクを特定し、該当するメモリバンクへの節電制御を行う。しかし、仮想マシンが停止した場合に処理が実行されるに過ぎず、稼動中の仮想マシンに割り当てられたメモリの消費電力を削減することはできない。
【０００６】
そこで、本発明は、ＶＭＭを用いる場合に仮想マシンが稼動中であってもメモリの消費電力を削減することができるメモリ消費電力削減システム、メモリ消費電力削減方法及びメモリ消費電力削減プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明によるメモリ消費電力削減システムは、ＶＭＭを用いて仮想マシンを制御する場合に、物理的な情報処理装置が備える複数の物理メモリの領域を仮想マシンのプロセスに割り当てるメモリ割り当て手段と、プロセスが終了して、メモリ割り当て手段がプロセスに割り当てた物理メモリの領域を開放すると、メモリコンパクションを実行するメモリコンパクション手段と、メモリコンパクション手段がメモリコンパクションを実行した結果、未使用状態の物理メモリが発生すると、当該未使用状態となった物理メモリの通電を停止する制御を行う電源制御手段とを含むことを特徴とする。
【０００８】
本発明によるメモリ消費電力削減方法は、ＶＭＭを用いて仮想マシンを制御する場合に、物理的な情報処理装置が備える複数の物理メモリの領域を仮想マシンのプロセスに割り当てるメモリ割り当てステップと、プロセスが終了して、プロセスに割り当てた物理メモリの領域を開放すると、メモリコンパクションを実行するメモリコンパクションステップと、メモリコンパクションを実行した結果、未使用状態の物理メモリが発生すると、当該未使用状態となった物理メモリの通電を停止する制御を行う電源制御ステップとを含むことを特徴とする。
【０００９】
本発明によるメモリ消費電力削減プログラムは、コンピュータに、ＶＭＭを用いて仮想マシンを制御する場合に、物理的な情報処理装置が備える複数の物理メモリの領域を仮想マシンのプロセスに割り当てるメモリ割り当て処理と、プロセスが終了して、プロセスに割り当てた物理メモリの領域を開放すると、メモリコンパクションを実行するメモリコンパクション処理と、メモリコンパクションを実行した結果、未使用状態の物理メモリが発生すると、当該未使用状態となった物理メモリの通電を停止する制御を行う電源制御処理とを実行させるためのものである。
【発明の効果】
【００１０】
本発明によれば、仮想マシンが稼動中であってもメモリの消費電力を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明によるメモリ消費電力削減システムの構成の一例を示すブロック図である。
【図２】メモリ消費電力削減システムが実行する処理例を示す流れ図である。
【図３】メモリ消費電力削減システムが実行する処理例を示す流れ図である。
【図４】物理メモリ管理部２１１によるメモリ・コンパクションの処理例を示す説明図である。
【図５】メモリ消費電力削減システムの最小の構成例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。図１は、本発明によるメモリ消費電力削減システムの構成の一例を示すブロック図である。図１に示すように、物理サーバ１０は、複数の物理メモリ１０１〜１０８と、物理メモリの電源を制御するメモリ電源制御部１１１とを備えている。物理サーバ１０は、具体的には、プログラムに従って動作するサーバ装置等の情報処理装置によって実現される。
【００１３】
なお、本実施形態では、ＶＭＭやＶＭＭに含まれる手段が実行する等の表現を用いるが、具体的には、物理サーバ１０のＣＰＵがプログラムであるＶＭＭに従って、ハードディスク装置等のハードウェア資源を用いて、処理を実行することである。
【００１４】
図１に示すように、物理サーバ１０には、ＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍａｎａｇｅｒ）２０が搭載されている。ＶＭＭ２０は、具体的には、物理サーバ１０が搭載するプログラムによって実現される。ＶＭＭ２０は、物理サーバ１０が備えている資源（例えば、物理メモリ等）を分割・管理する機能を備えている。また、ＶＭＭ２０は、物理サーバ１０のリソースを仮想化した上で実現されるバーチャルマシン（ＶＭ）３０を制御する機能を備えている。
【００１５】
図１に示すように、ＶＭＭ２０は、仮想メモリ２０１〜２０２、物理メモリ管理部１１１、メモリ割り当てテーブル２１２及びアドレス変換テーブル２１３を含む。
【００１６】
仮想メモリは、ＶＭＭ２０によって物理サーバ１０が備えるリソースとしての物理メモリを用いて実現される仮想的なメモリである。本実施形態では、ＯＳ４０は、物理サーバ１０が備える物理メモリのアドレス空間を直接指定して物理メモリにアクセスするのではなく、ＶＭＭ２０が管理する仮想メモリの仮想的なアドレス空間を指定して物理メモリにアクセスする。この場合、ＶＭＭ２０は、指定された仮想的なアドレス空間を物理的なアドレス空間に変換し、ＯＳ４０による物理メモリへのアクセスを仲介する。
【００１７】
物理メモリ管理部２１１は、物理メモリ１０１〜１０８を、短命なプロセス用と長命なプロセス用とに分けて管理する機能を備えている。物理メモリ管理部２１１は、物理メモリの使用量が低下したときに、物理メモリが記憶するページを他の物理メモリに移動し（以下、メモリ・コンパクション）整理する処理を実行する機能を備えている。
【００１８】
物理メモリ管理部２１１は、短命なプロセス用の物理メモリと長命なプロセス用のメモリとを分けて、メモリ・コンパクションを実行する。物理メモリ管理部２１１は、長命なプロセス用の物理メモリのメモリ・コンパクションを低頻度で実行する。例えば、物理メモリ管理部２１１は、通常、短命なプロセス用のメモリ・コンパクションのみを実行するようにし、長命なプロセス用のメモリ・コンパクションを実行しないようにすればよい。また、物理メモリ管理部２１１は、コンパクションの結果、未使用の物理メモリができた場合に、その物理メモリの通電をメモリ電源制御部１１１に停止させる機能を備えている。
【００１９】
メモリ割り当てテーブル２１２は、仮想メモリのアドレスに割り当てられたプロセスを示す情報を含むテーブルである。なお、メモリ割り当てテーブル２１２は、具体的には、物理サーバ１０が備える光ディスク装置や磁気ディスク装置、メモリ等の記憶装置によって実現される。
【００２０】
アドレス変換テーブル２１３は、仮想メモリのアドレスと物理メモリのアドレスとを対応させるための情報を含むテーブルである。なお、アドレス変換テーブル２１３は、具体的には、物理サーバ１０が備える光ディスク装置や磁気ディスク装置、メモリ等の記憶装置によって実現される。アドレス変換テーブル２１３は、短命と長命の物理メモリを区別してアドレスを対応させて含む。
【００２１】
また、物理サーバ１０は、オペレーティングシステム（ＯＳ）を搭載している。ＯＳ４０は、具体的には、物理サーバ１０が搭載するプログラムによって実現される。図１に示すように、ＯＳ４０は、プロセス管理部４０１、プロセス統計情報記憶部４０２及びメモリ管理部４０３を含む。
【００２２】
なお、本実施形態では、ＯＳやＯＳに含まれる手段が実行する等の表現を用いるが、具体的には、物理サーバ１０のＣＰＵがプログラムであるＯＳに従って、ハードディスク装置等のハードウェア資源を用いて、処理を実行することである。
【００２３】
プロセス管理部４０１は、ＯＳ上で動作するアプリケーション（以下、プロセス）の平均起動時間及び平均メモリ使用量を、プロセス統計情報記憶部４０２に記憶させる。
【００２４】
プロセス統計情報記憶部４０２は、ＯＳ４０によって管理され、各プロセスの平均起動時間や平均メモリ使用量等の統計情報を格納する。なお、プロセス統計情報記憶部４０２は、具体的には、物理サーバ１０が備える光ディスクや磁気ディスク等の記憶装置によって実現される。
【００２５】
メモリ管理部４０３は、ＶＭ３０において用いるメモリを管理する機能を備えている。メモリ管理部４０３は、プロセス統計情報記憶部４０２が記憶する統計情報に基づいて、プロセスを短命なプロセスと長命なプロセスとに分類する機能を備えている。
【００２６】
なお、ＯＳ４１は、ＯＳ４０と、ＶＭ３１は、ＶＭ３０と同様の機能を備えているので、説明を省略する。また、本実施形態では、ＶＭ３０とＶＭ３１のように、２つのＶＭが仮想的に生成されているが、２つに限らず、例えば３つ以上作成してもよい。
【００２７】
次に、メモリ消費電力削減システムの動作について説明する。図２〜３は、メモリ消費電力削減システムが実行する処理例を示す流れ図である。
【００２８】
図２は、ＯＳ４０上で動作するプロセスから、メモリ割り当て要求が実行された場合のＯＳ及びＶＭＭの処理例を示す流れ図である。
【００２９】
１．ＯＳ４０の処理
まず、図２（ａ）に示すＯＳ４０の処理について説明する。
【００３０】
（ア）ＯＳ４０上で動作するプロセスがメモリ割り当て要求を実行すると、メモリ管理部４０３は、メモリ割り当て要求を実行したプロセスを示す情報を、プロセス管理部４０１から取得（入力）する（ステップＳ１１）。具体的には、メモリ管理部４０３は、プロセス管理部４０１が、プロセス統計情報記憶部４０２から取得（抽出）した、該当するプロセスの、１）平均起動時間と、２）平均メモリ使用量と、３）プロセスの起動回数とを取得（入力）する。
【００３１】
（イ）次いで、メモリ管理部４０３は、プロセス管理部４０１が、プロセス統計情報記憶部４０２から取得（抽出）した、４）全プロセスの平均起動時間を取得（入力）する（ステップＳ１２）。
【００３２】
（ウ）次いで、メモリ管理部４０３は、取得（入力）した１）平均起動時間と４）全プロセスの平均起動時間とを比較する。そして、メモリ管理部４０３は、１）平均起動時間が４）全プロセスの平均起動時間より長ければ、長命なプロセスであると判断する。また、メモリ管理部４０３は、１）平均起動時間が４）全プロセスの平均起動時間より短ければ、短命なプロセスであると判断する（ステップＳ１３）。
【００３３】
（エ）次いで、メモリ管理部４０３は、該当するプロセスの２）平均メモリ使用量と割り当て済みのメモリ使用量とから、残りのメモリ要求量を予測（算出）する（ステップＳ１４）。
【００３４】
（オ）次いで、メモリ管理部４０３は、ＶＭＭ２０に対して物理メモリを要求する処理を実行する（ステップＳ１５）。このとき、メモリ管理部４０３は、メモリ割り当てのヒント情報として、プロセスの世代（長命なプロセスか短命なプロセスか）を示す情報と、予測残りメモリ要求量を示す情報とを、ＶＭＭ２０に渡す（出力する）。
【００３５】
２．ＶＭＭの処理
次に、図２（ｂ）に示すＶＭＭの処理について説明する。
【００３６】
（ア）物理メモリ管理部２１１は、ＯＳ４０から渡された（入力した）プロセスの世代を示す情報に基づいて、プロセスに割り当てる物理メモリを決定する（ステップＳ２１）。具体的には、物理メモリ管理部２１１は、プロセスの世代が短命であれば、短命なプロセス用の物理メモリを選択し、プロセスの世代が長命であれば、長命なプロセス用の物理メモリを選択する。
【００３７】
（イ）次いで、物理メモリ管理部２１１は、割り当て先の物理メモリの空き容量の合計を確認（算出）し、割り当て可能な領域があるか否かを判定する（ステップＳ２２）。
【００３８】
ステップＳ２２において、割り当て可能でないと判定すると、物理メモリ管理部２１１は、利用していない物理メモリが存在するか否かを判定する（ステップＳ２７）。
【００３９】
ステップＳ２７において、利用していない物理メモリが存在すると判定すると、物理メモリ管理部２１１は、該当する物理メモリの通電をメモリ電源制御部１１１に再開させる（ステップＳ２８）。その後、物理メモリ管理部２１１は、処理をステップＳ２２に移行する。
【００４０】
ステップＳ２７において、利用していない物理メモリが存在しないと判定すると、物理メモリ管理部２１１は、ＯＳ４０にページ割り当て処理を失敗した旨の通知を行う（ステップＳ２９）。その後、物理メモリ管理部２１１は、処理を終了する。
【００４１】
（ウ）ステップＳ２２において、割り当て可能であると判定すると、物理メモリ管理部２１１は、ＯＳ４０が指定したサイズのメモリブロックを確保する（ステップＳ２３）。具体的には、物理メモリ管理部２１１は、メモリ割り当てテーブル２１２が含む情報を更新し、メモリ割り当てテーブル２１２にメモリ領域とメモリ領域に割り当てたプロセスとを対応付けて記憶する。長命のプロセスである場合には、アドレス変換テーブル２１３に基づいて、長命の物理メモリに対応する仮想メモリの領域を特定し、その長命のプロセスを割り当てる。一方、短命のプロセスである場合には、アドレス変換テーブル２１３に基づいて、短命の物理メモリに対応する仮想メモリの領域を特定し、その短命のプロセスを割り当てる。
【００４２】
（エ）次いで、物理メモリ管理部２１１は、ＯＳ４０から渡された（入力した）予測残りメモリ要求量を示す情報に基づいて、予測残りメモリ要求量が物理メモリの空き容量以下であるか否か判定する（ステップＳ２４）。
【００４３】
ステップＳ２４において、物理メモリの空き容量以下であると判定すると、物理メモリ管理部２１１は、利用していない物理メモリが存在するか否かを判定する（ステップＳ２５）。一方、ステップＳ２４において、物理メモリの空き容量以下でないと判定すると、物理メモリ管理部２１１は、処理を終了する。
【００４４】
ステップＳ２５において、利用していない物理メモリが存在すると判定すると、物理メモリ管理部２１１は、今後のメモリ割り当て要求に備えて、該当する物理メモリの通電を事前にメモリ電源制御部１１１に再開させる（ステップＳ２６）。一方、ステップＳ２５において、利用していない物理メモリが存在しないと判定すると、物理メモリ管理部２１１は、処理を終了する。
【００４５】
次に、プロセスが終了すると、メモリ消費電力削減システムは、該当するプロセスに割り当てられたメモリを開放する処理を実行する。以下、その処理について、図３を用いて説明する。
【００４６】
１．ＯＳ４０の処理
まず、図３（ａ）に示すＯＳ４０の処理について説明する。
【００４７】
（ア）プロセスが終了すると、プロセスに割り当てられたメモリを開放するために、プロセス管理部４０１は、該当するプロセスの起動時間及び最大メモリ使用量を取得する。また、プロセス管理部４０１は、プロセス統計情報記憶部４０２から、該当するプロセスの１）平均起動時間と、２）平均メモリ使用量と、３）プロセスの起動回数を取得（抽出）する（ステップＳ３１）。
【００４８】
（イ）次いで、プロセス管理部４０１は、プロセス統計情報記憶部４０２から、４）全プロセスの平均起動時間を取得（抽出）する（ステップＳ３２）。
【００４９】
（ウ）次いで、メモリ管理部４０３は、該当するプロセスの起動時間と、４）全プロセスの平均起動時間とを比較する。そして、メモリ管理部４０３は、該当するプロセスの起動時間が、４）全プロセスの平均起動時間より長ければ、長命なプロセスと判断する。一方、メモリ管理部４０３は、該当するプロセスの起動時間が、４）全プロセスの平均起動時間より短ければ、短命なプロセスと判断する（ステップＳ３３）。
【００５０】
（エ）次いで、プロセス管理部４０１は、該当するプロセスの過去の平均起動時間及び平均メモリ使用量と、今回の起動時間及び最大メモリ使用量とに基づいて、平均値を計算し、プロセス統計情報記憶部４０２に記憶させる（ステップＳ３４）。
【００５１】
（オ）次いで、プロセス管理部４０１は、全プロセスの平均起動時間を更新し、プロセス統計情報記憶部４０２に記憶させる（ステップＳ３５）。
【００５２】
（カ）次いで、メモリ管理部４０３は、ＶＭＭ２０に対して、プロセスに割り当てられた物理メモリの開放を要求する処理を実行する（ステップＳ３６）。このとき、メモリ管理部４０３は、メモリ割り当てのヒント情報として、プロセスの世代（長命なプロセスか短命なプロセスか）を示す情報を、ＶＭＭに渡す（出力する）。
【００５３】
２．  ＶＭＭ２０の処理
次に、図３（ｂ）に示す、ＶＭＭ２０の処理について説明する。
【００５４】
（ア）メモリ管理部４０３が、ＶＭＭ２０の処理プロセスの世代を指定し、メモリを解放する要求を実行すると、物理メモリ管理部２１１は、要求に基づいて、指定されたメモリブロックを開放する（ステップＳ４１）。具体的には、物理メモリ管理部２１１は、メモリ割り当てテーブル２１２が含む情報を更新し、メモリ割り当てテーブル２１２から、メモリ領域に割り当てられたプロセスを示す情報を消去する。
【００５５】
（イ）次いで、物理メモリ管理部２１１は、メモリ管理部４０３から渡された（入力した）プロセスの世代を示す情報に基づいて、メモリ・コンパクション対象の物理メモリを決定する（ステップＳ４２）。
【００５６】
（ウ）次いで、物理メモリ管理部２１１は、世代別の物理メモリの空き容量の合計を確認（算出）する。そして、物理メモリ管理部２１１は、空き容量が閾値を超えるか否かを判定する（ステップＳ４３）。
【００５７】
（エ）ステップＳ４３において、閾値を超えると判定すると、物理メモリ管理部２１１は、任意の物理メモリで利用中のページを、他の物理メモリに移動する（メモリ・コンパクション）（ステップＳ４４）。一方、ステップＳ４３において、閾値を超えないと判定すると、物理メモリ管理部２１１は、処理を終了する。
【００５８】
（オ）次いで、物理メモリ管理部２１１は、利用していない物理メモリを確保できるか否かを判定する（ステップＳ４５）
【００５９】
（カ）ステップＳ４５において、利用していない物理メモリを確保できると判定すると、物理メモリ管理部２１１は、メモリ電源制御部１１１に未使用の物理メモリの通電を停止するように指示（要求を送信）する。すると、メモリ電源制御部１１１は、メモリ管理部２１１の指示（要求）に基づいて、該当する未使用の物理メモリの通電をメモリ電源制御部１１１に停止させる（ステップＳ４６）。その後、物理メモリ管理部２１１は、処理を終了する。
【００６０】
一方、ステップＳ４５において、利用していない物理メモリを確保できないと判定すると、物理メモリ管理部２１１は、処理を終了する。
【００６１】
最後に、物理メモリ管理部２１１が実行するメモリ・コンパクションの処理について図４を用いて説明する。図４は、物理メモリ管理部２１１によるメモリ・コンパクションの処理例を示す説明図である。
【００６２】
物理メモリ管理部２１１は、メモリ・コンパクション対象世代の物理メモリのうち、メモリ使用量が一番少ない物理メモリを取得（特定）する（ステップＳ５１）。
【００６３】
次いで、物理メモリ管理部２１１は、ページを移動する物理メモリの使用量と、移動先候補の物理メモリの空き容量とを比較する。そして、物理メモリ管理部２１１は、ページを移動する物理メモリの使用量が、移動先候補の物理メモリの空き容量以下であるか否かを判定する（ステップＳ５２）。
【００６４】
ステップＳ５２において、移動先候補の物理メモリの空き容量以下であると判定すると、物理メモリ管理部２１１は、物理メモリが記憶するページを移動する（ステップＳ５３）。すなわち、メモリ使用量が一番少ない物理メモリが記憶する情報を特定した移動先の物理メモリに移動させる。ここで、物理メモリ管理部２１１は、プロセスの世代を判断し、プロセスが短命であった場合のみ処理を実行する。又は、物理メモリ管理部２１１は、プロセスが長命であった場合に、処理を実行する頻度を下げるようにしてもよい。
【００６５】
次いで、物理メモリ管理部２１１は、移動したページのアドレス変換テーブルを更新する（ステップＳ５４）。
【００６６】
ステップＳ５２において、移動先候補の物理メモリの空き容量以下でないと判定する場合、又はステップＳ５４の処理が終了した場合には、物理メモリ管理部２１１は、全てのメモリについてチェックを完了したか否かを判定する（ステップＳ５５）。
【００６７】
ステップＳ５５において、完了していないと判定すると、物理メモリ管理部２１１は、処理をステップＳ５２に移行する。一方、ステップＳ５５において、完了していると判定すると、物理メモリ管理部２１１は、処理を終了する。
【００６８】
以上のように、本実施形態では、ＶＭにおいて生成されたプロセスが終了すると、物理メモリ管理部２１１は、該当するプロセスに割り当てられた物理メモリの領域を開放し、メモリコンパクションを実行する。そして、物理メモリ管理部２１１は、メモリ・コンパクションを実行し、実行した結果、未使用となった物理メモリの通電を停止するように制御する。従って、ＶＭが稼動中であっても、メモリの消費電力を削減することができる。
【００６９】
また、本実施形態では、ＯＳとＶＭＭとが協調し、プロセスの世代別にメモリを割り当てる。そして、物理メモリ管理部２１１は、短命なプロセス用の物理メモリ領域と長命な物理メモリ領域とを分けてメモリ・コンパクションを実行する。そのため、メモリ・コンパクションのコストを削減することができる。
【００７０】
なお、本実施形態では、ＶＭＭ２０とＯＳ４０とが協調して、メモリ割り当て処理や電源管理を行っていたが、例えば、ＶＭＭ２０が、それら全ての処理を実行するようにしてもよい。例えば、ＶＭＭ２０は、ＶＭ４０，４１ごとに複数の物理メモリを仮想化し、ＯＳ４０に対して、仮想メモリ２０１、ＯＳ４１に対して仮想メモリ２０２を認識させる。すると、ＶＭＭ２０が、物理メモリの通電を停止しても、ＯＳ４０又はＯＳ４１が認識する仮想メモリの容量は変わらない。従って、ＯＳは、透過的に物理メモリの通電を制御することとなり、ＯＳ側の修正が不要となる。
【００７１】
次に、本発明によるメモリ消費電力削減システムの最小構成について説明する。図５は、メモリ消費電力削減システムの最小の構成例を示すブロック図である。図５に示すように、メモリ消費電力削減システムは、最小の構成要素として、仮想情報処理装置を生成可能な情報処理装置１を含む。また、情報処理装置１は、メモリ割り当て手段２と、メモリコンパクション手段３と、電源制御手段３とを含む。
【００７２】
図５に示す最小構成のメモリ消費電力削減システムでは、メモリ割り当て手段２は、情報処理装置１が生成する仮想情報処理装置においてプロセスが生成される際に、情報処理装置が備える物理メモリの領域をプロセスに割り当てる。そして、メモリコンパクション手段３は、プロセスが終了して、メモリ割り当て手段２がプロセスに割り当てた物理メモリの領域を開放すると、メモリコンパクションを実行する。そして、電源制御手段４は、メモリコンパクション手段３がメモリコンパクションを実行した結果、未使用となった物理メモリの通電を停止する。
【００７３】
従って、図５に示す最小構成のメモリ消費電力削減システムによれば、仮想情報処理装置が稼動中であってもメモリの消費電力を削減することができる。
【００７４】
なお、本実施形態では、以下の（１）〜（５）に示すようなメモリ消費電力削減システムシステムの特徴的構成が示されている。
【００７５】
（１）メモリ消費電力削減システムは、ＶＭＭ（例えば、ＶＭＭ２０）を用いて仮想マシン（例えば、ＶＭ３０）を制御する場合に、物理的な情報処理装置（例えば、物理サーバ１０）が備える複数の物理メモリ例えば、物理メモリ１０１）の領域を仮想マシンのプロセスに割り当てるメモリ割り当て手段（例えば、物理メモリ管理部２１１によって実現される）と、プロセスが終了して、メモリ割り当て手段がプロセスに割り当てた物理メモリの領域を開放すると、メモリコンパクションを実行するメモリコンパクション手段（例えば、物理メモリ管理部２１１によって実現される）と、メモリコンパクション手段がメモリコンパクションを実行した結果、未使用状態の物理メモリが発生すると、当該未使用状態となった物理メモリの通電を停止する制御を行う電源制御手段（例えば、物理メモリ管理部２１１及びメモリ電源制御部１１１によって実現される）とを含むことを特徴とする。
【００７６】
（２）メモリ消費電力削減システムにおいて、プロセスの動作履歴を示す動作履歴情報（例えば、１）平均起動時間など）を記憶するプロセス情報記憶手段（例えば、プロセス統計情報記憶部４０２によって実現される）と、前記プロセス情報記憶手段が記憶する前記動作履歴情報（例えば、１）平均起動時間や４）全プロセスの平均起動時間）に基づいて、プロセスが長命であるか短命であるかを判定するプロセス判定手段（例えば、メモリ管理部４０３によって実現される）を含み、メモリ割り当て手段は、前記プロセス判定手段の判定結果に基づいて、前記長命なプロセスと、前記短命なプロセスとを区別して物理メモリの領域を割り当て、メモリコンパクション手段は、長命なプロセスの場合と短命なプロセスの場合とで異なる頻度でメモリコンパクションを実行するように構成されていてもよい。
【００７７】
（３）メモリ消費電力削減システムにおいて、プロセス判定手段は、生成されるプロセスの平均起動時間（例えば、１）平均起動時間）と、プロセスと異なる他の全てのプロセスの平均起動時間（例えば、４）全プロセスの平均起動時間）とを比較し、プロセスの平均起動時間の方が長ければ、長命なプロセスであると判定し、プロセスの平均起動時間の方が短ければ、短命なプロセスであると判定するように構成されていてもよい。
【００７８】
（４）メモリ消費電力削減システムは、仮想マシンにおいてプロセスが生成される際に、プロセス情報記憶手段が記憶する動作履歴情報（例えば、２）平均メモリ使用量）に基づいて、前記プロセスが今後要求するメモリ量を予測して算出するメモリ要求量算出手段（例えば、メモリ管理部４０３によって実現される）と、前記メモリ要求量算出手段が算出したメモリ量が、当該情報処理装置において稼動中の物理メモリの空き容量以下であるか否かを判定する空き容量判定手段（例えば、物理メモリ管理部２１１によって実現される）とを含み、電源制御手段は、前記空き容量判定手段が空き容量以下であると判定し、かつ、当該情報処理装置に停止状態の物理メモリが存在する場合に、前記停止状態の物理メモリの通電を開始する制御を行うように構成されていてもよい。
【００７９】
（５）メモリ消費電力削減システムにおいて、メモリコンパクション手段は、メモリ使用量が最も少ない物理メモリを特定し、物理メモリの使用量が他の物理メモリの空き容量より少なければ、他の物理メモリに物理メモリが保持する情報を全て移動するように構成されていてもよい。
【産業上の利用可能性】
【００８０】
本発明は、サーバ装置等の消費電力を削減する用途に適用可能である。
【符号の説明】
【００８１】
１  情報処理装置
２  メモリ割り当て手段
３  メモリコンパクション手段
４  電源制御手段
１０  物理サーバ
２０  ＶＭＭ
３０，３１  ＶＭ
４０，４１  ＯＳ
１０１〜１０８  物理メモリ
１１１  メモリ電源制御部
２０１〜２０２  仮想メモリ
２１１  物理メモリ管理部
２１２  メモリ割り当てテーブル
２１３  アドレス変換テーブル
４０１  プロセス管理部
４０２  プロセス統計情報記憶部
４０３  メモリ管理部
【図１】
2010211644.tif 000003
【図２】
2010211644.tif 000004
【図３】
2010211644.tif 000005
【図４】
2010211644.tif 000006
【図５】
2010211644.tif 000007