JP4702127B2 - 仮想計算機システム及びその物理リソース再構成方法並びにプログラム - Google Patents

仮想計算機システム及びその物理リソース再構成方法並びにプログラム Download PDF

Info

Publication number
JP4702127B2
JP4702127B2 JP2006077930A JP2006077930A JP4702127B2 JP 4702127 B2 JP4702127 B2 JP 4702127B2 JP 2006077930 A JP2006077930 A JP 2006077930A JP 2006077930 A JP2006077930 A JP 2006077930A JP 4702127 B2 JP4702127 B2 JP 4702127B2
Authority
JP
Japan
Prior art keywords
virtual machine
physical resource
affinity information
virtual
memory access
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.)
Expired - Fee Related
Application number
JP2006077930A
Other languages
English (en)
Other versions
JP2007257097A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2006077930A priority Critical patent/JP4702127B2/ja
Priority to US11/723,601 priority patent/US7865686B2/en
Publication of JP2007257097A publication Critical patent/JP2007257097A/ja
Application granted granted Critical
Publication of JP4702127B2 publication Critical patent/JP4702127B2/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
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は仮想計算機システム及びその物理リソース再構成方法並びにプログラムに関し、特にノード内とノード間とにおいてメモリアクセス時間が相違し複数のノード上でプロセスを実行する仮想プロセッサをハイパーバイザが制御する仮想計算機システム及びその物理リソース再構成方法に関するものである。
NUMA(Non Uniform Memory Access :非均一メモリアクセス)型マルチプロセッサシステム(特許文献1参照)は、アクセスするメモリの領域によってプロセッサ−メモリ間のレイテンシや帯域幅が異なるという特徴を持つ共有メモリ型マルチプロセッサシステムの一種である。一般的なNUMAアーキテクチャの実装には、例えば、複数のUMA(Uniform Memory Access :均一メモリアクセス)構成のグループ(以下、ノードと呼ぶ)間を全結合した形(図2参照)や、ノード間をポイントトゥーポイント接続した形などがある。
いずれも、ローカルメモリ(プロセッサが属するノードのメモリ)へのアクセスと、リモートメモリ(外のノードのメモリ)へのアクセスとの速度には差がある(このアクセス速度の差のことを、以下では「ノード間の距離」または「ノード間のアフィニティ(Affinity:親和性)」と表現する)。
この特性のために、NUMAアーキテクチャのシステムで良い性能を得るには、メモリアクセスをできるだけ局所化することが有効である。そのため、OSではSLIT(System Locality Information Table)やSRAT(Static Resource Affinity Table)などと呼ばれる物理リソース間(CPU/メモリ/IO)のアフィニティを記憶した表(以下、アフィニティテーブルと呼ぶ)を用いて、ノード間を極力またがないようなメモリ領域の割り当てを行うメモリ管理方法や、プロセスやスレッドが動作するプロセッサをできるだけ移動させないスケジューラなどの仕組みが実現されている。
この仕組みはあくまでOSの起動時にアフィニティ情報を読み込んで利用するという静的な運用ができるだけであって、動的にアフィニティテーブルを更新してシステムの動的な変更に対応する技術はまだ存在しない。
一方、仮想計算機システムには、リソースを有効に活用するために仮想マシンの負荷の変動に対応してシステムを停止することなく、ゲストOSのHotplug機能を利用して動的にリソースの割り当て配分を変えるという仕組みを備えたものが存在する。しかしながら、このような技術においてNUMAアーキテクチャ特有のアフィニティ情報を考慮に入れてリソースの配置を最適化することにより性能を引き出せるような構成にする技術はまだ存在しない。
なお、関連する技術として特許文献2,3がある。
特公表2004−530196号公報 特開2002−202959号公報 特開2003−157177号公報
従来の仮想計算機システムでは、仮想リソースに対して物理リソースの割り当てを行う際にアフィニティを考慮に入れていない。そのために、リソースがNUMA型システムの性能を引き出せない構成で割り当てられる可能性がある。また、リソースがリモートノードへのメモリアクセスが頻発してしまうような割り当てがなされている場合、リソースの割り当てを見直して、できるだけローカルノードへのアクセスで済むように再構成しなおす仕組みが考えられる。
しかし、従来は、仮想マシンにおけるメモリアクセスの性能またはその指標となる量(以下、メモリアクセスの性能と表現する)を定量的に計る方法がないために、どの仮想マシンを再構成したら効率がよいのかを正確に判断することができない。
また、再構成する仮想マシンを決定したとしても、それに割り当てるための効率の良い構成を決定することが困難である。なぜならば、仮想マシンに割り当てる物理リソースの構成が変更された場合に、どの程度メモリアクセスの性能が改善されるかを予測する方法がないためである。
更にはまた、従来のOSには、アフィニティテーブルの動的な変化に対応する仕組みが存在しないために、ハイパーバイザが仮想マシンに対して動的に構成変更を行っても、OSを再起動しない限り、そのOSはそのリソースを効率的に使用することができない。
本発明の目的は、どの仮想マシンを優先的に再構成すべきか判断できるようにした仮想計算機システム及びその物理リソース再構成方法並びにプログラムを提供することである。
本発明の他の目的は、現在の構成と比較して、よりメモリアクセスの遅延総和が少なくなる構成を探すことが可能な仮想計算機システム及びその物理リソース再構成方法並びにプログラムを提供することである。
本発明の更に他の目的は、物理リソースの動的な再構成を行った際に、OSの動作を停止させることなく、OSがリソースの効率的な利用を行うことが可能な仮想計算機システム及びその物理リソース再構成方法並びにプログラムを提供することである。
本発明による仮想計算機システムは、
ハイパーバイザが複数の物理リソースを複数の仮想マシンに動的に割り当て制御する仮想計算機システムであって、
前記ハイパーバイザは、
前記物理リソースを構成する複数のノード間の通信のレイテンシや帯域を示すアフィニティ情報と前記ノード間の通信量とに基づいて、前記仮想マシン上のメモリアクセスの遅延時間の総和を求める手段と、
前記遅延時間の総和が閾値を超えた仮想マシンに対して当該閾値を超えない物理リソースの割り当てをなす手段と、
を含むことを特徴とする。
本発明による物理リソース再構成方法は、
ハイパーバイザが複数の物理リソースを複数の仮想マシンに動的に割り当て制御する仮想計算機システムにおける物理リソース再構成方法であって、
前記ハイパーバイザにおいて、
前記物理リソースを構成する複数のノード間の通信のレイテンシや帯域を示すアフィニティ情報と前記ノード間の通信量とに基づいて、前記仮想マシン上のメモリアクセスの遅延時間の総和を求めるステップと、
前記遅延時間の総和が閾値を超えた仮想マシンに対して当該閾値を超えない物理リソースの割り当てをなすステップと、
を含むことを特徴とする。
本発明によるプログラムは、
ハイパーバイザが複数の物理リソースを複数の仮想マシンに動的に割り当て制御する仮想計算機システムにおける物理リソース再構成方法をコンピュータに実行させるためのプログラムであって、
前記物理リソースを構成する複数のノード間の通信のレイテンシや帯域を示すアフィニティ情報と前記ノード間の通信量とに基づいて、前記仮想マシン上のメモリアクセスの遅延時間の総和を求める処理と、
前記遅延時間の総和が閾値を超えた仮想マシンに対して当該閾値を超えない物理リソースの割り当てをなす処理と、
を含むことを特徴とする。
本発明の作用を述べる。本発明による仮想計算機システムでは、メモリアクセスの遅延総和をメモリアクセスの性能の指標値として用いる。この仮想マシン上のメモリアクセスの遅延総和を求めるために、以下に列挙される手段を有する。
(1)プロセッサ間通信のアフィニティ情報を取得する手段。ここで、アフィニティ情報とは、主な意図としては、ノード間メモリアクセスのレイテンシのことであるが、ノード間の帯域情報を含む場合も考えられる。
(2)任意の仮想マシン内の任意の二つの仮想プロセッサ間のメモリトランザクション量を推定する手段。ここで、メモリトランザクション量とは、これとアフィニティ情報とを合わせると、メモリアクセスの遅延総和を導くことができる指標のことである。例えば、ノード間メモリアクセスのレイテンシ(アフィニティ情報)とメモリへのアクセス回数(メモリトランザクション量)とが分かれば、その積はレイテンシによるメモリアクセスの遅延時間の総和となる。また、ノード間の帯域(アフィニティ情報)とメモリへのアクセス量(メモリトランザクション量)とにより、帯域幅を指標としたメモリアクセスの遅延時間の総和が分かる。
(3)任意の仮想マシンについて、アフィニティ情報とその仮想マシン内の任意の二つの仮想プロセッサ間のトランザクション量の推定値とに基づいて、その仮想マシンの仮想リソースに対する物理リソースの割り当てを任意に変えた構成でメモリアクセスの遅延総和を推定する手段。ここで、「任意に変えた構成」として現在のリソース割り当て構成を用いれば、仮想マシンの現在の構成におけるメモリアクセスの遅延総和も推定できる。
また、本発明の仮想計算機システムは、上記で求められたメモリアクセスの遅延総和を用いて、構成の動的最適化を行うために、以下に列挙される手段を有する。
(4)物理リソースの再構成を行うかどうかを判断する手段。ここで、再構成を行う判断基準としては、(a)ユーザが直接再構成指示を出したら再構成を行う、(b)定期的に必ず再構成を行う、(c)仮想マシンにメモリアクセスの遅延総和の許容閾値を設け、仮想マシンのメモリアクセスの遅延総和が閾値を超過したら再構成を行う、(d)現在の構成における全ての仮想マシンのメモリアクセスの遅延総和が規定値を上回ったら再構成を行う、などが考えられる。どのような判断基準をもって再構成を行うか判断するかは、予めユーザがポリシーとして設定できるようにする。また、(c)や(d)のようなメモリアクセスの遅延総和の測定に基づいて再構成判断を行う場合、単発の測定の結果で再構成判断が行われると頻繁に再構成が行われてパフォーマンスが落ちることが予想される。そのため、十分なインターバルを置いて複数回測定を行い、それらを総合した情報で再構成判断を行うという手段も考えられる。
(5)新しい構成を決定する手段。新しい構成としては、(a)(4)で述べた最適な割り当てを行う、(b)メモリアクセスの遅延総和が閾値を超えた仮想マシンについてのみ性能ロスを閾値以下に抑えるような割り当てを行う、(c)プライオリティの高い仮想マシンに対して優先的に距離の近いプロセッサやメモリを割り当てる、などが考えられる。この決定ポリシーに関しても、予めユーザが設定できるようにする。
(6)決定した構成に基づいてリソースの再配置を行う手段。
(7)OSを再起動することなしに、動的にアフィニティ情報を更新できるようにするOS上の手段、または、OS上のタスクを一旦停止してOSを終了し、アフィニティ情報を変更してからOSを起動して再びタスクを動作させるという、従来技術の範囲内で実現可能な手段。
本発明によれば、以下のような効果を奏する。第1の効果は、仮想マシン内のトランザクション量を推定することによって、現在の構成におけるメモリアクセスの遅延総和を推定することができ、どの仮想マシンでメモリアクセスによる遅延が多く発生しているかを判別することができるようになることである。これによって、どの仮想マシンを優先的に再構成すべきか判断できるようになる。
第2の効果は、現在の仮想マシンの構成に対する任意の物理リソースの割り当てについてメモリアクセスの遅延総和を推定できるために、現在の構成と別の構成を定量的に比較できるようなることである。これによって、現在の構成と比較して、よりメモリアクセスの遅延総和が少なくなる構成を探すことができるようになる。また、メモリアクセスの遅延総和が最小となる最適な構成を探すことも可能となる。
第3の効果は、仮想マシン上のOSが動的に仮想アフィニティ情報を更新することができるようにすることにより、動的な再構成を行った際に、OSの動作を停止することなく、OSがリソースの効率的な利用を行うことができるようになることである。
以上により、ある優先度の高い仮想マシンについて部分最適化を行うことで、その仮想マシンでは常に最高の性能を出せるようにする制御や、定期的にシステム全体について最適化を行うことで、負荷の時間的、空間的変動に対応できるようにする制御、などを行うことができることになる。
以下に、図面を参照しつつ本発明の実施の形態について詳細に説明する。図1は本発明の実施の形態の機能ブロック図である。図1を参照すると、本発明によるハイパーバイザ100は、プロセッサやメモリ等の物理リソース106のシステムからアフィニティ情報を取得するアフィニティ情報取得部101と、各仮想マシン111,……,11nにおいて任意の仮想プロセッサ間の通信量を推定するプロセッサ間通信量推定機構131,……,13nと、各仮想マシン111,……,11nのプロセッサ間通信の推定量及びアフィニティ情報とから、各仮想マシンにおける任意の物理リソース割り当てに対してメモリアクセスの遅延総和を推定するメモリアクセス遅延推定機構102と、メモリアクセスの遅延総和の推定値により再構成を行うか否かを判断する再構成判断部103と、仮想マシンへの物理リソース106の割り当てを決定する構成決定部104と、実際に構成の変更を行う構成変更実行部105とを有する。
なお、各仮想マシン111,……,11nに対しては再構成を判断するための閾値を設定することができる。また121,……,12nは、各仮想マシン111,……,11nに対して割り当てられた仮想リソースを示す。
本実施の形態で想定するシステムは、図2に示されるような全結合型NUMAシステムであり、ノード1(201)〜ノードn(2n1)間の帯域に差はないものとする。各ノードは、物理プロセッサと、物理メモリと、ノースブリッジとを有しているものとする。
アフィニティ情報としては、メモリアクセスレイテンシのみが用いられる。この場合のアフィニティテーブルは、例えば図3のようになる。このテーブルは、4ノードで構成されるNUMAシステムの各ノード間レイテンシテーブルを示している。
次に、図2を用いてプロセッサ間通信量推定部の詳細な説明を行う。プロセッサ間通信量は、仮想マシン上で行われる全てのプロセス間通信で送信されるデータ量の総和の測定値と、仮想プロセッサ数から推定することができる。本例におけるプロセッサ間通信量の推定は、次に列挙する仮定の下で行われる。
(1)仮想マシン内のプロセッサ間通信はほぼ全てプロセス間通信で占められる。
(2)プロセスを実行するプロセッサは、全てのプロセッサの中から等確率で選択される。
(3)仮想マシン上では適当な頻度でプロセスが生成される。ここでいう適当な頻度とは、プロセス間通信で送られるデータ量を測定する間、統計量として十分な数のプロセスが生成されるということを意味する。また、プロセスが生成されるタイミングはランダムである。
(4)仮想マシンで動作する主なプロセスは全て適当な寿命を持つ。ここでいう適当な寿命とは、プロセス間通信で送られるデータ量を測定する時間よりも十分に短い時間という意味である。
(5)各仮想マシン上のOSには、割り当てられた物理リソースのアフィニティを反映したアフィニティテーブルが渡されており、OSはプロセスに対してメモリを確保する際、できるだけプロセスが割り当てられたプロセッサにとってローカルメモリとなる領域からメモリを確保する。
まず、(2)と(3)と(4)の仮定によって、プロセス間通信を測定している間十分な数のプロセスが生成され、それらは全ての仮想プロセッサに同じ確率で割り当てられて実行された後、終了する。そのため、全ての2つのプロセッサの組についてプロセス間通信が行われる頻度は同程度となる。よって、仮想マシン上で行われる全てのプロセス間通信量を任意の2つのプロセッサの組み合わせ数(n2 +n)で割ると、一組のプロセッサ間で通信されるデータ量(自プロセッサへの通信も含む)を求めることができる。
また、一組のプロセッサ間で通信されるデータ量に自プロセッサ間の組み合わせを除く任意の2つのプロセッサの組み合わせ数(n2 )をかけることで、異なる仮想プロセッサ間の通信量の総和を求めることができる。
次に、(5)の仮定により、仮想プロセッサ間の通信においては、送信されたデータは必ず送信先の仮想プロセッサに割り当てられたメモリへのリモートアクセスで書き込まれることが保障される。これにより、仮想プロセッサ間の送信データ量とリモートアクセスの送信データ量が一致する。
最後に、(1)の仮定により、プロセス間通信によるリモートメモリへの送信データ量の総量は、プロセッサ間通信によるリモートメモリへの送信データ量の総量とほぼ一致する。これらにより、仮想マシン上で行われる全てのプロセス間通信の送信データ量の総和と仮想プロセッサ数が得られれば、仮想マシン上の仮想プロセッサ間の送信データ量を推定することができる。
また、任意の2つのプロセッサ間のデータ送信量から、物理リソースにおけるメモリトランザクション回数を推定することが可能である。一般のコンピュータシステムでは、効率的にメモリアクセスを行うために、メモリアクセスはある程度の量の固まりを単位として行われる。この通信量の単位が分かれば、データ通信量をこの単位で割ることでメモリトランザクション回数を推定できる。このメモリアクセスの固まりの単位はアーキテクチャ依存であるため、本例のハイパーバイザはこの値を予め知っているか、あるいはこの値をハードウェアから取得するものとする。
さらに、任意の2つの仮想プロセッサ間のメモリトランザクション回数と、仮想リソースに対する物理リソースの対応情報、ノード間のレイテンシ情報によって、その仮想マシン内のメモリアクセスの遅延総和を求めることが可能である。ある一組のプロセッサの番号をi,jとし、プロセッサiとプロセッサjとの間のメモリトランザクション回数をkij、プロセッサiとプロセッサjの間のメモリアクセスレイテンシをdijとすると、プロセッサiとプロセッサjの間のメモリアクセスの遅延は、その積kij・dijで求めることができる。
よって、仮想マシン内の全てのプロセッサの組み合わせによるメモリアクセスの遅延総和は、SUM{i,j} (kij・dij)で求められる。なお、SUM{i,j} ()は{i,j}の全ての組み合わせについての総和をとる関数であるものとする。
次に、図4を用いて仮想マシン301上で行われる全てのプロセス間通信の送信データ量の総和を求める機構である送信データ量測定機構(図1のプロセッサ間通信量推定機構に相当)について説明する。送信データ量測定機構は、OS上にプロセス(303,304)間通信API309をフックしてハイパーバイザ300に割り込みを上げるためのフック機構305を有する。
ハイパーバイザ300は、割り込み310を受けて処理を行う割り込み処理部307と、フック機構305が一回のAPI呼び出しで送信されるデータ量を書き込む(311)ための領域である転送量通知領域306を持つ。さらに、プロセス間通信のデータ送信量の総和を求めるためのプロセス間通信量カウンタ308を持つ。APIのフックはシステム性能を低下させる可能性があるため、この機能はハイパーバイザ300側から動作/停止を制御できるようにする。
以上の仕組みによって求められたメモリアクセスの遅延総和の情報は、再構成判断部103、構成決定部104から任意に参照することができる。さらに、再構成判断部103、構成決定部104は仮想マシン111〜11nに対する任意の物理リソース106の割り当て構成を入力して、任意の構成についてのメモリアクセスの遅延総和を得ることができる。
また、本例のOSは動作を停止することなしにアフィニティ情報を変更できる機能を持つ。図9は、OS900の動作を停止することなしにアフィニティ情報を変更するための構成図を表す。OS900のアフィニティ情報取得部901は、システム904のアフィニティ情報をポーリングし、その内容に変更があった場合に、OS上のスケジューラ902やメモリ管理機構903に通知する。また、ハイパーバイザがOS900に対して割り込みを上げ、アフィニティ情報更新を通知することもできる。プロセススケジューラ902やメモリ管理機構903は、その内容を受けてから適当なタイミングから割り当てポリシーを変更して割り当てを行う。
次に、本実施の形態の動作の流れについて、図5のフローチャートを用いて説明する。本例のメモリアクセス遅延推定機構102は、ある程度(数十分程度)のインターバルをおいて(500)、全ての仮想マシンについてメモリアクセスの遅延総和を測定する(501)。また、同時に、各仮想マシンについて、現在の仮想リソースの構成に対する最適な物理リソースの割り当てを探し(502)、最適な構成に対する現在の構成のメモリアクセスの遅延総和の超過量を求める。
再構成判断部103は、求めた増分に対して複数回の測定で得られたデータを平均し(503)、その増分が各仮想マシンに対して設定された閾値を一つでも超えた場合に(504)、再構成指示を出す(505)。構成決定部104は、閾値を超えた仮想マシンに対して、閾値を越えない物理リソースの割り当てを求める(図6の601)。その際、他の仮想マシンとリソースをスワップさせることになるが、その結果他の仮想マシンについてメモリアクセスの遅延総和が閾値を越えることのないようにする。
この構成決定は、原理的には、仮想リソースと物理リソースの全組み合わせについて、メモリアクセスの遅延総和を求めて、その中から適切なものを選ぶことで実現できる。もしそのような組み合わせが存在しない場合は再構成を行わないことにする(604)。組み合わせの探索方法によっては、この処理にかかる時間を短縮することができるが、それらは公知の技術なのでここでは詳細な探索方法については言及しない。
構成変更実行部105は、仮想マシンに対する物理リソースの割り当てが求められた構成となるように構成を変更する。その変更方法は既知の技術であるため、ここでは詳述しない。概略を説明すると、各仮想マシン上のOSをストップ状態にし、リソースの割り当てを変更した後、OSを再稼動させる。その後、仮想マシン上のCPU数やメモリ量に変更があれば、OSに対して適切な割り込みを上げ、構成が変更されたことを通知する。本例では、構成変更によってCPU数やメモリ量が変化することはない。しかし、構成の変更によって仮想マシン上のアフィニティ情報には変更が生じる。そのため、ハイパーバイザ300はOS302に対してそのことを通知する。
次に、メモリアクセス遅延推定機構102とアフィニティ情報取得部101との動作について詳細に説明する。メモリアクセスの遅延総和の推定はプロセッサ間通信データ送信量の推定値を用いて行われる。メモリアクセス遅延推定機構102は、各仮想マシンに割り当てられているプロセッサ間通信量推定機構131〜13nからプロセッサ間通信のデータ送信量を受け取り、仮想マシンに対する物理リソースの割り当てとアフィニティ情報とを合わせて、各仮想マシンにおけるメモリアクセスの遅延総和を求めることができる。これにより、任意の仮想マシンに対する物理リソースの割り当てについて、メモリアクセスの遅延総和を求めることができる。また、仮想マシンに対する物理リソースの割り当てとして現在の構成を用いると、現在の構成におけるメモリアクセスの遅延総和も推定できる。
アフィニティ情報取得部101は、ハイパーバイザの起動時にシステム(BIOSなど)からアフィニティ情報を取得して保持しており、メモリアクセス遅延推定機構102は必要に応じてその情報を参照することができる。
次に、プロセッサ間通信データの送信量の推定値を求める方法について説明する。仮想マシン上の仮想プロセッサ間通信データの送信量は、上述したように、プロセス間通信のデータ送信量を測定することで推定することができるために、ここでは、主にプロセス間通信のデータ送信量の測定方法について述べる。
まず、図7はプロセス間通信測定におけるハイパーバイザ300側の動作を表している。測定が開始されると、まずプロセス間通信量カウンタ308がリセットされる(701)。次に、OS上のフック機構305の動作を開始し(702)、OS上でプロセス間通信APIが呼ばれるたびにハイパーバイザ300に割り込みが上がるようにする。割り込みが上がったら(703)、ハイパーバイザ300上の割込処理部307が呼ばれる。
割込処理部307は転送量通知領域306を参照して、そこに書かれている値の分だけプロセス間通信量カウンタ308を増加させる(704)。この動作は設定された測定時間(数秒程度を想定)になるまで繰り返され、測定時間を過ぎたらOS上のフック機構305の動作を停止して(706)測定を終了し、測定が完了したことをプロセッサ間通信量推定機構131〜13nに通知する(707)。
プロセッサ間通信量推定機構131〜13nは、この時点で、プロセス間通信量カウンタ308の値を参照して、仮想マシン上の任意の2つのプロセッサ間で通信されたデータ送信量を求めてメモリアクセス遅延推定機構102に通知する。
図8はプロセス間通信測定におけるOS302上のフック機構305の動作を表している。フック機構305は、その動作が有効にされると、プロセスによってプロセス間通信APIが呼び出される毎に(801)処理を行う。まず、呼び出されたAPI309から通信量を取得し(802)、この値をハイパーバイザ300内の転送量通知領域306に書き込み、ハイパーバイザ300に対して割り込みを上げる(803)。その後、API309に処理を移して実行する(804)。このとき、ハイパーバイザ300側の割り込み処理の完了を待ち合わせる必要はない。
プロセス間通信によるデータ送信の総量の測定が完了したら、その値から仮想マシン301上のメモリアクセスの遅延総和を求める。その方法については、上述したとおりである。
上述した実施の形態の各動作は、予めその動作手順をプログラムとしてROMなどの記録媒体に格納しておき、これをコンピュータに読み取らせて実行するように構成できることは明白である。
本発明の実施の形態のシステム構成図である。 本発明の実施の形態に使用される全結合型NUMAシステムを示す図である。 本発明の実施の形態に使用されるアフィニティ情報のテーブル例を示す図である。 本発明の実施の形態における仮想マシン上で行われるプロセス間通信の送信データ量の総和を求めるためのブロック図である。 図1のメモリアクセス遅延推定部102の動作を示すフローチャートである。 図1の再構成決定部104の動作を示すフローチャートである。 プロセス間通信測定におけるハイパーバイザ側の動作を示すフローチャートである。 プロセス間通信測定におけるOS側上のフック機構の動作を示すフローチャートである。 OSの動作を停止することなくアフィニティ情報を変更するための構成図である。
符号の説明
100,300 ハイパーバイザ
101,901 アフィニティ情報取得部
102 メモリアクセス遅延推定機構
103 再構成判断部
104 構成決定部
105 構成変更実行部
106 物理リソース
111〜11n,301 仮想マシン
121〜12n 仮想リソース
131〜13n プロセッサ間通信量推定機構
302,900 OS
303,304 プロセス
305 フック機構
306 転送量通知領域
307 割込処理部
308 プロセス間通信量カウンタ
309 プロセス間通信API
902 スケジューラ
903 メモリ管理機構
904 システム

Claims (7)

  1. ハイパーバイザが複数の物理リソースを複数の仮想マシンに動的に割り当て制御する仮想計算機システムであって、
    前記ハイパーバイザは、
    前記物理リソースを構成する複数のノード間の通信のレイテンシや帯域を示すアフィニティ情報と前記ノード間の通信量とに基づいて、前記仮想マシン上のメモリアクセスの遅延時間の総和を求める手段と、
    前記遅延時間の総和が閾値を超えた仮想マシンに対して当該閾値を超えない物理リソースの割り当てをなす手段と、
    を含むことを特徴とする仮想計算機システム。
  2. 前記遅延時間の総和を求める手段は、
    前記アフィニティ情報を取得する手段と、前記通信量を取得する手段と、前記アフィニティ情報と前記通信量との積により前記遅延時間の総和を算出する手段とを有することを特徴とする請求項1記載の仮想計算機システム。
  3. 前記アフィニティ情報を取得する手段は、
    前記物理リソースに対して、前記アフィニティ情報のポーリングを行って、その情報内容に変更があった場合に、前記アフィニティ情報の更新をなすようにしたことを特徴とする請求項記載の仮想計算機システム。
  4. ハイパーバイザが複数の物理リソースを複数の仮想マシンに動的に割り当て制御する仮想計算機システムにおける物理リソース再構成方法であって、
    前記ハイパーバイザにおいて、
    前記物理リソースを構成する複数のノード間の通信のレイテンシや帯域を示すアフィニティ情報と前記ノード間の通信量とに基づいて、前記仮想マシン上のメモリアクセスの遅延時間の総和を求めるステップと、
    前記遅延時間の総和が閾値を超えた仮想マシンに対して当該閾値を超えない物理リソースの割り当てをなすステップと、
    を含むことを特徴とする物理リソース再構成方法。
  5. 前記遅延時間の総和を求めるステップは、
    前記アフィニティ情報を取得するステップと、前記通信量を取得するステップと、前記アフィニティ情報と前記通信量との積により前記遅延時間の総和を算出するステップとを有することを特徴とする請求項4記載の物理リソース再構成方法。
  6. 前記アフィニティ情報を取得するステップは、
    前記物理リソースに対して、前記アフィニティ情報のポーリングを行って、その情報内容に変更があった場合に、前記アフィニティ情報の更新をなすようにしたことを特徴とする請求項5記載の物理リソース再構成方法。
  7. ハイパーバイザが複数の物理リソースを複数の仮想マシンに動的に割り当て制御する仮想計算機システムにおける物理リソース再構成方法をコンピュータに実行させるためのプログラムであって、
    前記物理リソースを構成する複数のノード間の通信のレイテンシや帯域を示すアフィニティ情報と前記ノード間の通信量とに基づいて、前記仮想マシン上のメモリアクセスの遅延時間の総和を求める処理と、
    前記遅延時間の総和が閾値を超えた仮想マシンに対して当該閾値を超えない物理リソースの割り当てをなす処理と、
    を含むことを特徴とするプログラム。
JP2006077930A 2006-03-22 2006-03-22 仮想計算機システム及びその物理リソース再構成方法並びにプログラム Expired - Fee Related JP4702127B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006077930A JP4702127B2 (ja) 2006-03-22 2006-03-22 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
US11/723,601 US7865686B2 (en) 2006-03-22 2007-03-21 Virtual computer system, and physical resource reconfiguration method and program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006077930A JP4702127B2 (ja) 2006-03-22 2006-03-22 仮想計算機システム及びその物理リソース再構成方法並びにプログラム

Publications (2)

Publication Number Publication Date
JP2007257097A JP2007257097A (ja) 2007-10-04
JP4702127B2 true JP4702127B2 (ja) 2011-06-15

Family

ID=38534957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006077930A Expired - Fee Related JP4702127B2 (ja) 2006-03-22 2006-03-22 仮想計算機システム及びその物理リソース再構成方法並びにプログラム

Country Status (2)

Country Link
US (1) US7865686B2 (ja)
JP (1) JP4702127B2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7034834B2 (en) * 2003-10-24 2006-04-25 Microsoft Corporation Communication protocol for synchronizing animation systems
JP4671041B2 (ja) * 2006-03-27 2011-04-13 日本電気株式会社 モジュール化物理リソース群特定方法、その装置及びプログラム
US7698529B2 (en) * 2007-01-10 2010-04-13 International Business Machines Corporation Method for trading resources between partitions of a data processing system
JP5210730B2 (ja) * 2007-11-28 2013-06-12 株式会社日立製作所 仮想マシンモニタ及びマルチプロセッサシステム
US8819675B2 (en) 2007-11-28 2014-08-26 Hitachi, Ltd. Virtual machine monitor and multiprocessor system
JP4962327B2 (ja) * 2008-01-17 2012-06-27 富士通株式会社 分散処理プログラム、分散処理装置、および分散処理方法
JP5446157B2 (ja) * 2008-07-28 2014-03-19 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
CN102112967B (zh) 2008-08-04 2014-04-30 富士通株式会社 多处理器系统、多处理器系统用管理装置以及方法
KR20100035394A (ko) 2008-09-26 2010-04-05 삼성전자주식회사 멀티 프로세싱에서의 메모리 관리장치 및 그 방법
US8387064B2 (en) * 2008-10-09 2013-02-26 International Business Machines Corporation Balancing a data processing load among a plurality of compute nodes in a parallel computer
JP2010122805A (ja) * 2008-11-18 2010-06-03 Hitachi Ltd 仮想サーバシステム並びに物理cpu及び物理メモリの割り当て方法
US8271990B2 (en) * 2009-02-27 2012-09-18 International Business Machines Corporation Removing operating system jitter-induced slowdown in virtualized environments
US20100229175A1 (en) * 2009-03-05 2010-09-09 International Business Machines Corporation Moving Resources In a Computing Environment Having Multiple Logically-Partitioned Computer Systems
US9535767B2 (en) 2009-03-26 2017-01-03 Microsoft Technology Licensing, Llc Instantiating a virtual machine with a virtual non-uniform memory architecture
US9529636B2 (en) 2009-03-26 2016-12-27 Microsoft Technology Licensing, Llc System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine
JP5476764B2 (ja) * 2009-03-30 2014-04-23 富士通株式会社 サーバ装置、計算機システム、プログラム及び仮想計算機移動方法
US20110029971A1 (en) * 2009-07-30 2011-02-03 Fujitsu Limited Information processing apparatus, image processing method and computer program
WO2011086824A1 (ja) * 2010-01-12 2011-07-21 日本電気株式会社 マイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラム
JP2011186821A (ja) * 2010-03-09 2011-09-22 Nec Corp 仮想化環境管理システム、装置、方法及びプログラム
US8589941B2 (en) 2010-04-23 2013-11-19 International Business Machines Corporation Resource affinity via dynamic reconfiguration for multi-queue network adapters
JP5354108B2 (ja) * 2010-09-01 2013-11-27 富士通株式会社 情報処理プログラム、情報処理装置及び情報処理方法
US20120215990A1 (en) * 2011-02-21 2012-08-23 Huawei Technologies Co., Ltd. Method and apparatus for selecting a node where a shared memory is located in a multi-node computing system
US9043785B1 (en) * 2011-05-23 2015-05-26 Open Invention Network, Llc Dynamic consolidation of virtual machines
EP2698711B1 (en) * 2011-06-30 2015-08-05 Huawei Technologies Co., Ltd. Method for dispatching central processing unit of hotspot domain virtual machine and virtual machine system
US20130024857A1 (en) * 2011-07-19 2013-01-24 Nexenta Systems, Inc. Method and system for flexible resource mapping for virtual storage appliances
US9639379B1 (en) * 2011-07-19 2017-05-02 Open Invention Network Llc Dynamic configuration of virtual machines
JP5765427B2 (ja) * 2011-09-15 2015-08-19 富士通株式会社 仮想マシン管理装置、仮想マシン移動制御プログラムおよび仮想マシン移動制御方法
US8825863B2 (en) 2011-09-20 2014-09-02 International Business Machines Corporation Virtual machine placement within a server farm
WO2012163024A1 (zh) * 2011-10-27 2012-12-06 华为技术有限公司 针对多步长非一致性内存访问numa架构的内存管理方法及装置
US8904008B2 (en) * 2012-01-09 2014-12-02 Microsoft Corporation Assignment of resources in virtual machine pools
WO2013138587A1 (en) * 2012-03-14 2013-09-19 Convergent .Io Technologies Inc. Systems, methods and devices for management of virtual memory systems
US9311119B2 (en) * 2012-05-30 2016-04-12 Red Hat, Inc. Reconfiguring virtual machines
US9244742B2 (en) * 2012-05-31 2016-01-26 Vmware, Inc. Distributed demand-based storage quality of service management using resource pooling
US9575806B2 (en) * 2012-06-29 2017-02-21 Intel Corporation Monitoring accesses of a thread to multiple memory controllers and selecting a thread processor for the thread based on the monitoring
WO2014033882A1 (ja) * 2012-08-30 2014-03-06 富士通株式会社 稼働管理装置、稼働管理方法、稼働管理プログラム及び記録媒体
WO2014073949A1 (en) * 2012-11-12 2014-05-15 Mimos Berhad A system and method for virtual machine reservation for delay sensitive service applications
CN103812904A (zh) * 2012-11-13 2014-05-21 联想(北京)有限公司 资源共享方法、资源共享请求方法、电子设备和移动终端
US9075789B2 (en) 2012-12-11 2015-07-07 General Dynamics C4 Systems, Inc. Methods and apparatus for interleaving priorities of a plurality of virtual processors
US9052932B2 (en) * 2012-12-17 2015-06-09 International Business Machines Corporation Hybrid virtual machine configuration management
US9477710B2 (en) * 2013-01-23 2016-10-25 Microsoft Technology Licensing, Llc Isolating resources and performance in a database management system
JP2014157476A (ja) * 2013-02-15 2014-08-28 Nippon Telegr & Teleph Corp <Ntt> 計測装置及び計測方法
US10061622B2 (en) * 2013-02-26 2018-08-28 Red Hat Israel, Ltd. Updating memory topology information for virtual machines
US10114662B2 (en) * 2013-02-26 2018-10-30 Red Hat Israel, Ltd. Updating processor topology information for virtual machines
US9699093B2 (en) * 2013-06-12 2017-07-04 Dell Products L.P. Migration of virtual machine based on proximity to peripheral device in NUMA environment
US9602426B2 (en) 2013-06-21 2017-03-21 Microsoft Technology Licensing, Llc Dynamic allocation of resources while considering resource reservations
CN104951396B (zh) * 2014-03-31 2018-01-30 国际商业机器公司 基于虚拟机创建软件性能测试环境的方法和装置
US9483403B2 (en) 2014-06-17 2016-11-01 International Business Machines Corporation Techniques for preserving an invalid global domain indication when installing a shared cache line in a cache
US10776143B2 (en) 2014-06-17 2020-09-15 International Business Machines Corporation Techniques for utilizing a resource fold factor in placement of physical resources for a virtual machine
US10410155B2 (en) * 2015-05-01 2019-09-10 Microsoft Technology Licensing, Llc Automatic demand-driven resource scaling for relational database-as-a-service
KR102532641B1 (ko) * 2016-03-22 2023-05-15 삼성전자 주식회사 장치 및 이의 가상 머신 재배치 방법
US11314648B2 (en) * 2017-02-08 2022-04-26 Arm Limited Data processing
CN110580194A (zh) * 2019-08-29 2019-12-17 上海仪电(集团)有限公司中央研究院 基于内存热插拔技术的容器调度方法及管理节点调度器
CN114281516A (zh) * 2020-09-27 2022-04-05 华为云计算技术有限公司 一种基于numa属性的资源分配方法及装置
JP7188472B2 (ja) * 2021-02-03 2022-12-13 日本電気株式会社 コンピュータ、スケジューリング方法、及び、プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127462A (ja) * 2004-09-29 2006-05-18 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452455A (en) * 1992-06-15 1995-09-19 International Business Machines Corporation Asynchronous command support for shared channels for a computer complex having multiple operating systems
US6877158B1 (en) * 2000-06-08 2005-04-05 International Business Machines Corporation Logical partitioning via hypervisor mediated address translation
JP2002202959A (ja) 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US6985951B2 (en) 2001-03-08 2006-01-10 International Business Machines Corporation Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment
JP4018900B2 (ja) 2001-11-22 2007-12-05 株式会社日立製作所 仮想計算機システム及びプログラム
CA2365729A1 (en) * 2001-12-20 2003-06-20 Platform Computing (Barbados) Inc. Topology aware scheduling for a multiprocessor system
US7567567B2 (en) * 2005-04-05 2009-07-28 Sun Microsystems, Inc. Network system including packet classification for partitioned resources
US7461231B2 (en) * 2006-01-12 2008-12-02 International Business Machines Corporation Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127462A (ja) * 2004-09-29 2006-05-18 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
JP2007257097A (ja) 2007-10-04
US20070226449A1 (en) 2007-09-27
US7865686B2 (en) 2011-01-04

Similar Documents

Publication Publication Date Title
JP4702127B2 (ja) 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
TWI591542B (zh) 雲端計算節點、方法與系統及電腦可讀媒體
US7992151B2 (en) Methods and apparatuses for core allocations
US8122451B2 (en) Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
US9009384B2 (en) Virtual machine memory management in systems with asymmetric memory
JP5305664B2 (ja) データ処理システムの区画相互間で資源をトレードするための方法、プログラム及び装置
US10871996B2 (en) Detection, modeling and application of memory bandwith patterns
US10579416B2 (en) Thread interrupt offload re-prioritization
US20130097382A1 (en) Multi-core processor system, computer product, and control method
KR20120066189A (ko) 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법
KR101140914B1 (ko) 컴퓨팅 자원들을 제어하는 기술
WO2014206078A1 (zh) 内存访问方法、装置及系统
CN107251007B (zh) 集群计算服务确保装置和方法
Gifford et al. Dna: Dynamic resource allocation for soft real-time multicore systems
US7631125B2 (en) Dynamically migrating channels
US20130125131A1 (en) Multi-core processor system, thread control method, and computer product
JP6201591B2 (ja) 情報処理装置および情報処理装置の制御方法
US9690619B2 (en) Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory
EP3251020A1 (en) Memory-driven out-of-band management
US11836525B2 (en) Dynamic last level cache allocation for cloud real-time workloads
KR101989033B1 (ko) 플랫폼 관리 장치 및 방법
KR101587600B1 (ko) Numa 시스템상에서 가상머신간의 통신방법
CN111831390B (zh) 服务器的资源管理方法、装置及服务器
US8806504B2 (en) Leveraging performance of resource aggressive applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110221

R150 Certificate of patent or registration of utility model

Ref document number: 4702127

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees