JPWO2015045046A1 - 計算機システムおよび計算機システムのメモリ割当調整方法 - Google Patents

計算機システムおよび計算機システムのメモリ割当調整方法 Download PDF

Info

Publication number
JPWO2015045046A1
JPWO2015045046A1 JP2015538691A JP2015538691A JPWO2015045046A1 JP WO2015045046 A1 JPWO2015045046 A1 JP WO2015045046A1 JP 2015538691 A JP2015538691 A JP 2015538691A JP 2015538691 A JP2015538691 A JP 2015538691A JP WO2015045046 A1 JPWO2015045046 A1 JP WO2015045046A1
Authority
JP
Japan
Prior art keywords
memory
virtual machine
cache
amount
computer system
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.)
Granted
Application number
JP2015538691A
Other languages
English (en)
Other versions
JP6069515B2 (ja
Inventor
幸恵 田島
幸恵 田島
理 竹内
理 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP6069515B2 publication Critical patent/JP6069515B2/ja
Publication of JPWO2015045046A1 publication Critical patent/JPWO2015045046A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

仮想化制御部が複数台の仮想マシンを制御する計算機システムにあって、仮想マシンのメモリ利用状況によらずにメモリを回収すると、キャッシュミスが増加してシステム全体のIO性能が劣化することを解決するために、複数の仮想マシンが有する各OSが利用するメモリ内のキャッシュ領域の使用状況を監視し、その監視結果に基づいて、仮想化制御部は、各OSに割り当て済みであるメモリの割当領域の中から回収対象となるメモリの割当領域を決定し、その回収対象となるメモリの割当領域を現在の割当先であるOSから回収する。

Description

本発明は、仮想計算機に割り当てるメモリ量の調整方法に関する。
仮想マシンに割り当てられるメモリの回収/割当を行なってメモリの割当量を調整するメモリバルーニング技術がある。例えば、仮想マシンを提供する仮想化制御部が仮想マシン内でのスワップの発生や仮想マシンの監視結果をもとに、メモリを過回収していることを判断する。さらに、仮想化制御部は、当該仮想マシンからのメモリの回収を取りやめることやメモリの割り当てを実行する技術がある(例えば特許文献1)。
米国特許第8359451号明細書
前述のメモリバルーニング方式では、仮想マシン内でのスワップの発生や仮想マシンの監視結果をもとづいてメモリを回収が行なわれる。しかし、仮想マシンにおけるキャッシュの利用状況を考慮せずにメモリを回収することで、キャッシュミスが増加してIO性能が劣化する場合が想定される。
複数の仮想マシンが有する各OSが利用するメモリ内のキャッシュ領域の使用状況を監視し、その監視結果に基づいて、仮想化制御部は、各OSに割り当て済みであるメモリの割当領域の中から回収対象となるメモリの割当領域を決定し、その回収対象となるメモリの割当領域を現在の割当先であるOSから回収する。
本発明により、仮想化制御部が管理する複数の仮想マシンによるメモリの使用状況、特にキャッシュの使用状況に応じて、割り当てメモリ量を調整することが可能になる。これにより、システム全体のキャッシュミスを軽減し、IO性能の劣化を防ぐことができる。
仮想化制御部が有するメモリプールにおけるメモリの割当例を示す図である。 本発明に係る計算機システムの全体構成を示す図である。 図2に示した全体構成の内、仮想化制御部の構成図を示す図である。 図2に示した全体構成の内、仮想マシンの構成図を示す図である。 図3に示した、仮想化制御部内のメモリマネージャが有する、調整履歴、メモリ管理テーブル、全体キャッシュ管理テーブル、仮想マシン設定情報、ポリシの具体例を示す図である。 図4に示した、仮想マシン内の利用状況監視機構が有するキャッシュ管理テーブルの例を示す図である。 仮想化制御部のメモリマネージャにより実行されるメモリ割当処理のフローチャートを示す図である。 仮想化制御部のメモリマネージャにより実行される全体キャッシュ管理テーブル作成の処理フローチャートを示す図である。 仮想マシンの利用状況監視機構により実行される監視処理のフローチャートを示す図である。 仮想化制御部のメモリマネージャにより実行されるメモリ回収先および回収量の決定処理のフローチャートを示す図である。 仮想化制御部のメモリマネージャにより実行されるメモリ平衡割当処理のフローチャートを示す図である。 仮想化制御部のアクセス傾向判断機構により実行されるSLA対応処理のフローチャートを示す図である。 仮想マシンの利用状況監視機構(主にファイル監視部)により実行されるSLA対応処理内の特性判断処理のフローチャートを示す図である。
図面を参照して、本発明の実施の形態に係る実施例の構成および機能等について説明する。
図1は、仮想化制御部が有するメモリプールにおけるメモリの割当例を示した図である。
仮想化制御部は、仮想化制御部が管理する仮想マシンに割り当て可能なメモリをメモリプールとして管理する。
図1の1−aは、仮想化制御部が管理する仮想マシンである、仮想マシンAと仮想マシンBが動作している場合のメモリプールの様子を示す。メモリプールで管理しているメモリの一部を仮想マシンAと仮想マシンBに割り当てて割当済メモリとし、仮想マシンに割り当てていない残りの領域を未割当メモリとしている。
図1の1−bは、仮想化制御部の管理する仮想マシンである仮想マシンCを動作させる際の様子を示す。仮想マシンCを動作させるには、仮想マシンCに割り当てるメモリが必要になる。この仮想マシンCに割り当てるメモリの容量を割当要求メモリ量とする。
図1の1−cは、メモリプールで管理している未割当メモリ量が、1−bで要求された割当要求メモリ量に対して不足していることを示す。
図1の1−dは、1−cで判明した不足分を補うために、仮想マシンA、仮想マシンBに割り当てていたメモリから一部の領域を回収する様子を示す。稼働中の仮想マシンから回収したメモリを未割当メモリに追加することで、メモリプールで管理している未割当メモリ量は1−bで要求された割当要求メモリ量を満たすことができる。
その一方で、1−dにおける稼働中の仮想マシンからのメモリの回収は、システム全体のIO性能の劣化を防ぎつつ行なう必要がある。
一部のOSでは、ディスクと比較してアクセス速度の早いメモリを有効に活用するため、未使用のメモリ領域をキャッシュとして使用している。広範な領域にランダムにIOを実施する場合はキャッシュの効果は小さいが、局所的な領域にIOを発行する場合はキャッシュの効果は大きくなる。
仮想マシン上では種々の作業が実施され、ある作業は広範な領域にランダムにIOを発行し、別の作業は局所的な領域にIOを発行する。つまり、仮想マシンで実施している作業によってキャッシュの使用状況が異なる。
そこで、広範な領域にランダムにIOを発行するような、キャッシュを有効活用していない仮想マシンからメモリを多めに回収して、仮想マシンが使用するキャッシュ容量を小さくする。一方で、局所的な領域にIOを発行するような、キャッシュを有効活用している仮想マシンからのメモリの回収量を少なめにする。このようにして、仮想マシンが使用するキャッシュ容量を減らさないことで、無作為にメモリを回収する場合と比較して、システム全体のキャッシュミスを軽減し、IO性能の劣化を防ぐことができる。
本実施例により、仮想化制御部は、仮想マシンにおけるキャッシュの使用状況に基づいてメモリを回収することができる。その結果、IO性能の劣化を防ぎつつ、仮想マシンにメモリを割り当てることができる。
例えば、マルチテナント環境を構築する場合、各テナントにおけるIO性能の劣化を防ぎつつ、オーバコミットしたメモリを割り当てることが可能となり、テナントプロバイダにとってのコストパフォーマンスを向上させることができる。
図2に、本実施例に係る計算機システムの全体構成を示す。計算機システムは、物理リソース201、仮想化制御部202および1台以上の仮想マシン203で構成される。
物理リソース201は、CPU211、メモリ212およびデバイス213を有する。この物理リソース201は、一つの筐体に格納されていても、複数の筐体に格納されていても構わない。
仮想化制御部202は、管理している仮想マシン203に物理リソースの割り当てを行なう機構で、ハイパーバイザに対応するものである。例えば、仮想化制御部202は、仮想マシン203にメモリの割当を行なう機構であるメモリマネージャ221を有する。
仮想マシン203は、仮想化制御部202から提供されるリソースである仮想CPU231、仮想メモリ232および仮想デバイス233を有する。これらは、仮想化制御部202でエミュレートされたリソースでもよいし、仮想化制御部202の仲介により物理リソース201が直接割り当てられてもよい。仮想マシン203ではOS241が稼働する。OS241は、メモリ管理機構252を有し、OS241に割り当てられた仮想メモリ232を管理する。
OS241上で実行されたIOは、ファイル管理機構254を介して仮想デバイス233に発行される。OSは、一度デバイスに対して発行したIOの結果を、OSが認識する仮想メモリ232の内、使用していない領域に保存する。このようにデータの一時格納に用いられる仮想メモリの領域をキャッシュと呼ぶ。仮想メモリはこのキャッシュ用途以外に、例えばOSやOS上で稼働するアプリケーションが使用する情報の格納先として利用される。
データをキャッシュすることで、次回以降の当該デバイス領域へのIOは、デバイスにアクセスすることなく、キャッシュにアクセスすることで実施可能となる。メモリのアクセス応答速度はデバイスの応答速度よりも早いため、IOがキャッシュにヒットする程OSのIO性能は向上する。OSは、IOがキャッシュにヒットする確率を上げるために、メモリ空き領域の殆どの領域をキャッシュとして使用する。
OS上で稼働するワークロードによってIOがキャッシュにヒットする確率は異なる。広範な領域にランダムにアクセスするワークロードの場合、IOはキャッシュにヒットし難く、局所的な領域にアクセスするワークロードの場合、IOはキャッシュにヒットしやすい。一方で、上記のようにキャッシュ用途以外に利用される仮想メモリの領域はほぼ変動しにくい性質であることも考え合わせると割り当てられるメモリ領域は大きい程、OSがキャッシュとして使用できる領域は拡大することになる。
以上より、前者のワークロードが稼働しているOSよりも後者のワークロードが稼働しているOSにメモリを多量に割当てることで、前者のOSよりも後者のOSに多量のキャッシュが割当たることとなり、システム全体のIO性能は向上する。
OS241には、仮想メモリ232の一部領域であるキャッシュの使用状況やファイルアクセス状況を監視する機構である利用状況監視機構251が格納される。
また、仮想マシン203は、仮想化制御部202からキャッシュの利用状況監視要求を受けると、利用状況監視機構251によりファイル管理機構254からキャッシュの利用状況を取得し、仮想化制御部202のメモリマネージャ221に通知する。なお、この利用状況監視処理は、監視要求によらず定期的に実施されてもよい。
メモリマネージャ221は、仮想化制御部202が管理する複数の仮想マシン203から通知されるキャッシュの利用状況を集約し、仮想マシン設定情報223に格納されている最低キャッシュ量の情報と照らし合わせの上、キャッシュを有効に利用していない仮想マシンから優先的にメモリを回収する。
例えば、仮想化制御部202は、新規の仮想マシンの起動等でメモリが必要となると、メモリプールの未割当領域から必要量のメモリを確保する。未割当領域の容量が必要量を満たさない場合、仮想マシン203のOS241が有するバルーンドライバ253を介して、稼働中の仮想マシン203からメモリを回収する。仮想化制御部202は、メモリを回収する際に、仮想マシン203のキャッシュの利用状況を確認し、メモリの回収対象となる仮想マシンおよび各仮想マシンに対するメモリの回収量を決定する。
なお、仮想マシン設定情報223にファイルタイプが設定されている場合、アクセス傾向判断機構222が仮想マシン203にファイルアクセス傾向監視要求を発行する。仮想マシン203は、利用状況監視機構251により、仮想マシン203におけるファイルアクセスを監視する。条件を満たすアクセスが発生した場合、その結果を仮想化制御部202に通知する。仮想化制御部202は、その結果に基づきメモリの回収処理を制御する。
図3に、仮想化制御部202の構成を示す。
仮想化制御部202は、メモリマネージャ221、アクセス傾向判断機構222および仮想マシン設定情報223を有する。
メモリマネージャ221は、仮想マシン通信部A301、割当調整部302、回収部303、割当部304、テーブル操作部305、メモリプール306、メモリ管理テーブル307、全体キャッシュ管理テーブル308および調整履歴309を有する。
アクセス傾向判断機構222は、仮想マシン通信部B311、特性判断部312およびポリシ313を有する。
図4に、仮想マシン203の構成を示す。
仮想マシン203は、仮想CPU231、仮想メモリ232、仮想デバイス233およびOS241を有する。
OS241は、利用状況監視機構251、メモリ管理機構252、バルーンドライバ253およびファイル管理機構254を有する。利用状況監視機構251には、ヒット率算出部401、キャッシュ監視部402、ファイル監視部403、キャッシュ管理テーブル404、IO監視部405および仮想化制御部通信部406が格納される。
図5に、仮想化制御部202において、メモリマネージャ221が有する、調整履歴309、メモリ管理テーブル307および全体キャッシュ管理テーブル308、仮想マシン設定情報223、アクセス傾向判断機構222が有するポリシ313、それぞれの具体例を示す。
調整履歴309には、仮想化制御部202が管理している仮想マシンに対して、メモリ割当量の調整を行った履歴情報が格納されている。メモリ割当量の調整を行った時刻を511に、メモリ割当量の調整を行った仮想マシンの識別子であるマシンIDを512に、メモリ割当量の調整量を513に、それぞれ格納する。ここで、その調整量の符号について、正の値の場合はメモリの割当を行ったことを、負の値の場合はメモリの回収を行ったことを示す。例えば、図中の510は、時刻1373529522に、マシンAで識別される仮想マシンからサイズ3072(ただし負)のメモリを回収したことを示す。
メモリ管理テーブル307には、仮想化制御部202が管理しているメモリプール306において、その領域の仮想マシンへの割り当て状況を示す情報が格納されている。メモリを割り当てた仮想マシンの識別子であるマシンIDを521に、521で識別される仮想マシンに割り当てたメモリ領域の開始位置を522に、その終了位置を523に、それぞれ格納する。例えば、図中の520は、マシンAで識別される仮想マシンに、0x000000から0x09d7ffまでのメモリ領域を割り当てていることを示す。メモリプール306内で仮想マシンに割り当てていない領域は、マシンID521を未使用としてメモリ管理テーブル307に格納する。
全体キャッシュ管理テーブル308には、仮想化制御部202が管理している仮想マシンのキャッシュ使用状況を示す情報が格納されている。キャッシュ情報を取得した時刻を531に、仮想マシンの識別子であるマシンIDを532に、アクティブなキャッシュの容量を示すアクティブキャッシュを533に、非アクティブなキャッシュの容量を示す非アクティブキャッシュを534に、キャッシュヒット率を535に、それぞれ格納する。例えば、図中の530では、時刻1373529780の時点で、マシンAで識別される仮想マシンにおけるアクティブなキャッシュ容量が9であり、非アクティブなキャッシュ容量が4であり、キャッシュヒット率が52であることを示す。
仮想マシン設定情報223には、仮想化制御部202が管理している仮想マシンへのSLA(Service Level Agreement)要求が格納されている。SLAの保証対象である仮想マシンを識別するマシンIDを541に、当該仮想マシンに割り当てる最低キャッシュ容量を542に、当該仮想マシンに格納されるファイルのタイプを543に、それぞれ格納する。例えば、図中の540は、マシンAで識別される仮想マシンに割り当てるキャッシュ量の最低量は4096であり、当該仮想マシンに格納されるファイルのタイプはVMであることを示す。
ポリシ313には、ファイルタイプの判断に用いるパラメータと判断時のアクションが格納されている。ポリシの識別に使用するファイルタイプを551に、ファイルの特性を判断するパラメータの一つであるファイルサイズを552に、ファイルの特性を判断するパラメータの一つであるアクセスパタンを553に、条件を満たした場合に実行するアクションの内容を554に、それぞれ格納する。例えば、図中の550は、ファイルタイプVMで特定されるポリシは、ある仮想マシンでサイズ8192以上のファイルをオープンした場合、当該仮想マシンを300秒間メモリ調整対象から外すことを示す。本実施例では、ファイルサイズとアクセスパタンを、ファイル特性を判断するパラメータとしてポリシ313に格納しているが、アクセス頻度やアクセスサイズ等の別の値をパラメータとして使用することもできる。
図6に、仮想マシン203のOS241が有する利用状況監視機構251に格納される、キャッシュ管理テーブル404の具体例を示す。キャッシュ管理テーブル404には、仮想マシンのキャッシュ使用状況を示す情報が格納されている。アクティブなキャッシュの容量を示すアクティブキャッシュを611に、非アクティブなキャッシュの容量を示す非アクティブキャッシュを612に、キャッシュヒット率を613に、それぞれ格納する。例えば、図中の610には、キャッシュ管理テーブル404を有する仮想マシンにおいて、アクティブなキャッシュ容量が9であり、非アクティブなキャッシュ容量が4であり、キャッシュヒット率が52であることを示す。
図7に、仮想化制御部202のメモリマネージャ221による、メモリ割当処理フローを示す。
仮想化制御部202は、新規仮想マシンの作成等のイベント発生を契機に、メモリの確保を必要とする。ここで、その確保が必要となるメモリの容量を、確保要求容量とする。確保要求容量は、例えば作成する新規仮想マシンの設定ファイルから取得することができる。
ステップ701において、割当部304は、メモリ管理テーブル307を走査し、マシンIDが未使用である領域のサイズを合計して、未割当メモリ容量を取得する。
ステップ702において、割当部304は、未割当メモリ容量と確保要求容量を比較する。
ステップ703において、未割当メモリ容量よりも確保要求容量の方が大きい場合、メモリの回収処理が実施される。メモリの回収処理の詳細については、後述する。
先のステップ702で確保要求容量が未割当メモリ容量以下の場合、またはステップ703の回収処理の実施後に、ステップ704において、割当部304は、新規に作成する仮想マシンに要求容量のメモリを割り当てる。
ステップ705において、テーブル操作部305は、メモリ管理テーブル307の当該割当領域に対応するマシンID521を、メモリを割り当てた新規作成の仮想マシンを識別するIDに変更し、また、調整履歴309には、現在時刻、メモリを割り当てた仮想マシンのIDを格納し、メモリ割当量を調整量として格納する。
図8に、仮想化制御部202のメモリマネージャ221による、全体キャッシュ管理テーブル308の作成処理フローを示す。本処理フローは、メモリ割当処理フロー(図7)のステップ703でメモリの回収要求が発生した場合に実施される。また、定期的に実施してもよい。
ステップ801において、テーブル操作部305は、現在時刻を取得し、全体キャッシュ管理テーブル308の時刻531に格納する。
ステップ802において、仮想マシン通信部A301は、キャッシュ監視要求をメモリ割当調整対象である全仮想マシンに対して発行する。なお、基本的に、仮想化制御部202が管理する仮想マシンは、全てメモリ割当調整対象である。ただし、後述するSLA対応やその他の理由で該当する仮想マシンを調整対象から除外してもよい。
ステップ803の監視処理は、ステップ802で監視要求を受けた仮想マシン203が実施する。その処理フローについては後述する。
ステップ804において、仮想マシン通信部A301は、仮想マシン203から監視結果を受信し、テーブル操作部305は、受信した監視結果であるアクティブキャッシュ、非アクティブキャッシュ、キャッシュヒット率(すなわち、キャッシュ管理テーブル404(図6)の情報)およびこれらの結果を送信した仮想マシンのマシンIDを、全体キャッシュ管理テーブル308に格納する。
ステップ805において、仮想マシン通信部A301は、メモリ割当調整対象である全仮想マシンから監視結果を受信したか確認し、未受信の仮想マシンがある場合には(受信未完)、ステップ804に戻り監視結果の受信を待ち、全ての仮想マシンから結果を受信した場合には(受信完了)、処理を終了する。
図9に、仮想マシン203の利用状況監視機構251による、監視処理フロー(全体キャッシュ管理テーブル308の作成処理フロー(図8)のステップ803)を示す。
ステップ901において、仮想化制御部通信部406は、全体キャッシュ管理テーブル308の作成処理フロー(図8)のステップ802によって、仮想化制御部202から発行された監視要求を受信する。
ステップ902において、IO監視部405は、一定期間、ファイル管理機構254へのIO要求および仮想デバイス233へのIO要求を監視する。ファイル管理機構254が受信したIO要求の内、一部のIOはキャッシュにヒットするため仮想デバイス233にIO要求を発行することなく、IO要求結果を取得することができる。このことから、ファイル管理機構254と仮想デバイス233へのIO要求量の差が、キャッシュヒットしたIO要求量と判断できる。一定期間内にファイル管理機構254に対して発行されるIOサイズの総量(「IO1」とする)、および一定期間内に仮想デバイス233に対して発行されるIOサイズの総量(「IO2」とする)を取得する。
ステップ903において、ヒット率算出部401は、ステップ902で取得した、ファイル管理機構254に対して発行されるIOサイズの総量IO1および仮想デバイス233に対して発行されるIOサイズの総量IO2を基にキャッシュヒット率を算出する。具体的には、{(IO1−IO2)/IO1}によりキャッシュヒット率を算出する。この算出値をキャッシュ管理テーブル404(図6)のキャッシュヒット率613に格納する。
なお、ステップ902、903は、ステップ901とは非同期にして定期的に実行してもよい。
ステップ904において、キャッシュ監視部402は、ファイル管理機構254を監視し、使用されているキャッシュのリスト長を取得し、キャッシュ管理テーブル404(図6)にアクティブキャッシュ611として格納する。
ステップ905において、キャッシュ監視部402は、ファイル管理機構254を監視し、使用されていないキャッシュのリスト長を取得し、キャッシュ管理テーブル404(図6)に非アクティブキャッシュ612として格納する。
なお、ステップ904、905で取得する情報は、アクティブキャッシュ、非アクティブキャッシュの使用状況を示す情報であれば、リスト長情報でなくてもよい。
ステップ906において、仮想化制御部通信部406は、作成したキャッシュ管理テーブル404の情報を監視結果として仮想化制御部202に送信する。
図10に、仮想化制御部202のメモリマネージャ221による、メモリの回収先および回収量の決定処理フローを示す。
本処理フローは、メモリ割当処理フロー(図7)のステップ703で実施される。また、全体キャッシュ管理テーブル308の作成処理(図8)が、このステップ703のメモリの回収要求を契機に実施される場合には、本処理は全体キャッシュ管理テーブル308の作成処理の実施後に実施される。
ステップ1001において、回収部303は、仮想マシン設定情報223の最低キャッシュ量542および全体キャッシュ管理テーブル308のアクティブキャッシュ533と非アクティブキャッシュ534を確認し、メモリ割当調整対象である各仮想マシンのメモリの回収可能量を算出する。具体的には、{(メモリの回収可能量)=(アクティブキャッシュと非アクティブキャッシュから算出される総キャッシュ量)−(最低キャッシュ量)}により、回収可能なメモリ量を算出する。
ステップ1002において、回収部303は、全体キャッシュ管理テーブル308に格納されている時刻531を確認し、直近の時刻に登録された全仮想マシンの非アクティブキャッシュを取得して、メモリの回収率を算出する。具体例として、仮想マシンAの非アクティブリスト長が6、仮想マシンBの非アクティブリスト長が12である場合には、仮想マシンAと仮想マシンBから、メモリの回収率として、6:12=1:2の割合でメモリを回収することになる。
ステップ1003において、回収部303は、ステップ1002で算出したメモリ割当調整対象である各仮想マシンのメモリの回収率に従って、メモリの回収要求量を算出する。上記の具体例では、3GBのメモリの回収が必要な場合、仮想マシンAと仮想マシンBの回収率1:2から、仮想マシンAへの回収要求量は1GB、仮想マシンBへの回収要求量は2GBとなる。
ステップ1004において、回収部303は、メモリ割当調整対象である各仮想マシンについて、ステップ1001で求めたメモリの回収可能量とステップ1003で求めたメモリの回収要求量を比較する。
この比較の結果、回収要求量の方が回収可能量よりも大きい仮想マシンがある場合には、ステップ1005において、回収部303は、当該仮想マシンへの回収量を回収可能量に設定する。上記の具体例では、仮想マシンBへの回収要求量は2GBであったところ、仮想マシンBの回収可能量が1.8GBである場合、仮想マシンBのメモリの回収量を1.8GBに設定する。
ステップ1006において、回収部303は、回収要求量算出条件を変更する。メモリ割当調整対象の仮想マシンから、ステップ1005で回収量の設定を行った仮想マシンを除外し、必要なメモリの回収量からステップ1005で設定を行ったメモリの回収量を差し引く。上記の具体例では、メモリ割当調整対象から仮想マシンBを除外し、メモリの回収量を3GBから、仮想マシンBの回収量1.8GB分を差し引いて1.2GBに変更する。
ステップ1007において、回収部303は、メモリ割当調整対象の仮想マシンが残存しているかを確認する。メモリ割当調整対象の仮想マシンが残存しない場合、その時点において回収量の設定をした仮想マシンに対して回収を要求するために、ステップ1009へ移行する。他方、メモリ割当調整対象の仮想マシンが残存する場合、ステップ1006で変更した条件を用いてステップ1003へ戻り、処理を続行する。
ステップ1004での比較の結果、全ての仮想マシンにおいて回収可能量の方が回収要求量よりも大きい場合には、ステップ1008において、回収部303は、各仮想マシンの回収量を回収要求量に設定する。
ステップ1009において、仮想マシン通信部A301は、ステップ1005またはステップ1008で設定した回収量によるメモリの回収要求を各仮想マシンに発行する。仮想マシン203は、バルーンドライバ253を用いて要求された容量のメモリを回収し、仮想化制御部202に通知する。メモリ回収処理は、例えば特許文献1に記載された方法を用いることで実施することができる。具体的には、バルーンドライバ253は要求された容量のメモリを確保する。これにより確保された領域は、当該仮想マシン上で稼働する他のアプリケーションやキャッシュとして使用されない領域となる。本領域を回収可能領域として、仮想化制御部202に通知する。
ステップ1010において、仮想マシン通信部A301は、各仮想マシンから通知される回収済みのメモリ領域情報を受信する。テーブル操作部305は、各仮想マシンから回収したメモリ領域について、メモリ管理テーブル307の当該回収領域に対応するマシンIDを未使用に変更し、また、調整履歴309には、現在時刻、仮想マシンのIDを格納し、回収量を調整量として格納する。
以上により、新規仮想マシンの作成等に必要なメモリの確保要求容量が不足していた場合に、稼働中の仮想マシンからメモリを回収することで必要な確保要求容量を満たすことが可能となる。なお本手法では、各仮想マシンのキャッシュ使用状況に応じてメモリ回収を行なう。よって、稼働中の仮想マシンの性能を確保しつつ、必要性の低いところからのメモリ回収を実現することによってシステム全体の性能への影響を減らすことができる。
図11に、仮想化制御部202のメモリマネージャ221による、メモリ平衡割当処理フローを示す。本処理フローは、システム全体のキャッシュヒット率を向上させるため、定期的に実施する。また、ユーザの指定等により実施することもできる。
ステップ1101において、割当調整部302は、全体キャッシュ管理テーブル308に格納されている各仮想マシンのキャッシュヒット率の変化量を取得する。この変化量は、過去のキャッシュヒット率から直近のキャッシュヒット率を差し引いて算出する。例えば、全体キャッシュ管理テーブル308(図5)の、時刻1373529400から1373529780において、仮想マシンAのキャッシュヒット率の変化量は15(=67−52)であり、仮想マシンBのキャッシュヒット率の変化量は1(=6−5)である。
ステップ1102において、割当調整部302は、ステップ1101で取得した各仮想マシンのキャッシュヒット率の変化量の中でその変化量が最大である値と閾値を比較する。変化量が大きい仮想マシンにおいては、以前のメモリ回収により性能が大きく劣化、またはメモリ割当により性能が大きく向上している。つまり、変化量の大きい仮想マシンは、メモリ回収/割当の影響が性能に及びやすい環境といえる。変化量の方が閾値よりも大きい場合は、ステップ1103に進み、閾値の方が変化量よりも大きい場合は、本処理フローを終了する。例えば、閾値が12と設定されていた場合、仮想マシンAのキャッシュヒット率の変化量(=15)は閾値以上のため、ステップ1103に進むことになる。閾値は、予め設定されているものとし、ユーザがそれを与えるようにしてもよい。
ステップ1103において、割当調整部302は、キャッシュヒット率の変化量が閾値以上の仮想マシンについて、ステップ1101でキャッシュヒット率の変化量を取得した期間に実施した、メモリの調整量の総量を調整履歴309から取得し、前回の回収量とする。例えば、ステップ1101でキャッシュヒット率の変化量を取得した期間である時刻1373529400から1373529780の間には、調整履歴309(図5)から、時刻1373529522において仮想マシンAから3072のメモリを回収していることがわかる。この値3072を前回の回収量とする。
ステップ1104において、回収部303は、メモリ回収先および回収量の決定処理フロー(図10)におけるステップ1001および1002を実施し、メモリ割当調整対象である各仮想マシンのメモリの回収可能量および回収率を算出する。
ステップ1105において、回収部303は、ステップ1103で取得した前回の回収量とステップ1104で算出したメモリの回収可能量の総量を比較する。前回の回収量の方が回収可能量よりも大きい場合には、ステップ1106において回収量を回収可能量に設定し、回収可能量の方が前回の回収量よりも大きい場合には、ステップ1107において回収量を前回の回収量に設定する。
ステップ1108において、回収部303は、ステップ1104で算出したメモリの回収率と、ステップ1106または1107で設定した回収量を元に、各仮想マシンに対するメモリの回収要求量を決定する。
ステップ1109において、仮想マシン通信部A301は、メモリ回収先および回収量の決定処理フロー(図10)のステップ1009と同じように、メモリの回収要求を各仮想マシンに発行する。
ステップ1110において、仮想マシン通信部A301は、各仮想マシンから通知される回収済みのメモリ領域情報を受信する。
ステップ1111において、割当部304は、ステップ1102でキャッシュヒット率の変化量が閾値以上であった仮想マシンに対して、ステップ1110で回収したメモリを割り当てる要求を発行する。
ステップ1112において、テーブル操作部305は、メモリ管理テーブル307において、ステップ1109で回収したメモリ領域のマシンIDを、ステップ1111でメモリを割り当てた仮想マシンIDに変更する。調整履歴309には、現在時刻、メモリの回収および割当を行った仮想マシンのIDを格納し、回収した割当量を調整量として格納する。
以上により、キャッシュヒット率の低い仮想マシンから回収したメモリを、キャッシュヒット率の高い仮想マシンに割り当てることが可能となり、システム全体のキャッシュヒット率を向上させることができる。
図12に、仮想化制御部202のアクセス傾向判断機構222による、SLA対応処理フローを示す。
ステップ1201において、特性判断部312は、仮想マシンの起動時に仮想マシン設定情報223に当該仮想マシンのファイルタイプ543が設定されている場合、または稼働中の仮想マシンに対するファイルタイプ情報が設定された場合に、当該ファイルタイプにしたがって、ポリシ313から対応するファイルサイズ552およびアクセスパタン553を取得する。仮想マシン通信部B311は、仮想マシン設定情報223に格納された仮想マシンID541により特定される仮想マシン203に対して、特性判断を要求し、その判断用のパラメータとしてファイルサイズおよびアクセスパタンを送信する。
ステップ1202において、特性判断要求を受けた仮想マシン203は、特性判断処理を実施する。処理フローについては後述する。
ステップ1203において、仮想マシン通信部B311は、特性判断処理を行った仮想マシン203からの特性判断結果を受信する。
ステップ1204において、特性判断部312は、特性判断結果に基づき、ポリシ313を参照しポリシ313に記載されたアクション554を実施する。例えば、仮想マシンAがファイルタイプVMの特性を満たした場合、仮想マシンAを300秒間メモリ割当調整対象から外す。
図13に、仮想マシン203の利用状況監視機構251(主にファイル監視部403)による特性判断処理フロー(SLA対応処理フロー(図12)のステップ1202)を示す。
ステップ1301において、仮想化制御部通信部406は、SLA対応処理フロー(図12)のステップ1201にて、仮想化制御部202から送信された特性判断要求および特性判断用のパラメータであるファイルサイズおよびアクセスパタンを受信する。
ステップ1302において、ファイル監視部403は、ファイルアクセスを監視する。
ステップ1303において、ファイル監視部403は、ファイルアクセスが発生すると、当該アクセスが、仮想化制御部202から送信されたファイルサイズおよびアクセスパタンの条件を満たすか確認する。条件を満たさない場合は、ステップ1302に戻る。条件を満たす場合は、ステップ1304において、仮想化制御部通信部406は、特性判断結果としてファイル特性を満たしたことを仮想化制御部202に通知する。
以上により、仮想マシンの特性に応じたメモリ割当量の調整が可能になる。例えば新規VMが稼働したことで、キャッシュアクセス傾向が変わった仮想マシンを想定する。本処理がない場合、新規VMの稼働によるキャッシュヒット率の低下を検知してメモリ回収が行われる。本処理がある場合、キャッシュヒット率の低下は一時的なものと判断し、一定時間キャッシュヒット状況を確認した後にメモリ割当量の調整を行なうことができる。
201 物理リソース
202 仮想化制御部
203 仮想マシン
211 CPU
212 メモリ
213 デバイス
221 メモリマネージャ
222 アクセス傾向判断機構
223 仮想マシン設定情報
231 仮想CPU
232 仮想メモリ
233 仮想デバイス
241 OS
251 利用状況監視機構
252 メモリ管理機構
253 バルーンドライバ
254 ファイル管理機能
301 仮想マシン通信部A
302 割当調整部
303 回収部
304 割当部
305 テーブル操作部
306 メモリプール
307 メモリ管理テーブル
308 全体キャッシュ管理テーブル
309 調整履歴
311 仮想マシン通信部B
312 特性判断部
313 ポリシ
401 ヒット率算出部
402 キャッシュ監視部
403 ファイル監視部
404 キャッシュ管理テーブル
405 IO監視部
406 仮想化制御部通信部
前述のメモリバルーニング方式では、仮想マシン内でのスワップの発生や仮想マシンの監視結果をもとづいてメモリを回収が行なわれる。しかし、仮想マシンにおけるキャッシュの使用状況を考慮せずにメモリを回収することで、キャッシュミスが増加してIO性能が劣化する場合が想定される。
複数の仮想マシンが有する各OSが使用するメモリ内のキャッシュ領域の使用状況を監視し、その監視結果に基づいて、仮想化制御部は、各OSに割り当て済みであるメモリの割当領域の中から回収対象となるメモリの割当領域を決定し、その回収対象となるメモリの割当領域を現在の割当先であるOSから回収する。
仮想化制御部が有するメモリプールにおけるメモリの割当例を示す図である。 本発明に係る計算機システムの全体構成を示す図である。 図2に示した全体構成の内、仮想化制御部の構成図を示す図である。 図2に示した全体構成の内、仮想マシンの構成図を示す図である。 図3に示した、仮想化制御部内のメモリマネージャが有する、調整履歴、メモリ管理テーブル、全体キャッシュ管理テーブル、仮想マシン設定情報、ポリシの具体例を示す図である。 図4に示した、仮想マシン内の使用状況監視機構が有するキャッシュ管理テーブルの例を示す図である。 仮想化制御部のメモリマネージャにより実行されるメモリ割当処理のフローチャートを示す図である。 仮想化制御部のメモリマネージャにより実行される全体キャッシュ管理テーブル作成の処理フローチャートを示す図である。 仮想マシンの使用状況監視機構により実行される監視処理のフローチャートを示す図である。 仮想化制御部のメモリマネージャにより実行されるメモリ回収先および回収量の決定処理のフローチャートを示す図である。 仮想化制御部のメモリマネージャにより実行されるメモリ平衡割当処理のフローチャートを示す図である。 仮想化制御部のアクセス傾向判断機構により実行されるSLA対応処理のフローチャートを示す図である。 仮想マシンの使用状況監視機構(主にファイル監視部)により実行されるSLA対応処理内の特性判断処理のフローチャートを示す図である。
OS241上で実行されたIOは、ファイル管理機構254を介して仮想デバイス233に発行される。OSは、一度デバイスに対して発行したIOの結果を、OSが認識する仮想メモリ232の内、使用していない領域に保存する。このようにデータの一時格納に用いられる仮想メモリの領域をキャッシュと呼ぶ。仮想メモリはこのキャッシュ用途以外に、例えばOSやOS上で稼働するアプリケーションが使用する情報の格納先として使用される。
OS上で稼働するワークロードによってIOがキャッシュにヒットする確率は異なる。広範な領域にランダムにアクセスするワークロードの場合、IOはキャッシュにヒットし難く、局所的な領域にアクセスするワークロードの場合、IOはキャッシュにヒットしやすい。一方で、上記のようにキャッシュ用途以外に使用される仮想メモリの領域はほぼ変動しにくい性質であることも考え合わせると割り当てられるメモリ領域は大きい程、OSがキャッシュとして使用できる領域は拡大することになる。
以上より、前者のワークロードが稼働しているOSよりも後者のワークロードが稼働しているOSにメモリを多量に割当てることで、前者のOSよりも後者のOSに多量のキャッシュが割当たることとなり、システム全体のIO性能は向上する。
OS241には、仮想メモリ232の一部領域であるキャッシュの使用状況やファイルアクセス状況を監視する機構である使用状況監視機構251が格納される。
また、仮想マシン203は、仮想化制御部202からキャッシュの使用状況監視要求を受けると、使用状況監視機構251によりファイル管理機構254からキャッシュの使用状況を取得し、仮想化制御部202のメモリマネージャ221に通知する。なお、この使用状況監視処理は、監視要求によらず定期的に実施されてもよい。
メモリマネージャ221は、仮想化制御部202が管理する複数の仮想マシン203から通知されるキャッシュの使用状況を集約し、仮想マシン設定情報223に格納されている最低キャッシュ量の情報と照らし合わせの上、キャッシュを有効に使用していない仮想マシンから優先的にメモリを回収する。
例えば、仮想化制御部202は、新規の仮想マシンの起動等でメモリが必要となると、メモリプールの未割当領域から必要量のメモリを確保する。未割当領域の容量が必要量を満たさない場合、仮想マシン203のOS241が有するバルーンドライバ253を介して、稼働中の仮想マシン203からメモリを回収する。仮想化制御部202は、メモリを回収する際に、仮想マシン203のキャッシュの使用状況を確認し、メモリの回収対象となる仮想マシンおよび各仮想マシンに対するメモリの回収量を決定する。
なお、仮想マシン設定情報223にファイルタイプが設定されている場合、アクセス傾向判断機構222が仮想マシン203にファイルアクセス傾向監視要求を発行する。仮想マシン203は、使用状況監視機構251により、仮想マシン203におけるファイルアクセスを監視する。条件を満たすアクセスが発生した場合、その結果を仮想化制御部202に通知する。仮想化制御部202は、その結果に基づきメモリの回収処理を制御する。
OS241は、使用状況監視機構251、メモリ管理機構252、バルーンドライバ253およびファイル管理機構254を有する。使用状況監視機構251には、ヒット率算出部401、キャッシュ監視部402、ファイル監視部403、キャッシュ管理テーブル404、IO監視部405および仮想化制御部通信部406が格納される。
図6に、仮想マシン203のOS241が有する使用状況監視機構251に格納される、キャッシュ管理テーブル404の具体例を示す。キャッシュ管理テーブル404には、仮想マシンのキャッシュ使用状況を示す情報が格納されている。アクティブなキャッシュの容量を示すアクティブキャッシュを611に、非アクティブなキャッシュの容量を示す非アクティブキャッシュを612に、キャッシュヒット率を613に、それぞれ格納する。例えば、図中の610には、キャッシュ管理テーブル404を有する仮想マシンにおいて、アクティブなキャッシュ容量が9であり、非アクティブなキャッシュ容量が4であり、キャッシュヒット率が52であることを示す。
図9に、仮想マシン203の使用状況監視機構251による、監視処理フロー(全体キャッシュ管理テーブル308の作成処理フロー(図8)のステップ803)を示す。
ステップ901において、仮想化制御部通信部406は、全体キャッシュ管理テーブル308の作成処理フロー(図8)のステップ802によって、仮想化制御部202から発行された監視要求を受信する。
図13に、仮想マシン203の使用状況監視機構251(主にファイル監視部403)による特性判断処理フロー(SLA対応処理フロー(図12)のステップ1202)を示す。
ステップ1301において、仮想化制御部通信部406は、SLA対応処理フロー(図12)のステップ1201にて、仮想化制御部202から送信された特性判断要求および特性判断用のパラメータであるファイルサイズおよびアクセスパタンを受信する。
ステップ1302において、ファイル監視部403は、ファイルアクセスを監視する。
201 物理リソース
202 仮想化制御部
203 仮想マシン
211 CPU
212 メモリ
213 デバイス
221 メモリマネージャ
222 アクセス傾向判断機構
223 仮想マシン設定情報
231 仮想CPU
232 仮想メモリ
233 仮想デバイス
241 OS
251 使用状況監視機構
252 メモリ管理機構
253 バルーンドライバ
254 ファイル管理機能
301 仮想マシン通信部A
302 割当調整部
303 回収部
304 割当部
305 テーブル操作部
306 メモリプール
307 メモリ管理テーブル
308 全体キャッシュ管理テーブル
309 調整履歴
311 仮想マシン通信部B
312 特性判断部
313 ポリシ
401 ヒット率算出部
402 キャッシュ監視部
403 ファイル監視部
404 キャッシュ管理テーブル
405 IO監視部
406 仮想化制御部通信部

Claims (9)

  1. それぞれにOSを有する複数の仮想マシンと、
    前記複数の仮想マシンを管理する仮想化制御部と、
    前記OSそれぞれが少なくとも一部をキャッシュ領域として利用するメモリと、
    前記OSそれぞれによる前記キャッシュ領域の利用状況を監視する監視部と、
    を有し、
    前記仮想化制御部は、
    前記OSそれぞれに対する前記メモリの割当領域を管理し、
    前記監視部から通知される前記キャッシュ領域の使用状況に基づいて、前記OSそれぞれに割り当て済みである前記メモリの割当領域の中から回収対象となるメモリの割当領域を決定し、
    前記決定した回収対象となるメモリの割当領域を現在の割当先であるOSから回収する
    ことを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記キャッシュ領域の使用状況は、前記仮想化制御部から前記監視部に対する監視要求を受けた時点での前記キャッシュ領域で使用されているキャッシュ容量および使用されていないキャッシュ容量である
    ことを特徴とする計算機システム。
  3. 請求項1に記載の計算機システムであって、
    前記仮想化制御部は、
    前記メモリの割り当てを必要とするOSがあるか否かを判定し、該割り当てを必要とするOSがある場合には、前記回収したメモリの割当領域を当該OSに割り当てる
    ことを特徴とする計算機システム。
  4. 請求項3に記載の計算機システムであって、
    前記メモリの割り当てを必要とするOSは、新規仮想マシンの生成時に必要とするメモリ容量を確保できない場合の該新規仮想マシンのOSである
    ことを特徴とする計算機システム。
  5. 請求項3に記載の計算機システムであって、
    前記メモリの割り当てを必要とするOSは、前記キャッシュ領域のキャッシュヒット率の変化量が所定の閾値以上に低下した場合の既存仮想マシンのOSである
    ことを特徴とする計算機システム。
  6. 請求項5に記載の計算機システムであって、
    前記監視部は、前記キャッシュヒット率を、前記OSが有するファイル管理部に対して発行されるIOサイズの総量と前記OSを有する仮想マシンが有する仮想デバイスに対して発行されるIOサイズの総量に基づいて算出する
    ことを特徴とする計算機システム。
  7. 請求項5に記載の計算機システムであって、
    前記仮想化制御部は、
    前記監視部から通知される前記OSそれぞれが利用する前記キャッシュ領域のキャッシュヒット率から、前記変化量を算出する
    ことを特徴とする計算機システム。
  8. 請求項1に記載の計算機システムであって、
    前記複数の仮想マシンの少なくとも1つに対してSLA(Service Level Agreement)が設定されている場合には、
    前記仮想化制御部は、前記SLAが設定されている仮想マシンが該SLAの条件を満足するか否かの判断を前記監視部に要求し、該判断の結果に応じて該仮想マシンが有するOSが利用するメモリを前記回収対象となるメモリから外す
    ことを特徴とする計算機システム。
  9. それぞれにOSを有する複数の仮想マシンと、
    前記複数の仮想マシンを管理する仮想化制御部と、
    前記OSそれぞれが少なくとも一部をキャッシュ領域として利用するメモリと、
    を有する計算機システムであって、
    前記仮想制御部は、
    前記仮想マシンそれぞれのOSが利用する前記キャッシュ領域として割り当てた領域から前記仮想マシンそれぞれにおける前記メモリの回収可能量を算出する第1のステップと、
    前記キャッシュ領域の中で使用されていない容量に基づいて前記仮想マシンそれぞれの回収率を算出する第2のステップと、
    必要とされる回収量と前記回収率にしたがって前記仮想マシンそれぞれに対する回収要求量を算出する第3のステップと、
    前記仮想マシンそれぞれについて前記回収可能量と前記回収要求量を比較する第4のステップと、
    前記回収要求量の方が前記回収可能量より大きい仮想マシンについては該回収可能量を前記メモリの割当領域からの回収量として設定し、前記回収可能量の方が前記回収要求量より大きい仮想マシンについては該回収要求量を前記回収量として設定する第5のステップと、
    前記仮想マシンそれぞれに対して前記設定した回収量の回収を要求する第6のステップと、を有し、
    前記仮想マシンそれぞれのOSは、
    前記要求された回収量を前記メモリの割当領域から回収する第7のステップを有する
    ことを特徴とする計算機システムのメモリ割当調整方法。
JP2015538691A 2013-09-26 2013-09-26 計算機システムおよび計算機システムのメモリ割当調整方法 Expired - Fee Related JP6069515B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/075977 WO2015045046A1 (ja) 2013-09-26 2013-09-26 計算機システムおよび計算機システムのメモリ割当調整方法

Publications (2)

Publication Number Publication Date
JP6069515B2 JP6069515B2 (ja) 2017-02-01
JPWO2015045046A1 true JPWO2015045046A1 (ja) 2017-03-02

Family

ID=52742253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015538691A Expired - Fee Related JP6069515B2 (ja) 2013-09-26 2013-09-26 計算機システムおよび計算機システムのメモリ割当調整方法

Country Status (3)

Country Link
US (1) US9632931B2 (ja)
JP (1) JP6069515B2 (ja)
WO (1) WO2015045046A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016013086A1 (ja) * 2014-07-24 2016-01-28 株式会社日立製作所 計算機システムおよびメモリ割当管理方法
US9824030B2 (en) 2015-10-30 2017-11-21 International Business Machines Corporation Adjusting active cache size based on cache usage
US9811474B2 (en) * 2015-10-30 2017-11-07 International Business Machines Corporation Determining cache performance using a ghost cache list indicating tracks demoted from a cache list of tracks in a cache
US9811281B2 (en) * 2016-04-07 2017-11-07 International Business Machines Corporation Multi-tenant memory service for memory pool architectures
US10678578B2 (en) * 2016-06-30 2020-06-09 Microsoft Technology Licensing, Llc Systems and methods for live migration of a virtual machine based on heat map and access pattern
US20180292988A1 (en) * 2017-04-07 2018-10-11 GM Global Technology Operations LLC System and method for data access in a multicore processing system to reduce accesses to external memory
WO2018189847A1 (ja) * 2017-04-12 2018-10-18 株式会社日立製作所 ストレージ装置およびキャッシュメモリ管理方法
US10540295B2 (en) 2017-06-21 2020-01-21 International Business Machines Corporation Processing cache miss rates to determine memory space to add to an active cache to reduce a cache miss rate for the active cache
US10789090B2 (en) * 2017-11-09 2020-09-29 Electronics And Telecommunications Research Institute Method and apparatus for managing disaggregated memory
KR102441992B1 (ko) * 2017-11-09 2022-09-08 한국전자통신연구원 분리 메모리 관리 방법 및 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204760A (ja) * 1992-01-29 1993-08-13 Nec Corp 仮想計算機システムの制御方式
JP3959870B2 (ja) * 1998-10-12 2007-08-15 株式会社日立製作所 ディスク内容障害回復方法及び計算装置
JP2006350780A (ja) 2005-06-17 2006-12-28 Hitachi Ltd キャッシュ割当制御方法
US8095931B1 (en) 2006-04-27 2012-01-10 Vmware, Inc. Controlling memory conditions in a virtual machine
US8015383B2 (en) * 2007-06-27 2011-09-06 International Business Machines Corporation System, method and program to manage virtual memory allocated by a virtual machine control program
JP4862770B2 (ja) * 2007-07-20 2012-01-25 日本電気株式会社 仮想計算機システムにおけるメモリ管理方式及びその方法、およびプログラム
US20100274947A1 (en) 2009-04-27 2010-10-28 Hitachi, Ltd. Memory management method, memory management program, and memory management device
JP5673210B2 (ja) * 2011-02-28 2015-02-18 日本電気株式会社 仮想計算機システム、仮想計算機システムのメモリ管理方法およびメモリ管理プログラム

Also Published As

Publication number Publication date
JP6069515B2 (ja) 2017-02-01
WO2015045046A1 (ja) 2015-04-02
US9632931B2 (en) 2017-04-25
US20150378892A1 (en) 2015-12-31

Similar Documents

Publication Publication Date Title
JP6069515B2 (ja) 計算機システムおよび計算機システムのメモリ割当調整方法
JP5417287B2 (ja) 計算機システム、及び、計算機システムの制御方法
CN107003887B (zh) Cpu超载设置和云计算工作负荷调度机构
JP6219512B2 (ja) 仮想ハドゥープマネジャ
WO2012056596A1 (ja) 計算機システム及び処理制御方法
WO2017045576A1 (en) System and method for resource management
US9588789B2 (en) Management apparatus and workload distribution management method
EP3507692B1 (en) Resource oversubscription based on utilization patterns in computing systems
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
JP5332065B2 (ja) クラスタ構成管理方法、管理装置及びプログラム
US9448853B2 (en) Method of allocating physical computing resource of computer system
US10241836B2 (en) Resource management in a virtualized computing environment
JP2005309644A (ja) リソース制御方法及びそのシステム
WO2013029487A1 (zh) 一种资源分配方法及资源管理平台
Abdelsamea et al. Virtual machine consolidation challenges: A review
US9385964B2 (en) Resource management method and management server
US8914582B1 (en) Systems and methods for pinning content in cache
KR102469927B1 (ko) 분할 메모리 관리장치 및 방법
KR20150062634A (ko) 클라우드 컴퓨팅 환경 내 오토 스케일링 시스템 및 방법
JP5218985B2 (ja) メモリ管理方法計算機システム及びプログラム
CA2876379A1 (en) Memory management in presence of asymmetrical memory transfer costs
US20200272526A1 (en) Methods and systems for automated scaling of computing clusters
CN111580951A (zh) 一种任务分配方法及资源管理平台
Acharya et al. A taxonomy of Live Virtual Machine (VM) Migration mechanisms in cloud computing environment
KR20160043706A (ko) 가상 머신 스케일링 장치 및 그 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161111

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: 20161213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161226

R150 Certificate of patent or registration of utility model

Ref document number: 6069515

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees