JP5466568B2 - 資源管理方法、資源管理プログラム、および、資源管理装置 - Google Patents
資源管理方法、資源管理プログラム、および、資源管理装置 Download PDFInfo
- Publication number
- JP5466568B2 JP5466568B2 JP2010100477A JP2010100477A JP5466568B2 JP 5466568 B2 JP5466568 B2 JP 5466568B2 JP 2010100477 A JP2010100477 A JP 2010100477A JP 2010100477 A JP2010100477 A JP 2010100477A JP 5466568 B2 JP5466568 B2 JP 5466568B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- physical
- memory
- application
- application unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Stored Programmes (AREA)
Description
このような仮想計算機環境が構成される仮想計算機システムでは、メモリやディスク領域、あるいは、CPUやネットワーク装置などの物理資源が、それぞれの仮想計算機に割り当てられ、分割して管理されるため、物理計算機の物理資源の割り当てがアンバランスになってしまうことがある。
また、新たな仮想計算機の立ち上げなどに利用できる、仮想計算機に割り当てられていないメモリが不足するという状況が発生する可能性がある。
特許文献1には、OS上の複数のタスク間でメモリを有効活用する技術が開示されている。本技術は、2つのタスクで使用するメモリ領域を同一のメモリ領域にマッピングし、あるタスクではアドレスの上位から、別のタスクではアドレスの下位からメモリを割り当て、空きメモリが不足すると、一方のタスクへメモリ解放要求を出す。この技術では、一方のタスクのメモリ使用量が増えた場合に、他方のメモリ使用量が減少するという関係にある場合は有効である。
特許文献2には、ある処理プログラムAにおいてメモリが不足した場合に、ある別の処理プログラムBに対して空きメモリの解放を要求し、その空きメモリをシステムへ返却し、再度処理プログラムAに対するメモリ割当要求を行うメモリ管理方法が開示されている。
また、ストレージ装置においても、必要に応じて仮想ディスクに物理ディスク領域を追加で割り当てる技術が広く使われている。また、一度割り当てた物理領域を開放し、仮想ディスクを縮小させるための技術が、特許文献3に開示されている。
また、同様の問題は、仮想計算機へのCPU資源の割当、および、ネットワーク資源の割当においても同様に発生する。
また、非特許文献1の技術は、仮想計算機のOS上で動作するアプリケーションが確保しているが、使用していないメモリを解放することができない。
特許文献1の技術は、一方のタスクのメモリ使用量が増えた場合に、他方のタスクのメモリ使用量が減少するという関係にない場合、同時に必要となるメモリが増加する可能性があり、その場合、メモリ不足を引き起こし易くなる。また、複数のタスクに対応できていない。
前記仮想計算機が、割当処理部および前記アプリケーション部を動作させ、
前記アプリケーション部が、前記物理計算機の計算機資源を、前記アプリケーション部が使用する計算機資源として割り当てさせ、
前記割当処理部が、前記アプリケーション部が使用する計算機資源に対して、そのアプリケーション部に割り当て済みの計算機資源が少ないときに、1つ以上の前記仮想計算機でそれぞれ動作している前記各アプリケーション部に対して、前記各アプリケーション部が動作する前記仮想計算機に割り当て済みの計算機資源から、使用されていない計算機資源の解放指示を送信し、
前記アプリケーション部は、前記使用されていない計算機資源の解放指示を受信すると、前記アプリケーション部に割り当てられている計算機資源のうちの前記使用されていない計算機資源を解放するように、前記ハイパーバイザ部に指示することを特徴とする。
その他の手段は、後記する。
以下、本発明の第1実施形態を、図面を参照して詳細に説明する。
割当制御部11は、処理状況管理テーブル13およびメモリ割当管理テーブル14にそれぞれ格納されているリソースの使用状況に応じて、リソースの割り当てをJava VM84に指示することで、リソースの使用を効率化する。
状況通知受信部12は、Java VM84におけるリソース(CPU91、主記憶装置92の物理メモリなど)の使用状況(使用量、使用率など)の通知を受ける。
処理状況管理テーブル13には、状況通知受信部12が動作状況通知部21から受信した情報のうちの処理に関する情報(GC(Garbage Collection)処理中か否かなど)が格納される。
メモリ割当管理テーブル14には、状況通知受信部12が動作状況通知部21および物理メモリ状況通知部32から受信した情報(主記憶装置92の物理メモリの使用状況)が格納される。
動作状況通知部21は、状況通知受信部12からの要求に応じて、または、要求が無くても能動的に、自らが所属するJava VM84の状態(メモリ領域25の物理メモリの使用状況や、GC制御部23によるGC処理が実行中か否かという情報など)を、状況通知受信部12に通知する。
起動初期化部22は、Java VM84の起動時に、そのJava VM84(メモリ領域25の割当も含む)の初期化処理を、OSメモリ管理部24に対して実行する。
メモリ領域25は、プログラム実行部85のプログラムにより使用されるメモリの領域であり、主記憶装置92から物理メモリが割り当てられる。
物理メモリ管理部31は、主記憶装置92の物理メモリを所定サイズの領域(メモリページ)に分割して管理する。そして、物理メモリ管理部31は、Java VM84からのメモリ割当要求に応じて割り当てるメモリページを提供するとともに、Java VM84からのメモリ解放要求に応じて指定されたメモリページを解放して、未割当状態に戻す。
物理メモリ状況通知部32は、状況通知受信部12からの要求に応じて、または、要求が無くても能動的に、物理計算機9の状態(主記憶装置92の物理メモリの空き容量など)を、状況通知受信部12に通知する。
アプリID=A1のメモリ領域25には、6つのメモリページ(P11〜P16)のうち、2つのメモリページ(P11,P12)に対して物理メモリが割り当てられている(図中、「○」で表記)。
アプリID=A2のメモリ領域25には、4つのメモリページ(P21〜P24)のうち、4つのメモリページ(P21〜P24)全てに対して物理メモリが割り当てられている。
アプリID=A3のメモリ領域25には、4つのメモリページ(P31〜P34)のうち、2つのメモリページ(P31,P32)に対して物理メモリが割り当てられている。
まず、アプリID=A2のメモリ領域25において、使用位置がP24まで来ているため、物理メモリが割り当てられている4つのメモリページ(P21〜P24)が、全て使用されている。よって、使用中の物理メモリを再割当の対象にはできないため、アプリID=A2のメモリ領域25は、再割当の対象からは除外する。
そこで、メモリページP32に割り当てられている物理メモリを、一旦返却し、そのメモリページを、アプリID=A1のメモリ領域25内のメモリページP13に再割当することで、メモリ不足を解消することができる。この再割当処理は、割当処理部10の制御に従って、実行される。
ここで、アプリID=A1,A2のアプリケーションが第1の仮想計算機82上で動作し、アプリID=A3のアプリケーションが第2の仮想計算機82上で動作しているとすると、仮想計算機82をまたがったメモリの融通処理を実現することができる。このような、仮想計算機82をまたがったリソース管理は、仮想計算機82ごとに独立して起動しているOS83のOSメモリ管理部24では、実現が困難である。
アプリID141は、Java VM84などのアプリケーションのIDである。
アプリ名称132は、アプリID141が示すアプリケーションの名称である。
最小位置142、判定位置143、最大位置144、および、使用位置145は、図4で説明したように、アプリケーションが使用するメモリ領域25内の各位置を示すポインタである。
メモリ割当ページ146は、図4の「○」印で説明したように、メモリ領域25内で物理メモリが割り当てられているメモリページを示す。
このフローチャートの開始状態として、1つのハイパーバイザ部81と、1つ以上の仮想計算機82とからなる仮想計算機環境8が、物理計算機9に構築され、そのハイパーバイザ部81内で物理メモリ処理部30が動作し、その仮想計算機82上で割当処理部10が動作しているものとする。さらに、各仮想計算機82上には、OS83(OSメモリ管理部24を含む)が起動している。
S102として、起動初期化部22は、割当処理部10の割当制御部11に対して初期化処理の結果を通知する。割当制御部11は、通知された結果を、メモリ割当管理テーブル14に登録する。
S103として、Java VM84は、プログラム実行部85が実行するプログラムのオブジェクト配置処理に応じて、物理メモリが割り当てられていないメモリページが必要になると、メモリ領域25へのメモリ割当要求を生成し、物理メモリ処理部30に対してそのメモリ割当要求を送信する(後記する図8(a)のサブルーチンを呼び出す)。
S104として、物理メモリ管理部31は、要求を受け、未使用の物理メモリを検索して割り当てる(例えば、図4(b)のP13)。割当可能な領域がない場合には、割り当てられない旨のメッセージをアプリケーション部20に返答する。
S105として、Java VM84は、S104の返答により、物理メモリの割り当て処理が成功したときには、S103の配置対象のオブジェクトを使用位置145に配置するとともに、使用位置145を配置された領域の次の位置に更新する。
S111として、割当処理部10の状況通知受信部12は、所定間隔で、動作状況通知部21からの通知内容(状況通知)を処理状況管理テーブル13およびメモリ割当管理テーブル14に登録し、物理メモリ状況通知部32からの通知内容(状況通知)をメモリ割当管理テーブル14に登録する。
S112として、割当制御部11は、処理状況管理テーブル13およびメモリ割当管理テーブル14の登録内容をもとに、メモリ割当管理テーブル14に登録されている各アプリケーションのアプリケーション部20に対して、メモリ解放要求を送信する。
このように、割当処理部10の側から能動的にメモリの解放要求を送信することによって、アプリケーションのメモリが不足する前に、予防的にメモリをアプリケーション間で融通することができるので、アプリケーションのメモリ不足に伴う性能低下を事前に回避することができる。
S113として、各アプリケーション部20は、メモリ解放要求を受け、収容するメモリ領域25に割り当てられている物理メモリを解放することで、利用可能な物理メモリの容量を増やす(後記する図9のサブルーチンを呼び出す)。
このS202の処理により、メモリ領域25の各メモリページは、領域が割当されているが物理メモリが割りあたっていない状態となり、OSメモリ管理部24の管理対象外となる。
図8(a)は、アプリケーション部20が実行する、メモリ領域25上のオブジェクト配置処理を示すフローチャートである。このフローチャートは、配置対象のオブジェクトを指定して実行される。
S303として、物理メモリ管理部31に対して、空き物理メモリが存在しているか否かを問い合わせ、その結果、GC処理により、空き物理メモリを増やすか否かを判定する。S303でYesならS305へ進み、NoならS304へ進む。
S304として、GC制御部23が実行するメモリ領域25のGC処理(図8(b))を呼び出す。
S312において、指定されたアプリID141一致する処理状況管理テーブル13のアプリID131を含むレコードについて、そのレコードのGC中フラグ134を「True」に設定する。
GC処理によって、最小位置142から使用位置145までの領域が、使用領域と、未使用領域とに分けられる。そして、この両領域の境界位置を、GC境界位置とする。
さらに、S314の処理を省略することとしてもよい。これにより、Java VM84内には、物理メモリが割り当てられているメモリページが残ったままの状態となる。
このように、Java VM84内に未使用のメモリページを残しておくことで、メモリ不足によるメモリの割当回数を少なくすることができるので、メモリの割当処理にかかるオーバーヘッドを抑制することができる。この未使用のメモリページは、後記する図9のS405の処理で適宜解放されるため、メモリの利用効率を低下させる要因とはならない。
S316において、S312でGC中フラグ134を「True」に設定したレコードについて、GC中フラグ134を「False」に戻す。
S402において、物理メモリ管理部31が管理する未割当の物理メモリが充分に存在するか否かを判定する。S402でYesなら終了し、NoならS403へ進む。
S403において、選択中VMの負荷が大きいか否かを判定する。具体的には、処理状況管理テーブル13の選択中VMに対応するCPU使用率133が所定閾値(例えば、70%)以上であるときに、負荷が大きいと判定する。選択中VMの負荷が大きいときには、優先度の低いメモリの解放処理の実行を行わないことで、選択中VMの処理を妨げないようにする。S403でYesならS408へ進み、NoならS404へ進む。
なお、選択中VMの負荷評価値について、CPU使用率133の代わりに、Java VM84上で動作しているアプリケーションがアプリケーションサーバの場合は、処理中のリクエスト数など、負荷を評価するための任意の指標を用いてもよい。
S405において、選択中VM内の未使用領域を戻す。そして、S408に進む。
S407において、図8(b)のサブルーチンを呼び出すことで、選択中VM内でGCを実行し、未使用領域を解放する。
S408において、S401からの選択中VMのループを終了する。
以下、本発明の第2実施形態を、図面を参照して詳細に説明する。
階層(1)の物理層(物理計算機9の階層)は、補助記憶装置95のひとつとしてディスク装置97を含めて構成される。
階層(2)の仮想計算機環境8を構成するハイパーバイザ部81は、物理ディスク処理部40を含めて構成される。物理ディスク処理部40は、物理計算機9のディスク装置97を制御することにより、ディスク資源を管理し、仮想計算機82が使用する仮想ディスク16(図11で後記)に対するディスク容量の割り当ておよび解放を実行する。
割当制御部11は、処理状況管理テーブル13およびディスク領域管理テーブル15にそれぞれ格納されているリソースの使用状況に応じて、リソースの割り当てをDBMS86に指示することで、リソースの使用を効率化する。
状況通知受信部12は、DBMS86におけるリソース(CPU91、データ領域29、データ領域29を格納する仮想ディスク16など)の使用状況(使用量、使用率など)の通知を受ける。
処理状況管理テーブル13には、状況通知受信部12が動作状況通知部21から受信した情報のうちの処理に関する情報(再編処理中か否かなど)が格納される。
ディスク領域管理テーブル15には、状況通知受信部12が動作状況通知部21および物理ディスク状況通知部42から受信した情報(補助記憶装置95の物理ディスクの使用状況)が格納される。
動作状況通知部21は、状況通知受信部12からの要求に応じて、または、要求が無くても能動的に、DBMS86の状態(仮想ディスク16内のデータ領域29の使用状況や、再編成制御部28による再編成処理が実行中か否かという情報など)を、状況通知受信部12に通知する。
問合せ部26は、DBMS86へのリクエスト(検索要求などの問い合わせ)を処理する。
アクセス処理部27は、問合せ部26の要請を受けて、データ領域29へのデータの格納、もしくは、データ領域29中のデータを読み出す。
データ領域29は、DBMS86により管理されるデータベースのデータを格納する領域であり、物理ディスク処理部40により、ディスク装置97から領域が割り当てられた仮想ディスク16上に格納される。また、このデータ領域29は、ある決まった大きさの領域(ページ)の集まりとして管理される。
再編成制御部28は、DBMS86で管理するデータ領域29の未回収領域などを回収する再編成処理を実施する。
物理ディスク管理部41は、ディスク装置97のディスク領域から所定サイズの領域を仮想計算機82が認識するディスク領域として割り当てる。また、物理ディスク管理部41は、DBMS86などからの要求に応じて、要求に応じて割り当てるディスク領域の容量を拡張、あるいは、削減する。
物理ディスク状況通知部42は、状況通知受信部12からの要求に応じて、または、要求が無くても能動的に、物理計算機9の状態(ディスク装置97の物理ディスクの空き容量など)を、状況通知受信部12に通知する。
このフローチャートの開始状態として、1つのハイパーバイザ部81と、1つ以上の仮想計算機82とからなる仮想計算機環境8が、物理計算機9に構築され、そのハイパーバイザ部81内で物理ディスク処理部40が動作し、その仮想計算機82上でDBMS86(DB1)が起動しているとする。また、DBMS86が使用するデータ領域29はあらかじめ構築されているものとする。さらに、各仮想計算機82上には、OS83が起動している。
S502およびS503として、各DBMS86の割当処理部10の状況通知受信部12は、所定間隔で、同一の物理計算機9上の仮想計算機82上で動作する各DBMS86の動作状況通知部21からの通知内容(状況通知)を処理状況管理テーブル13およびディスク領域管理テーブル15に登録し、物理ディスク状況通知部42からの通知内容(状況通知)をディスク領域管理テーブル15に登録する。
S511として、割当制御部11は、自ら属するDBMS86が管理するデータ領域29を格納する仮想ディスク16の空き容量がない、あるいは、不足していると判定される場合や、ディスク装置97の空き容量が少ないと判定される場合は、処理状況管理テーブル13およびディスク領域管理テーブル15の登録内容をもとに、ディスク領域管理テーブル15に登録されている各DBMS86のアプリケーション部20に対して、ディスク領域削減要求を送信する。
S512として、各アプリケーション部20は、ディスク領域解放要求を受け、可能なら、データ領域29の容量を削減したのち(S513)、仮想ディスク16の容量を削減することにより、利用可能な物理ディスクの容量を増やす(後記する図16のサブルーチンを呼び出す)。
S521として、DBMS86は、問合せ部26が受けた要求によって、アクセス処理部27がデータを格納するためのデータ領域29の容量が不足すると(つまり、仮想ディスク16の空き容量が不足すると)、仮想ディスク16へのディスク領域割当要求を生成し、物理ディスク処理部40に対して、仮想ディスク16に対する領域拡張要求を送信する。(後記する図15のサブルーチンを呼び出す)。
S522として、物理ディスク管理部41は、要求を受け、ディスク装置97の未使用領域を用いて、指定された仮想ディスク16を指定された容量だけ拡張する。ディスク装置97に、拡張に利用できる領域がない場合には、拡張できない旨のメッセージをアプリケーション部20に返答する。
S523として、DBMS86は、S522の返答により、仮想ディスク16の拡張処理が成功したときには、データ領域29に対して、データの格納を実施する。
S602として、S601において、初期化処理実行中のDBMS86から状況通知を受け取ったDBMS86は、自身のDBMSID147、現在容量149、空き容量150を、初期化処理起動中のDBMS86に対して送信し、初期化処理を実行中のDBMS86では、受け取った値を、自身の処理状況管理テーブル13、ディスク領域管理テーブル15へ格納する。
S703として、物理ディスク管理部41に対して、データ領域29を格納する仮想ディスク16の拡張を要求したのち、OS83に対して拡張された領域をファイルシステムが管理する領域として認識するように要求する。
なお、図15(a)のフローチャートでは、データ領域29へデータを格納する時点において、データ領域29を格納する仮想ディスク16の拡張を判定し、必要なら、仮想ディスク16の拡張を実施しているが、データの格納とは異なる時点において、仮想ディスク16の拡張を実施してもよい。これにより、データ領域29へデータを格納する時点でのオーバーヘッドを削減することができる。
図15(b)は、再編成制御部28が実行する、データ領域29に対する再編成処理を示すフローチャートである。このフローチャートはDBMS86のDBMSID147を指定して呼び出される。
S712において、指定されたDBMSID147に一致する処理状況管理テーブル13のDBMSID147を含むレコードについて、そのレコードの再編成中フラグ148を「True」に設定する。
S715において、S712で再編集中フラグ148を「True」に設定したレコードについて、再編成中フラグ148を「False」に戻す。
S802において、物理ディスク管理部41が管理するディスク装置97に未割当の領域が充分に存在するか否かを判定する。S802でYesなら終了し、NoならS803へ進む。
なお、選択中VMの負荷評価値について、CPU使用率133の代わりに、DBMS86に対するリクエスト数(検索要求数)など、負荷を評価するための任意の指標を用いてもよい。
S807において、選択DBMSのデータ領域29を格納する仮想ディスク16の容量を削減する要求を物理ディスク管理部41へ送信する。より、具体的には、ディスク装置97へ返却可能な仮想ディスク16のセクタに対して印を付け、物理ディスク管理部41では、印のあるセクタに対する物理ディスク領域の割当を解除する。
S808において、S801からの選択中DBMSのループを終了する。
以下、本発明の第3実施形態として、CPU資源、ネットワーク資源を管理する場合を説明する。これらの資源の管理の場合も、第1実施形態に示したメモリ資源の管理、および、第2実施形態に示したディスク資源の管理と同様に行うことができる。
物理CPU処理部43は、物理計算機9のCPU91を制御することにより、CPU資源を管理し、仮想計算機82が使用する仮想CPUに対する資源の割当、および、解放を実行する。
物理ネットワーク処理部46は、物理計算機9の通信装置94を制御することにより、ネットワーク資源を管理し、仮想計算機82が使用する仮想ネットワークに対する資源の割当、および、解放を実行する。
物理CPU管理部44は、CPU91から所定のプロセッサ資源を仮想計算機82が認識する仮想CPUとして割り当てる。また、物理CPU管理部44は、アプリケーションからの要求に応じて、割り当てるプロセッサ資源の追加、あるいは、削減する。なお、ここでは、CPU資源の割当管理の単位をプロセッサのコア数として管理するが、使用率の割合など別の指標を用いてもよい。
物理CPU状況通知部45は、状況通知受信部12からの要求に応じて、または、要求が無くても能動的に、物理計算機9の状態(CPU91の使用状況など)を、状況通知受信部12に通知する。
物理ネットワーク管理部47は、通信装置94から所定のネットワーク資源を仮想計算機82が認識する仮想ネットワークとして割り当てる。また、物理ネットワーク管理部47は、アプリケーションからの要求に応じて、割り当てるネットワーク資源を追加、あるいは、削減する。なお、ここでは、ネットワーク資源の割当管理の単位をネットワークカードの数として管理するが、ネットワークの使用帯域など別の指標を用いてもよい。
物理ネットワーク状況通知部48は、物理ネットワーク管理部47、状況通知受信部12からの要求に応じて、または、要求が無くても能動的に、物理計算機9の状態(通信装置94の使用状況など)を、状況通知受信部12に通知する。
CPU管理テーブル17は、実行中のアプリケーションを識別するためのアプリID151と、そのアプリIDで示されるアプリケーションが使用中のプロセッサ数である使用数152、アプリIDで示されるアプリケーションに割当済みのプロセッサ数である割当済数153を含む。
ネットワーク管理テーブル18は、実行中のアプリケーションを識別するためのアプリID154と、そのアプリIDで示されるアプリケーションが使用中のネットワーク装置数である使用数155、アプリIDで示されるアプリケーションに割当済みのネットワーク装置数である割当済数156を含む。
例えば、割当制御部11は、未割当のリソース(プールされているリソース)が少ないときに、使用されていないリソースの解放指示を各アプリケーション部20に送信する。
または、割当制御部11は、アプリケーション部20が使用するリソースに対して、そのアプリケーション部20に割り当て済みのリソースが少ないときに(換言すると、リソース不足のアプリケーション部20が存在するときに)、使用されていないリソースの解放指示を各アプリケーション部20に送信する。
9 物理計算機(資源管理装置)
10 割当処理部
11 割当制御部
12 状況通知受信部
13 処理状況管理テーブル
14 メモリ割当管理テーブル
15 ディスク領域管理テーブル
16 仮想ディスク
17 CPU管理テーブル
18 ネットワーク管理テーブル
20 アプリケーション部
21 動作状況通知部
22 起動初期化部
23 GC制御部
24 OSメモリ管理部
25 メモリ領域
26 問合せ部
27 アクセス処理部
28 再編成制御部
29 データ領域
30 物理メモリ処理部
31 物理メモリ管理部
32 物理メモリ状況通知部
40 物理ディスク処理部
41 物理ディスク管理部
42 物理ディスク状況通知部
43 物理CPU処理部
44 物理CPU管理部
45 物理CPU状況通知部
46 物理ネットワーク処理部
47 物理ネットワーク管理部
48 物理ネットワーク状況通知部
81 ハイパーバイザ部
82 仮想計算機
83 OS
84 Java VM
85 プログラム実行部
86 DBMS
91 CPU
92 主記憶装置
93 入出力装置
94 通信装置
95 補助記憶装置
96 バス
97 ディスク装置
131 アプリID
132 アプリ名称
133 CPU使用率
134 GC中フラグ
141 アプリID
142 最小位置
143 判定位置
144 最大位置
145 使用位置
146 メモリ割当ページ
147 DBMSID
148 再編成中フラグ
149 現在容量
150 空き容量
151,154 アプリID
152,155 使用数
153,156 割当済数
Claims (17)
- 1つ以上の仮想計算機と、その仮想計算機を動作させるためのハイパーバイザ部とを有して構成される仮想計算機環境を物理計算機上に構築するとともに、前記仮想計算機上のOS上で動作するアプリケーション部が使用する計算機資源に対して、前記物理計算機の計算機資源を割り当てる資源管理方法であって、
前記仮想計算機は、割当処理部および前記アプリケーション部を動作させ、
前記アプリケーション部は、前記物理計算機の計算機資源を、前記アプリケーション部が使用する計算機資源として割り当てさせ、
前記割当処理部は、前記アプリケーション部が使用する計算機資源に対して、そのアプリケーション部に割り当て済みの計算機資源が少ないときに、1つ以上の前記仮想計算機でそれぞれ動作している前記各アプリケーション部に対して、前記各アプリケーション部が動作する前記仮想計算機に割り当て済みの計算機資源から、使用されていない計算機資源の解放指示を送信し、
前記アプリケーション部は、前記使用されていない計算機資源の解放指示を受信すると、前記アプリケーション部に割り当てられている計算機資源のうちの前記使用されていない計算機資源を解放するように、前記ハイパーバイザ部に指示することを特徴とする
資源管理方法。 - 前記割当処理部は、前記物理計算機の未割当の計算機資源が少ないときに、前記使用されていない計算機資源の解放指示を送信することを特徴とする
請求項1に記載の資源管理方法。 - 前記割当処理部は、
前記各アプリケーション部から、前記各アプリケーション部の負荷値の通知を受けて、その結果を記憶手段に記憶し、
前記使用されていない計算機資源の解放指示を送信する前記アプリケーション部から、前記記憶手段に記憶されている負荷値が所定値以上の前記アプリケーション部を除外することを特徴とする
請求項1に記載の資源管理方法。 - 前記割当処理部は、前記各アプリケーション部の負荷値として、前記各アプリケーション部のCPU使用率を前記記憶手段に記憶することを特徴とする
請求項3に記載の資源管理方法。 - 前記割当処理部は、前記各アプリケーション部の負荷値として、前記各アプリケーション部で処理中のリクエスト数を前記記憶手段に記憶することを特徴とする
請求項3に記載の資源管理方法。 - 前記アプリケーション部は、前記アプリケーション部が使用する前記物理計算機の計算機資源としてのメモリ領域について、前記仮想計算機からの物理メモリの割当処理および開放処理を禁止し、前記物理メモリを割り当てる旨の要求を、前記ハイパーバイザ部内の物理メモリ処理部に送信することで、前記物理メモリ処理部に未割当の前記物理メモリを前記メモリ領域に対して割り当てさせ、
前記割当処理部は、前記計算機資源の解放指示処理として、1つ以上の前記仮想計算機でそれぞれ動作している前記各アプリケーション部に対して、前記各アプリケーション部が動作する前記仮想計算機に割り当て済みの前記メモリ領域から、前記物理メモリが割り当てられているが、使用されていない前記メモリ領域内のメモリページの解放指示を送信することを特徴とする
請求項1に記載の資源管理方法。 - 前記アプリケーション部は、前記メモリページの解放指示を受信すると、前記アプリケーション部に割り当てられている前記メモリ領域内の前記メモリページのうち、前記アプリケーション部の使用中のオブジェクトが未配置の前記メモリページに割り当てられている前記物理メモリを解放するように、前記物理メモリ処理部に指示することを特徴とする
請求項6に記載の資源管理方法。 - 前記アプリケーション部は、
前記メモリページの解放指示を受信すると、前記アプリケーション部に割り当てられている前記メモリ領域内の前記メモリページのうち、前記アプリケーション部のオブジェクトが配置済の前記メモリページを対象としてガベージコレクション処理を実行することで、前記アプリケーション部の使用中のオブジェクトが未配置の前記メモリページを確保し、
その確保した前記メモリページに割り当てられている前記物理メモリを解放するように、前記物理メモリ処理部に指示することを特徴とする
請求項6または請求項7に記載の資源管理方法。 - 前記アプリケーション部は、前記アプリケーション部がデータを保持する前記物理計算機の計算機資源としての仮想ディスクへ追加の領域を割り当てる旨の要求を、前記ハイパーバイザ部内の物理ディスク処理部に送信することで、前記物理ディスク処理部に未割当の物理ディスクのデータ領域を前記仮想ディスクに対して割り当てさせ、
前記割当処理部は、計算機資源の解放指示処理として、1つ以上の前記仮想計算機でそれぞれ動作している前記各アプリケーション部に対して、前記各アプリケーション部が動作する前記仮想計算機に割り当て済みの前記仮想ディスクのデータ領域から、使用されていないデータ領域の解放指示を送信することを特徴とする
請求項1に記載の資源管理方法。 - 前記アプリケーション部は、前記仮想ディスクのデータ領域の解放指示を受信すると、前記アプリケーション部に割り当てられている前記仮想ディスク内のデータ領域のうち、前記アプリケーション部の使用中のデータが未配置のデータ領域に割り当てられている前記物理ディスクのデータ領域を削減するように、前記物理ディスク処理部に指示することを特徴とする
請求項9に記載の資源管理方法。 - 前記アプリケーション部は、前記仮想ディスクのデータ領域の解放指示を受信すると、前記仮想ディスクのデータ領域に格納されている前記アプリケーション部のデータに対して不要なデータ領域の削減処理を実行することで、前記アプリケーション部の使用中のデータが記録されていない空きデータ領域を確保し、前記空きデータ領域を解放するように、前記物理ディスク処理部に指示することを特徴とする
請求項9または請求項10に記載の資源管理方法。 - 前記アプリケーション部は、前記アプリケーション部が使用する前記物理計算機の計算機資源としてのCPU資源を割り当てる旨の要求を、前記ハイパーバイザ部内の物理CPU処理部に送信することで、前記物理CPU処理部に未割当の前記CPU資源を前記アプリケーション部に対して割り当てさせ、
前記割当処理部は、計算機資源の解放指示処理として、1つ以上の前記仮想計算機でそれぞれ動作している前記各アプリケーション部に対して、前記各アプリケーション部が動作する前記仮想計算機に割り当て済みの前記CPU資源から、使用されていない前記CPU資源の解放指示を送信することを特徴とする
請求項1に記載の資源管理方法。 - 前記アプリケーション部は、前記CPU資源の解放指示を受信すると、前記アプリケーション部に割り当てられている前記CPU資源のうち、前記アプリケーション部から使用されていない前記CPU資源を削減するように、前記物理CPU処理部に指示することを特徴とする
請求項12に記載の資源管理方法。 - 前記アプリケーション部は、前記アプリケーション部が使用する前記物理計算機の計算機資源としてのネットワーク資源を割り当てる旨の要求を、前記ハイパーバイザ部内の物理ネットワーク処理部に送信することで、前記物理ネットワーク処理部に未割当の前記ネットワーク資源を前記アプリケーション部に対して割り当てさせ、
前記割当処理部は、計算機資源の解放指示処理として、1つ以上の前記仮想計算機でそれぞれ動作している前記各アプリケーション部に対して、前記各アプリケーション部が動作する前記仮想計算機に割り当て済みの前記ネットワーク資源から、使用されていない前記ネットワーク資源の解放指示を送信することを特徴とする
請求項1に記載の資源管理方法。 - 前記アプリケーション部は、前記ネットワーク資源の解放指示を受信すると、前記アプリケーション部に割り当てられている前記ネットワーク資源のうち、前記アプリケーション部から使用されていない前記ネットワーク資源を削減するように、前記物理ネットワーク処理部に指示することを特徴とする
請求項14に記載の資源管理方法。 - 1つ以上の仮想計算機と、その仮想計算機を動作させるためのハイパーバイザ部とを有して構成される仮想計算機環境を物理計算機である資源管理装置上に構築するとともに、前記仮想計算機上のOS上で動作するアプリケーション部が使用する計算機資源に対して、前記物理計算機の計算機資源を割り当てる前記資源管理装置に、
前記仮想計算機が、割当処理部および前記アプリケーション部を動作させる機能と、
前記アプリケーション部が、前記物理計算機の計算機資源を、前記アプリケーション部が使用する計算機資源として割り当てさせる機能と、
前記割当処理部が、前記アプリケーション部が使用する計算機資源に対して、そのアプリケーション部に割り当て済みの計算機資源が少ないときに、1つ以上の前記仮想計算機でそれぞれ動作している前記各アプリケーション部に対して、前記各アプリケーション部が動作する前記仮想計算機に割り当て済みの計算機資源から、使用されていない計算機資源の解放指示を送信する機能と、を実現させ、
前記アプリケーション部に対して、前記使用されていない計算機資源の解放指示を受信すると、前記アプリケーション部に割り当てられている計算機資源のうちの前記使用されていない計算機資源を解放するように、前記ハイパーバイザ部に指示させることを特徴とする
資源管理プログラム。 - 1つ以上の仮想計算機と、その仮想計算機を動作させるためのハイパーバイザ部とを有して構成される仮想計算機環境を物理計算機である資源管理装置上に構築するとともに、前記仮想計算機上のOS上で動作するアプリケーション部が使用する計算機資源に対して、前記物理計算機の計算機資源を割り当てる前記資源管理装置であって、
前記仮想計算機が、割当処理部および前記アプリケーション部を動作し、
前記アプリケーション部が、前記物理計算機の計算機資源を、前記アプリケーション部が使用する計算機資源として割り当て、
前記割当処理部が、前記アプリケーション部が使用する計算機資源に対して、そのアプリケーション部に割り当て済みの計算機資源が少ないときに、1つ以上の前記仮想計算機でそれぞれ動作している前記各アプリケーション部に対して、前記各アプリケーション部が動作する前記仮想計算機に割り当て済みの計算機資源から、使用されていない計算機資源の解放指示を送信し、
前記アプリケーション部が、前記使用されていない計算機資源の解放指示を受信すると、前記アプリケーション部に割り当てられている計算機資源のうちの前記使用されていない計算機資源を解放するように、前記ハイパーバイザ部に指示することを特徴とする
資源管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010100477A JP5466568B2 (ja) | 2009-04-27 | 2010-04-26 | 資源管理方法、資源管理プログラム、および、資源管理装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009107783 | 2009-04-27 | ||
JP2009107783 | 2009-04-27 | ||
JP2010100477A JP5466568B2 (ja) | 2009-04-27 | 2010-04-26 | 資源管理方法、資源管理プログラム、および、資源管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010277581A JP2010277581A (ja) | 2010-12-09 |
JP5466568B2 true JP5466568B2 (ja) | 2014-04-09 |
Family
ID=42993120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010100477A Active JP5466568B2 (ja) | 2009-04-27 | 2010-04-26 | 資源管理方法、資源管理プログラム、および、資源管理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100274947A1 (ja) |
JP (1) | JP5466568B2 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112011103979T5 (de) * | 2010-11-30 | 2013-08-29 | International Business Machines Corporation | Computerprogramm und System für ein Verfahren zur Optimierung der Speicherverwaltung einer auf einer virtuellen Maschine ausgeführten Anwendung |
US10346276B2 (en) | 2010-12-16 | 2019-07-09 | Microsoft Technology Licensing, Llc | Kernel awareness of physical environment |
US8943260B2 (en) * | 2011-03-13 | 2015-01-27 | International Business Machines Corporation | Dynamic memory management in a virtualized computing environment |
CN102306126B (zh) * | 2011-08-24 | 2014-06-04 | 华为技术有限公司 | 内存管理方法、装置和系统 |
US9152548B2 (en) * | 2012-01-17 | 2015-10-06 | Vmware, Inc. | Controlling access to a privileged resource in user-mode system level mobile virtualization using a ptrace () system call |
TW201339838A (zh) * | 2012-03-16 | 2013-10-01 | Hon Hai Prec Ind Co Ltd | 虛擬機記憶體管理系統及方法 |
US8924640B2 (en) * | 2012-05-14 | 2014-12-30 | Alcatel Lucent | Dynamic allocation of records to clusters in a ternary content addressable memory |
US9703582B1 (en) * | 2012-09-07 | 2017-07-11 | Tellabs Operations, Inc. | Share access of allocated storage space via in-memory file system between virtual machines |
JP2014081709A (ja) * | 2012-10-15 | 2014-05-08 | Fujitsu Ltd | リソース管理プログラム、リソース管理方法、及び情報処理装置 |
US9256469B2 (en) | 2013-01-10 | 2016-02-09 | International Business Machines Corporation | System and method for improving memory usage in virtual machines |
US9639399B2 (en) * | 2013-02-01 | 2017-05-02 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus and terminal for releasing memory |
JP6089783B2 (ja) * | 2013-02-27 | 2017-03-08 | 富士通株式会社 | 制御装置、リソース制御プログラムおよびリソース制御方法 |
WO2014171002A1 (ja) * | 2013-04-19 | 2014-10-23 | 株式会社日立製作所 | メモリ管理方法、計算機及び記録媒体 |
WO2015045046A1 (ja) * | 2013-09-26 | 2015-04-02 | 株式会社日立製作所 | 計算機システムおよび計算機システムのメモリ割当調整方法 |
US9798567B2 (en) | 2014-11-25 | 2017-10-24 | The Research Foundation For The State University Of New York | Multi-hypervisor virtual machines |
CN104915151B (zh) * | 2015-06-02 | 2018-12-07 | 杭州电子科技大学 | 多虚拟机系统中一种主动共享的内存超量分配方法 |
JP6374845B2 (ja) * | 2015-08-07 | 2018-08-15 | 株式会社日立製作所 | 計算機システム及びコンテナ管理方法 |
US10346050B2 (en) | 2016-10-26 | 2019-07-09 | International Business Machines Corporation | Virtualization of memory compute functionality |
US10445009B2 (en) * | 2017-06-30 | 2019-10-15 | Intel Corporation | Systems and methods of controlling memory footprint |
US11016798B2 (en) | 2018-06-01 | 2021-05-25 | The Research Foundation for the State University | Multi-hypervisor virtual machines that run on multiple co-located hypervisors |
US11934857B2 (en) * | 2021-03-16 | 2024-03-19 | Vmware, Inc. | Supporting execution of a computer program by using a memory page of another computer program |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6898564B1 (en) * | 2000-05-23 | 2005-05-24 | Microsoft Corporation | Load simulation tool for server resource capacity planning |
JP2002202959A (ja) * | 2000-12-28 | 2002-07-19 | Hitachi Ltd | 動的な資源分配をする仮想計算機システム |
US7047358B2 (en) * | 2001-12-26 | 2006-05-16 | Boon Storage Technologies, Inc. | High-performance log-structured RAID |
JP2008225520A (ja) * | 2007-03-08 | 2008-09-25 | Nec Corp | 仮想マシン環境においてメモリ資源を配置するメモリ資源配置制御方法、仮想マシンシステム及びプログラム |
US8312201B2 (en) * | 2008-06-09 | 2012-11-13 | International Business Machines Corporation | Managing memory allocations loans |
-
2010
- 2010-02-10 US US12/703,691 patent/US20100274947A1/en not_active Abandoned
- 2010-04-26 JP JP2010100477A patent/JP5466568B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US20100274947A1 (en) | 2010-10-28 |
JP2010277581A (ja) | 2010-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5466568B2 (ja) | 資源管理方法、資源管理プログラム、および、資源管理装置 | |
JP5235989B2 (ja) | 仮想マシンのメモリを管理するためのシステム、方法、及びコンピュータ・プログラム | |
JP4769484B2 (ja) | 仮想計算機をマイグレーションするための方法およびシステム | |
EP2791806B1 (en) | Working set swapping using a sequentially ordered swap file | |
TWI539280B (zh) | 用於分析未經特定設計以提供記憶體分配資訊之應用程式及擷取記憶體分配資訊的方法、及其電腦系統和電腦可讀儲存媒體 | |
JP4748950B2 (ja) | 記憶領域管理方法及びシステム | |
KR20150139408A (ko) | 이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법 | |
JP6165964B2 (ja) | 計算機 | |
KR20180045347A (ko) | 가상화 환경에서의 자원 관리 방법 및 이를 지원하는 장치 | |
KR20070090649A (ko) | 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법 | |
Chen et al. | Pufferfish: Container-driven elastic memory management for data-intensive applications | |
Min et al. | Vmmb: Virtual machine memory balancing for unmodified operating systems | |
JP5820525B2 (ja) | 仮想計算機のスケジュールシステム及びその方法 | |
CN115617542A (zh) | 内存交换方法、装置、计算机设备及存储介质 | |
JP2022034455A (ja) | 計算機システムおよび管理方法 | |
JP5178778B2 (ja) | 仮想計算機およびcpu割り当て方法 | |
JP6543219B2 (ja) | 仮想マシン配置装置およびリソース管理方法 | |
CN107832097B (zh) | 数据加载方法及装置 | |
JP6135392B2 (ja) | キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法 | |
JP5158576B2 (ja) | 入出力制御システム、入出力制御方法、及び、入出力制御プログラム | |
WO2010070529A2 (en) | A method, apparatus and computer program for moving data in memory | |
EP3293625B1 (en) | Method and device for accessing file, and storage system | |
JP4862770B2 (ja) | 仮想計算機システムにおけるメモリ管理方式及びその方法、およびプログラム | |
JP5334048B2 (ja) | メモリ装置および計算機 | |
JP2008139907A (ja) | ジョブ割当プログラム及びジョブ割当方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120308 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130903 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130904 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131011 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140114 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140124 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5466568 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |