JP4715758B2 - 仮想計算機システムのプロセッサキャッピング方法 - Google Patents

仮想計算機システムのプロセッサキャッピング方法 Download PDF

Info

Publication number
JP4715758B2
JP4715758B2 JP2007018668A JP2007018668A JP4715758B2 JP 4715758 B2 JP4715758 B2 JP 4715758B2 JP 2007018668 A JP2007018668 A JP 2007018668A JP 2007018668 A JP2007018668 A JP 2007018668A JP 4715758 B2 JP4715758 B2 JP 4715758B2
Authority
JP
Japan
Prior art keywords
processor
virtual machine
time
virtual
physical
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
Application number
JP2007018668A
Other languages
English (en)
Other versions
JP2008186210A (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
Priority to JP2007018668A priority Critical patent/JP4715758B2/ja
Priority to US12/021,744 priority patent/US20080184227A1/en
Publication of JP2008186210A publication Critical patent/JP2008186210A/ja
Application granted granted Critical
Publication of JP4715758B2 publication Critical patent/JP4715758B2/ja
Active 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/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
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、仮想計算機システムに係わり、特に仮想計算機モニタが、スケジュール優先度に基づき、仮想計算機及び該仮想計算機の有する仮想プロセッサのスケジュールを制御する方法に関する。
複数プロセッサ構成の物理計算機が標準で使われるようになり、また技術の発展によりプロセッサの高多重化も進んできている。今後、複数プロセッサ構成の物理計算機を用いる仮想計算機システム、更には複数の仮想プロセッサ構成の仮想計算機を構築する仮想計算機システムの重要性が増すと予測される。
仮想計算機システムには、物理計算機の物理プロセッサを有効に使うためのサービス率制御という機能を備えたものがある。サービス率とは、仮想計算機ごとにユーザが指定する値であり、仮想計算機に割り当てられる物理プロセッササービス量を表す。
サービス率の指定は、全ての仮想計算機の全ての仮想プロセッサが、アイドルになることなく、物理プロセッサを割り当てられると、常に与えられたタイムスライス時間を使い切ることができる状態にある場合に、仮想計算機の間のプロセッサ使用率の比率がサービス率の比率に等しくなるようにすることを要求する。
仮想計算機モニタは、この要求を満たすように、仮想計算機の仮想プロセッサを物理プロセッサにスケジュールする。
一方、仮想計算機システムの仮想計算機モニタは、指定サービス率に従いプロセッササービス量を与えても、それを使い切るだけの負荷を持たない仮想計算機がある場合には、余ったプロセッササービス量を、プロセッササービス量の足りない仮想計算機に与えることで、仮想計算機システムとしてのプロセッサ利用効率を向上させる。
前記は、仮想計算機システムとしてのプロセッサ利用効率を向上させるが、各々の仮想計算機の視点では、指定サービス率に従い与えられるプロセッササービス量と、実際に必要とするプロセッササービス量には不一致がある。また、1つの仮想計算機をとっても、仮想計算機が必要とするプロセッササービス量は一定とは限らず、時間帯によって異なる場合がある。
仮想計算機のユーザには、必要なプロセッササービス量に対して費用を支払うという契約を結んで、仮想計算機を使用したいというユーザもいる。
このようなユーザに対しては、仮想計算機に与えるプロセッササービス量を、契約した比率以下に制限する必要がある。プロセッササービス率を制限する機能にプロセッサキャッピングがある。
サービス率及びプロセッサキャッピングが、下記特許文献1で報告されている。下記特許では、長期の実時間(分または時間のオーダ)において仮想計算機のプロセッサ利用率を指定した比率に抑える、大域的なプロセッサキャッピング方法が記載されている。
特許第3543441号
全ての仮想計算機がビジーである場合には、プロセッサキャッピング有効の仮想計算機のプロセッサ利用率は、サービス率制御によって、自然とサービス率で指定された比率以下に制限され(実際には指定した比率と等しくなり)、また、サービス率制御の提供する偏りの無いスケジュールも守られる。
これに対して、プロセッサキャッピング有効の仮想計算機がビジーで、他の仮想計算機の中にアイドルの仮想計算機が存在するならば、明示的にプロセッサキャッピング処理を行わないと、プロセッサキャッピング有効の仮想計算機のプロセッサ利用率が、サービス率で指定した比率を超えてしまう。
従来の仮想計算機システムでは、プロセッサキャッピング有効の仮想計算機の使用プロセッサ時間が該仮想計算機の持ちプロセッサ時間を超えないように、該仮想計算機の物理プロセッサへのスケジュールを制限することで、プロセッサキャッピングを実現していた。
単位プロセッサ時間は、タイムスライスと比べて十分に大きな値とするので、プロセッサキャッピングを有効にした仮想計算機は、例えば他の全ての仮想計算機がアイドル状態で、該仮想計算機がビジー状態であるならば、仮想計算機モニタは、該仮想計算機の仮想プロセッサを物理プロセッサに連続してスケジュールするので、該仮想計算機の使用プロセッサ時間が直ちに該仮想計算機の持ちプロセッサ時間に達し、プロセッサキャッピングの制限がかかり、使用プロセッサ時間がリセットされるまで該仮想計算機の物理計算機へのスケジュールが行われなくなり、プロセッサキャッピング有効の仮想計算機のスケジュールには大きな偏りができるという問題があった。
これでは、システム応答性の面で問題があり、特に長い待ち時間を認めず、偏りの無いスケジュールを要求するプログラムには、プロセッサキャッピングを使用することができなかった。
本発明の目的は、単に仮想計算機の使用プロセッサ時間が持ちプロセッサ時間を超えないことに制限を課すのではなく、時間の経過に沿って仮想計算機の使用プロセッサ時間の増加率に制限を課すことで、アイドルの仮想計算機が存在する場合であっても、プロセッサキャッピング有効の仮想計算機の物理プロセッサへのスケジュールを、該仮想計算機のプロセッサ利用率がユーザの指定したサービス率を超えない範囲で偏り無く行うことである。
また、本発明は、対象の仮想計算機の情報と物理計算機全体の情報のみを使用することで、処理時間が、仮想計算機システムに構築した仮想計算機及び該仮想計算機の有する仮想プロセッサ数の数に依らないプロセッサキャッピング方法を実現することも目的とする。
本発明は、仮想計算機モニタが各仮想計算機のプロセッサ利用率を指定された比率以下に制限するプロセッサキャッピング方法であって、プロセッサキャッピングが有効な仮想計算機に対して、物理計算機全体の持ちプロセッサ時間から前記プロセッサキャッピング有効仮想計算機に与えられる持ちプロセッサ時間を差し引いた時間を持ちプロセッサ時間とする補仮想計算機を生成し、各仮想計算機が単位時間に物理プロセッサを使用したプロセッサ時間を求め、各仮想計算機及び前記補仮想計算機の持ちプロセッサ時間と前記求められた使用プロセッサ時間に基づいて各仮想計算機及び前記補仮想計算機のスケジュール優先度を求め、前記プロセッサキャッピング有効仮想計算機のスケジュール優先度と該プロセッサキャッピング有効仮想計算機に対応する補仮想計算機のスケジュール優先度とを比較し、前記プロセッサキャッピング有効仮想計算機のスケジュール優先度が前記補仮想計算機のスケジュール優先度より大きい場合には前記プロセッサキャッピング有効仮想計算機の有する仮想プロセッサのスケジュールは行わないことを特徴とする仮想計算機システムのプロセッサキャッピング方法である。
本発明によれば、プロセッサキャッピング有効の仮想計算機がビジーで、他にアイドルの仮想計算機が存在する場合に、偏りの無いスケジュールとプロセッサキャッピングの両方を実現することができる。
また、本発明のプロセッサキャッピング制御は、対象の仮想計算機及び物理計算機全体の情報のみを使用する為、仮想計算機システムの有する仮想計算機及び該仮想計算機の仮想プロセッサの数に、処理時間が依存しない方式で、プロセッサキャッピングを実現することができる。
本発明を適用した一実施形態を、図面を用いて詳細に説明する。
図1は、本発明を適用した仮想計算機システムの概要を示す構成図である。
物理計算機001は、物理プロセッサ0 002a、物理プロセッサ1 002b、システム時刻006、及び物理プロセッサ0 002aと物理プロセッサ1 002bにそれぞれタイマ004aとタイマ004bを有する。
本実施形態においては、物理プロセッサの数を2つとしているが、本発明は物理プロセッサの数を限定するものではなく、1つまたはそれ以上の任意の数の物理プロセッサを有する物理計算機に適用可能である。
システム時刻006は、仮想計算機モニタ100が物理プロセッサ時間を測定する為に参照する、全ての物理プロセッサの間の共通時刻であり、物理計算機001単独で、あるいは物理計算機001と仮想計算機モニタ100で連携し、常に全ての物理プロセッサの間で同期することを保証する。本発明は、システム時刻006の実現方法は問わない。
タイマ004aとタイマ004bは、指定した時刻に外部割り込みを発生させる機能を有し、仮想計算機モニタ100が、タイムスライスによって物理プロセッサ0 002aと物理プロセッサ1 002bを時分割共有する為に、及び時分割共有におけるプロセッサ利用率の制御を、ある時間間隔で区切って周期的に行う為に使用する。
仮想計算機モニタ100は、物理プロセッサ0 002aと物理プロセッサ1 002bを時分割共有して、仮想プロセッサ0 302a、仮想プロセッサ1 302b、及び仮想プロセッサ2 302cの計3つの仮想プロセッサを有する仮想計算機1 300、仮想プロセッサ0 312aと仮想プロセッサ1 312bの計2つの仮想プロセッサを有する仮想計算機2 310、及び仮想プロセッサ0 322aの1つの仮想プロセッサを有する仮想計算機3 320を構築する。
本実施形態においては、プロセッサキャッピング方法は、仮想プロセッサ単位ではなく、仮想計算機単位で考える為、仮想計算機の仮想プロセッサの数には依存しない。また、本発明のプロセッサキャッピング方法は、1つまたはそれ以上の任意の数の仮想プロセッサを有する仮想計算機に適用可能である。また、仮想計算機の仮想プロセッサの数は、物理プロセッサの数よりも大きくても構わない。
仮想計算機モニタ100は、物理プロセッサ0 002aと物理プロセッサ1 002bにアイドルプロセス0 400aとアイドルプロセス1 400bをそれぞれ対応付け、物理プロセッサ上でスケジュールする仮想プロセッサが見つからなかったときに、該物理プロセッサ上にスケジュールすることができる仮想プロセッサが見つかるまで、該物理プロセッサ上で対応するアイドルプロセスを実行させる。
本発明の仮想計算機システムのプロセッサキャッピング方式は、サービス率の理論に基づくものである。サービス率とは、仮想計算機ごとにユーザが指定する値であり、仮想計算機に割り当てられる物理プロセッサ資源の大きさを表す。サービス率が要求するのは、全ての仮想計算機の全ての仮想プロセッサがアイドルになることなく、物理プロセッサを割り当てられると、常に与えられたタイムスライス時間を使い切ることができる状態にある場合に、仮想計算機の間のプロセッサ利用率の比率を、サービス率の比率と等しくすることである。
本実施形態においては、サービス率の機能を持つ仮想計算機システムに、プロセッサキャッピング機能を追加することにより実現する、仮想計算機システムのプロセッサキャッピング方式の形態を説明する。
図2は、本実施形態における、仮想計算機モニタ100の概要を示すブロック図である。
仮想計算機モニタ100が有するブロックは、物理プロセッサ、仮想計算機、及び仮想計算機の仮想プロセッサの区分に分類される。
仮想計算機モニタ100は、物理プロセッサに対して、物理プロセッサテーブル110を有する。物理プロセッサテーブル110は、単位プロセッサ時間 E 112、物理プロセッサ数 N 114、及び各単位プロセッサ時間の開始時刻 T0 116、物理計算機100の持ちプロセッサ時間 U 118を含む。
次に仮想計算機モニタ100は、仮想計算機に対して、仮想計算機ごとの、仮想計算機テーブル1 120、仮想計算機テーブル2 130、及び仮想計算機テーブル3 140を有する。
又仮想計算機モニタ100は、仮想計算機ごとにプロセッサキャッピング有効・無効の指定を保持するプロセッサキャッピングフラグ1 200、プロセッサキャッピングフラグ2 202、プロセッサキャッピングフラグ3 204を有する。更に、仮想計算機がプロセッサキャッピング有効の場合のみ使用する、補仮想計算機テーブル1 210、補仮想計算機テーブル2 220、及び補仮想計算機テーブル3 230を有する。
仮想計算機モニタ100は、サービス率制御において、全ての仮想計算機の仮想計算機テーブルを使用する。仮想計算機モニタ100は、本発明のプロセッサキャッピング制御において、対象のプロセッサキャッピング有効の仮想計算機の仮想計算機テーブルと、該仮想計算機の補仮想計算機テーブルを使用する。
仮想計算機1 300の仮想計算機テーブル120は、サービス率S1 122、仮想計算機の持ちプロセッサ時間Q1 124と使用プロセッサ時間R1 126、仮想計算機1 300のスケジュール優先度P1 128、及び実行可能な仮想プロセッサのみを格納する仮想計算機レディキュー1 150を含む。仮想計算機2 310の仮想計算機テーブル2 130と仮想計算機3 320の仮想計算機テーブル3 140も同様である。
仮想計算機1 300のプロセッサキャッピングフラグ1 200は、該仮想計算機に対して、プロセッサキャッピング制御を有効にするか否かを判定する為に使用する。仮想計算機2 310のプロセッサキャッピングフラグ2 202と仮想計算機3 320のプロセッサキャッピングフラグ3 204も同様である。
仮想計算機1 300がプロセッサキャッピング有効であるならば、補仮想計算機という概念に対応した、補仮想計算機テーブル1 210を使用する。
補仮想計算機テーブル1 210は、サービス率を除いて前記の仮想計算機テーブル1 120と同様に、持ちプロセッサ時間G1 212、使用プロセッサ時間H1 214、及びスケジュール優先度C1 216を有する。仮想計算機2 310と仮想計算機3 320も同様にプロセッサキャッピング有効であるならば、それぞれ補仮想計算機テーブル2 220と補仮想計算機テーブル3 230を使用する。また、補仮想計算機テーブル2 220と3 230は、補仮想計算機テーブル1 210と同様の構成である。補仮想計算機テーブルについては、本発明のプロセッサキャッピング方法の実現方法のところで、詳しく説明する。
仮想プロセッサの仮想プロセッサテーブル160a、160b、160c、170a、170b、180aは、対応付けられた仮想プロセッサのスケジュール開始時刻 t0をそれぞれ含む。
以上の図2記載の情報を使って、本実施形態で採用するサービス率の1つの実現方式では、どのようにしてサービス率指定の要求が満たされるのかを説明する。
まず、仮想計算機モニタ100がサービス率指定の要求を満たす為に使用する情報の計算方法を説明する。
物理計算機の持ちプロセッサ時間は次のようにして求める。
物理計算機001の物理プロセッサ002aと002bを単位プロセッサ時間E 112で時分割し、物理計算機001の持ちプロセッサ時間U 118を、単位プロセッサ時間E 112と物理プロセッサ数N 114を乗じて、(式1)のように求める。
U = E × N (式1)
物理計算機001の持ちプロセッサ時間U 118は、物理計算機001の有する物理プロセッサ資源の大きさを表す。単位プロセッサ時間E 112は、タイムスライスよりも十分大きな適切な値とする。ある1つの実現形態においては、単位プロセッサ時間E 112は1秒としている。
各仮想計算機の持ちプロセッサ時間は次のようにして求める。
(式1)で求めた物理計算機001の持ちプロセッサ時間U 118を、全ての仮想計算機の間で、サービス率で指定された比率で分割し、仮想計算機1 300の持ちプロセッサ時間Q1 124、仮想計算機2 320の持ちプロセッサ時間Q2 134、及び仮想計算機3 330の持ちプロセッサ時間Q3 144を求める。
各仮想計算機の持ちプロセッサ時間Q1 124、持ちプロセッサ時間Q2 134、及び持ちプロセッサ時間Q3 144は、それぞれ仮想計算機に割り当てられた物理プロセッサ資源の大きさを表す。
図3は、物理計算機100の持ちプロセッサ時間U 118を、仮想計算機1 300のサービス率S1 122、仮想計算機2 310のサービス率S2 132、仮想計算機3 320のサービス率S3 142の比率に従って分割し、それぞれの仮想計算機の持ちプロセッサ時間Q1 124、持ちプロセッサ時間Q2 134、持ちプロセッサ時間Q3 144を求めたイメージを示す図である。サービス率は仮想計算機単位で考える為、仮想計算機が有する仮想プロセッサの数は問わない。
物理計算機001の持ちプロセッサ時間U 118を、仮想計算機のサービス率S1 122、仮想計算機2 310のサービス率S2 132、仮想計算機3 320のサービス率S3 142の比率で分割し、それぞれの仮想計算機に持ちプロセッサ時間Q1 124、持ちプロセッサ時間Q2 134、持ちプロセッサ時間Q3 144を与える、すなわち、次の(式2)と(式3)のようにする。
S1 : S2 : S3 = Q1 : Q2 : Q3 (式2)
U = Q1 + Q2 + Q3 (式3)
一方、仮想計算機の使用プロセッサ時間Rは以下のようにして求める。
仮想計算機モニタ100は、仮想プロセッサをスケジュールする度に、該仮想プロセッサのスケジュール終了時に、仮想プロセッサテーブルに保持する仮想プロセッサのスケジュール開始時刻と、スケジュール終了時のシステム時刻を使って、仮想プロセッサの使用プロセッサ時間を求め、該仮想プロセッサが属する仮想計算機の仮想計算機テーブルにある使用プロセッサ時間Rに加算する。
図4に仮想プロセッサの使用プロセッサ時間Rの更新処理のフローチャートを示す。仮想計算機1 300の仮想プロセッサ0 302aを例とする。
仮想プロセッサ0 302aのスケジュールを開始するときに、その時点のシステム時刻を該仮想プロセッサの仮想プロセッサテーブル0 160aのスケジュール開始時刻 t0として保持し、該仮想プロセッサのスケジュールを終了するときに、その時点のシステム時刻 t1から、仮想プロセッサテーブル0 160aに保存したスケジュール開始時刻 t0を引くことで、該仮想プロセッサの使用プロセッサ時間t1−t0を求める。
仮想プロセッサの使用プロセッサ時間Rは、該仮想プロセッサのスケジュールの度に、そのときの使用プロセッサ時間として求められる一方、仮想計算機の使用プロセッサ時間Rは、該仮想計算機の有する仮想プロセッサのスケジュールの度の加算と、単位プロセッサ時間E 112の間隔でのリセットを繰り返す。
図5に仮想計算機の使用プロセッサ時間の更新処理のイメージを示す。求めた仮想プロセッサの使用プロセッサ時間t1−t0を該仮想プロセッサが属する仮想計算機1 300の使用プロセッサ時間R1 126に加算する。
また、全ての仮想計算機1 300使用プロセッサ時間 R1 126、仮想計算機2 310の使用プロセッサ時間R2、及び仮想計算機3の使用プロセッサ時間R3は全て、単位プロセッサ時間E 112の時間間隔で周期的にリセットされる。
仮想計算機モニタ100は、仮想計算機の持ちプロセッサ時間と使用プロセッサ時間を用いて、以下のようにして、仮想計算機のスケジュール優先度を求める。
仮想計算機モニタ100は、例えば仮想計算機1 300のスケジュール優先度P1 128を、仮想計算機1 300の持ちプロセッサ時間Q1 124を分母、使用プロセッサ時間R1 126を分子とした分数、すなわち(式4)と求める。
P1 = R1/Q1 (式4)
仮想計算機2 320のスケジュール優先度P2と仮想計算機3 330のスケジュール優先度P3も全く同様にして求めることができる。
仮想計算機モニタ100は(式4)で求めた仮想計算機のスケジュール優先度に従い、仮想計算機1 300、仮想計算機2 310、及び仮想計算機3 320を物理プロセッサ0 002aと物理プロセッサ1 002bにスケジュールし続けることで、サービス率S1 122、サービス率S2 132、及びサービス率S3 134の要求を満たす。
仮想計算機モニタ100は常に、スケジュール可能な仮想プロセッサを有する全ての仮想計算機の中で、仮想計算機のスケジュール優先度Pが最小の仮想計算機の仮想プロセッサを、該仮想計算機のレディキューから取り出して、物理プロセッサにスケジュールすることで、
全ての仮想計算機の全ての仮想プロセッサがアイドルになることなく、物理プロセッサを割り当てられると、常に与えられたタイムスライス時間を使い切ることができる状態にある場合に、仮想計算機の間のプロセッサ利用率の比率を、サービス率の比率と等しくするという、サービス率の要求を満たすことができる。
図6は、仮想計算機モニタ100の、スケジュール対象仮想計算機の選択処理のアルゴリズムのフローチャートを示す。プロセッサキャッピング制御は含まない。
仮想計算機モニタ100は図6のフローチャートで示すアルゴリズムにおいて、仮想計算機のスケジュール優先度Pの他に、一時変数として、forループで使用し仮想計算機番号を表すi、仮想計算機のスケジュール優先度Pは、その値が小さいほど優先度は高いので、その最小値を保持するMINPRIO、及びMINPRIOの値のスケジュール優先度を有する仮想計算機番号、すなわちスケジュール対象の仮想計算機番号を保持するSCHEDVMを使用する。
まず、最初にMINPRIOを無効な値、具体的にはスケジュール優先度Pがとり得ない十分に大きな値で初期化する。また、SCHEDVMを存在しない仮想計算機番号0で初期化する。
そして、スケジュール優先度Pが最小の仮想計算機番号を取得するforループを開始する。forループは、i=1からiを1ずつ増加させながらiが最大仮想計算機番号と等しくなるまでとする。
forループ内の処理を説明する。
まず、仮想計算機iのスケジュール優先度Piを取得する。次に、Piの値が、一時変数MINPRIO未満であるならば、MINPRIOにPiの値を代入し、SCHEDVMにiを代入する。
Piの値が一時変数MINPRIO以上であるならば何もしない。
forループを抜けると、スケジュール対象の仮想計算機番号が一時変数SCHEDVMに格納されている。
もし、SCHEDVMの値が非0であるならば、スケジュール対象の仮想計算機が見つかったことを意味する。仮想計算機モニタ100は、SCHEDVMの番号の仮想計算機のレディキューから仮想プロセッサを取り出して、物理プロセッサにスケジュールする。
ところが、もしSCHEDVMの値が0であるならば、これはスケジュールする仮想計算機が見つからなかったことを意味する。このときは、仮想計算機モニタ100はアイドルプロセスを物理プロセッサにスケジュールする。
図6のアルゴリズムにより、サービス率の要求が満たされる理由を説明する。
仮想計算機iのスケジュール優先度Piは、該仮想計算機iの仮想プロセッサが実行されるにつれて増加する。
仮想計算機モニタ100が、スケジュール優先度Piが最小の仮想計算機をスケジュールし続けることは、常に全ての仮想計算機のスケジュール優先度Piを等しくなるように作用する。
図2に示す3つの仮想計算機、仮想計算機1 300、仮想計算機2 310、及び仮想計算機3 320のスケジュール優先度S1 122、スケジュール優先度S2、及びスケジュール優先度S3が等しいことは、次の式(式5)が満たされることを意味する。
P1 = P2 = P3 −> R1/Q1 = R2/Q2 = R3/Q3 (式5)
(式5)の右側の等式を変換すると、以下の比例式(式6)が導かれる。
R1 : R2 : R3 = Q1 : Q2 : Q3 (式6)
一方、仮想計算機1 300、仮想計算機2 310、及び仮想計算機3 320の持ち時間Q1 124、Q2、Q3はその比率がサービス率S1 122、S2、S3の比率と等しくなるように定める。すなわち、以下の比例式(式7)が成り立つ。
Q1 : Q2 : Q3 = S1 : S2 : S3 (式7)
この2つの式(式6)と(式7)から、
R1 : R2 : R3 = S1 : S2 : S3 (式8)
が導かれる。
更に、仮想計算機の使用プロセッサ時間R1 126、R2、R3は、単位プロセッサ時間E 112の時間間隔で周期的にリセットされるので、例えばある時点において、仮想計算機1 300の使用プロセッサ時間R1 126に対する物理的な経過時間と、仮想計算機2 310の使用プロセッサ時間R2に対する物理的な経過時間は等しい。
これは、ある時間区間の開始時刻をTs、終了時刻をTeとし、TsからTeまでの仮想計算機1 300、仮想計算機2 310、及び仮想計算機3 320の使用プロセッサ時間をそれぞれ ΔR1、ΔR2、及びΔR3とすると、次式(式9)が成り立つことを意味する。
ΔR1/(Te−Ts) : ΔR2/(Te−Ts) : ΔR3/(Te−Ts) = S1 : S2 : S3 (式9)
が成り立つことを意味する。ここで、ΔR1/(Te−Ts)、ΔR2/(Te−Ts)、及びΔR3/(Te−Ts)は、それぞれ時間区間Te−Tsにおける、仮想計算機1 300、仮想計算機2 310、及び仮想計算機3 320のプロセッサ利用率を表す。
Tsおよび Teは任意の値とすることができるので、図6に示したアルゴリズムにより、任意の時間区間で、サービス率の要求が満たされる。
次に、本発明の仮想計算機システムのプロセッサキャッピング方法を説明する。
上述のように、アイドルの仮想計算機が存在する場合は、ビジーの仮想計算機のプロセッサ利用率が、サービス率で指定した比率を超えてしまうので、ビジーの仮想計算機をプロセッサキャッピング有効にする場合は、該仮想計算機のプロセッサ利用率を、明示的にサービス率で指定した比率以下に制限する手段を適用する必要がある。
本発明の仮想計算機システムのプロセッサキャッピング方法は、サービス率の理論を採用することで実現する。
サービス率がある特定の条件の下で保証するのは、仮想計算機のプロセッサ利用率が、サービス率の比率に等しくなるということである。
プロセッサキャッピングが満たさなければならない、仮想計算機のプロセッサ利用率をサービス率の比率以下に制限するという条件は、仮想計算機のプロセッサ利用率をサービス率の比率に等しくするということを含む。
プロセッサキャッピング有効の仮想計算機が、指定されたサービス率の比率を超えるプロセッサ利用率を必要とする負荷を有する場合には、該仮想計算機は、サービス率の比率と等しいプロセッサ利用率で、偏り無く均一に物理プロセッサを利用できることが望ましい。
サービス率が要求する上記の特定の条件とは、全ての仮想計算機の全ての仮想プロセッサがアイドルになることなく、物理プロセッサを割り当てられると、常に与えられたタイムスライス時間を使い切ることができる状態である。
プロセッサキャッピングを明示的に課す必要がある場合に、この特定の条件を作り出すことができれば、後は上記のサービス率のアルゴリズムを使うことで、望ましいプロセッサキャッピングが実現できる。
一方、プロセッサキャッピング有効の仮想計算機の負荷が、サービス率の比率ほどのプロセッサ利用率を必要としない場合には、該仮想計算機のプロセッサ利用率が、サービス率の比率を越えることは無い。
プロセッサキャッピング方法は、この場合には、サービス率制御の動作を妨げないものである必要がある。本発明のプロセッサキャッピング方法が、これを満たすことは実施例の中で具体的に説明する。
以下に、本実施形態における、仮想計算機システムのプロセッサキャッピング方法の実現方式を説明する。
まず、プロセッサキャッピング有効の対象の仮想計算機は、サービス率で指定された比率以上のプロセッサ利用率を必要とする負荷を有し、他の仮想計算機の負荷は、サービス率で指定された比率程のプロセッサ利用率を必要としないと仮定する。
このとき、仮想計算機モニタが、サービス率の理論を使って、プロセッサキャッピング有効の対象の仮想計算機のプロセッサ利用率をサービス率で指定された比率と等しくする為には、(式5)で示す関係を成立させる必要がある。
ところが、該仮想計算機の他の仮想計算機は負荷が低いので、仮想計算機の間のサービス率制御では、(式5)に示す関係は成立しない。
ここで都合のよいことに、(式5)に示す関係を成立させる為には、仮想計算機は少なくとも2つ存在すればよい。
そこで、プロセッサキャッピング有効の仮想計算機に対しては、仮想計算機の間のサービス率制御では(式5)に示す関係が成立しない場合に、常に(式5)に示す関係を成立させるように、仮想計算機モニタのスケジュールアルゴリズムが動作するような、概念的な仮想計算機を擬似的に生成する。
この概念的な仮想計算機の満たさなければならない要求は、プロセッサキャッピング有効の仮想計算機との間で、物理計算機の持ちプロセッサ時間の全てが、指定された比率で分割されるようにすること、前記の物理計算機の持ちプロセッサ時間の分割により、持ちプロセッサ時間を与えられると、該持ちプロセッサ時間を使い切るだけの負荷をもつことである。
前者の要求は、プロセッサキャッピング有効の仮想計算機と概念的な仮想計算機の持ちプロセッサ時間の和が、物理計算機の持ちプロセッサ時間と等しくすることで満たすことができる。
これは、物理計算機の持ちプロセッサ時間から、プロセッサキャッピング有効の仮想計算機の持ちプロセッサ時間を引いた余りのプロセッサ時間を、概念的な仮想計算機の持ちプロセッサ時間とすることで実現できる。
後者の要求は、プロセッサキャッピング有効の仮想計算機と概念的な仮想計算機がともにビジーになれば、すなわちスケジュールのアルゴリズムから見て、アイドルのプロセッサ時間が存在しなければ、満たされる。
スケジュールのアルゴリズムから見て、アイドルのプロセッサ時間が存在しないということは、プロセッサキャッピング有効の仮想計算機と概念的な仮想計算機の使用プロセッサ時間の和が単位プロセッサ時間の開始時刻からの経過時間に物理プロセッサ数を乗じた値と等しいということに置き換えられる。
これは、概念的な仮想計算機の使用プロセッサ時間を、単位プロセッサ時間の開始時刻からの経過時間に物理プロセッサ数を乗じた値から、プロセッサキャッピング有効の仮想計算機の使用プロセッサ時間を引いた値とすることで、実現することができる。
上記の2つの要求に対する実現方式は、共に全体から対象を引いた残りを使うという考え方に基づいている。全体集合Uから集合Qを引いた残りの部分をQの補集合と呼ぶことから、この残りの情報で擬似的に実現する概念的な仮想計算機を補仮想計算機と定義する。プロセッサキャッピング無効の仮想計算機に対しては、この補仮想計算機の概念は意味を持たない。
補仮想計算機がサービス率の理論に基づき、プロセッサキャッピングの役割を果たす為には、通常の仮想計算機と同様に、持ちプロセッサ時間と使用プロセッサ時間を有する必要がある。この要求を具体化したのが、図2に示す補仮想計算機テーブル210、220、230である。
仮想計算機1 300の補仮想計算機テーブル1 210を例に取り上げる。補仮想計算機テーブル1 120は、持ちプロセッサ時間G1 212、使用プロセッサ時間H1 214、及びスケジュール優先度C1 216を有する。仮想計算機2 310と仮想計算機3 320についても全く同様である。
仮想計算機1 300がプロセッサキャッピング有効であると仮定し、仮想計算機1 300、仮想計算機1 300に対応する補仮想計算機1の持ちプロセッサ時間と使用プロセッサ時間の関係を図7に示す。
仮想計算機1 300に対応する補仮想計算機1の持ちプロセッサ時間G1 212は、物理計算機の持ちプロセッサ時間U 118から該仮想計算機の持ちプロセッサ時間Q1 124を引くことにより、(式10)のように求めた値とする。
G1 = U−Q1 (式10)
次に、該補仮想計算機1の使用プロセッサ時間H1 214は、物理計算機001の使用プロセッサ時間、その時点のシステム時刻T1から、単位プロセッサ時間の開始時刻T0 116を引いた値(T1−T0)に物理プロセッサ数N 114を乗じた(T1− T0)xNから、対応する仮想計算機の使用プロセッサ時間R1 126を引くことにより、(式11)のように求めた値とする。
H1 = (T1−T0)×N−R1 (式11)
(式11)から分かるように、補仮想計算機1の使用プロセッサ時間H1 214は、対応する仮想計算機1 300以外が使用したプロセッサ時間の合計を意味する。
そして補仮想計算機 1のスケジュール優先度C1を対応する仮想計算機のスケジュール優先度P1と同様に、(式12)のように求める。
C1 = H1/G1 (式12)
補仮想計算機1の持ちプロセッサ時間 G1 212、使用プロセッサ時間H1 214、及びスケジュール優先度C1 216は全て、対応する仮想計算機1 300の情報と物理計算機100全体の情報のみから求められる。計算は単純であり、また計算時間は仮想計算機システムが有する仮想計算機の数、その他の仮想計算機の持ちプロセッサ時間、使用プロセッサ時間には依存しない。
仮想計算機モニタ100は、プロセッサキャッピング有効の仮想計算機1 300がビジーで、残りの仮想計算機2 310と仮想計算機3 320がアイドルである場合には、仮想計算機1 300のスケジュール優先度P1 128と対応する補仮想計算機1のスケジュール優先度C1 216を比較し、小さい値をとる仮想計算機をスケジュールする。
仮想計算機1 300をスケジュールすることは、仮想計算機1の有する、ある仮想プロセッサをスケジュールすることを意味する。
しかし、補仮想計算機1をスケジュールすることは、補仮想計算機1の仮想プロセッサをスケジュールすることは意味しない。なぜなら補仮想計算機1は仮想プロセッサを有しない概念であるからである。
正確には、仮想計算機1 300の仮想プロセッサをスケジュールしないことを意味する。仮想計算機モニタ100が、ある物理プロセッサ上で、その他にスケジュール可能な仮想計算機を見つけることができなかったならば、見つかるまでアイドルプロセス400a、400bがスケジュールされる。
仮想計算機iのスケジュール優先度Piが補仮想計算機iのスケジュール優先度Ci以下であるならば、仮想計算機iのある仮想プロセッサをスケジュールし、そうでないならば、決してスケジュールしない。スケジュールする仮想プロセッサが見つからない場合には、見つかるまでアイドルプロセスがスケジュールされる。
仮想計算機モニタ100が上記のスケジュールを続けることは、(式5)と同様に、常に仮想計算機iのスケジュール優先度Piと補仮想計算機iのスケジュール優先度Ciが等しくなるように作用する。
仮想計算機iのスケジュール優先度Piと補仮想計算機iのスケジュール優先度Ciが等しいことは、以下の(式13)が満たされることを意味する。
Pi = Ci −> Ri/Qi = Hi/Gi (式13)
(式13)の右側の等式を変換すると、以下の比例式(式14)が導かれる。
Ri : Hi = Qi : Gi (式14)
一方、仮想計算機iの持ち時間Qiと補仮想計算機iの持ち時間Giに対して次式(式15)が成り立つ。
Qi+Gi = Qi+(U−Qi) = U (式15)
これより、Qi/Uは、プロセッサキャッピングを課すプロセッサ利用率であることがいえる。
以上より、上記のサービス率と同様に論述を進めると、仮想計算機モニタ100が、仮想計算機iのスケジュール優先度Piと補仮想計算機iのスケジュール優先度Ciのうち小さい値をとる仮想計算機をスケジュールし続けると、仮想計算機iのプロセッサ利用率はQi/Uと等しく、すなわちサービス率Siで指定した比率と等しくなり、プロセッサキャッピングが課す、プロセッサ利用率がサービス率Siで指定した比率以下となるという条件も満たすことができる。
一方、プロセッサキャッピング有効の仮想計算機iがアイドルのときは、仮想計算機iのスケジュール優先度Piは対応する補仮想計算機iのスケジュール優先度Ciよりも小さい、すなわち、次の式(式16)が成り立つので、本発明のプロセッサキャッピング方法による、プロセッサ利用率の制限は課せられない。
Pi < Ci (式16)
(式16)が成り立つことを導く。プロセッサキャッピング有効の仮想計算機iがビジーのときの、単位プロセッサ時間の開始時刻T0からその時点のシステム時刻T1までの使用プロセッサ時間をRiとすると、Riは(式13)を満たす。同じ時間区間における、前記仮想計算機 iがビジーのときの使用プロセッサ時間をRi’とすると、RiとRi’の間には次式(式17)の関係式が成り立つ。
Ri < Ri’ (式17)
また、使用プロセッサ時間がRiのときの仮想計算機i及び補仮想計算機iのスケジュール優先度をそれぞれPiとCiとし、使用プロセッサ時間がRi’のときの仮想計算機i及び補仮想計算機iのスケジュール優先度をそれぞれPi’とCi’とする。このとき、(式10)、(式11)、(式12)、(式17)より、次式(式18)と(式19)が成り立つ。
Ri’/Qi < Ri/Qi −> Pi’ < Pi (式18)
((T1−T0)×N−Ri)/Gi < ((T1−T0)×N−Ri’)/Gi −> Ci < Ci’ (式19)
(式13)、(式18)、(式19)より、Pi’とCi’の間に
Pi’ < Ci’ (式20)
が成り立つ。以上より、プロセッサキャッピング有効の仮想計算機iがアイドルのときは(式16)を満たすことが導かれた。
次に、上記で説明した本発明のプロセッサキャッピング方法が、サービス率制御と共存できることを示す。
図2の仮想計算機システム構成において、仮想計算機1 300、仮想計算機2 310、及び仮想計算機3 320が全てビジーのときに、仮想計算機1 300をプロセッサキャッピング有効にし、仮想計算機2 310と仮想計算機3 320 をプロセッサキャッピング無効にした状態を考える。
このとき、サービス率制御により、次式(式21)が成立する。
P1 = P2 = P3 −> R1/Q1 = R2/Q2 = R3/Q3 (式21)
このとき、仮想計算機1 300のスケジュール優先度P1 128と対応する補仮想計算機1のスケジュール優先度C1 216が等しいことを導く。これを示すことができれば、本発明のプロセッサキャッピング方法は、サービス率制御の正常動作を妨げないことが言える。
まず、仮想計算機1 300に対応する補仮想計算機1の持ちプロセッサ時間G1 212は、仮想計算機2 310と3 320の持ちプロセッサ時間の和Q2+Q3に等しい。すなわち、次式(式22)が成り立つ。
G1 = U−Q1 = (Q1+Q2+Q3)−Q1 = Q1+Q2 (式22)
また、上式(式22)が成立するときは、物理プロセッサのアイドル時間が0であることより、仮想計算機1 300、仮想計算機2 310、及び仮想計算機3 320の使用プロセッサ時間R1 126、使用プロセッサ時間R2、及び使用プロセッサ時間R3の和が、物理計算機001の使用プロセッサ時間、すなわちその時点のシステム時刻T1から、単位プロセッサ時間の開始時刻T0 116を引いた値(T1−T0)に物理プロセッサ数 Nを乗じた(T1−T0)xNに等しい、すなわち次式(式23)が成立する。
R1+R2+R3 = (T1−T0)xN (式23)
これより、仮想計算機1 300に対応する補仮想計算機1の使用プロセッサ時間H1 214はR2+R3に等しいことが(式24)のように導かれる。
H1 = (T1−T0)xN−R1 = (R1+R2+R3)−R1 = R2+R3 (式24)
上記の手順で求めた、補仮想計算機1の持ちプロセッサ時間G1 212と使用プロセッサ時間H1214を使うと、補仮想計算機1のスケジュール優先度C1は次式(式25)のように求まる。
C1 = H1/G1 = (R2+R3)/(Q1+Q2) (式25)
仮想計算機1 300のスケジュール優先度P1 126とC1 216が等しい、すなわち次式(式26)が成り立つことが、上式(式25)から導かれる。
P1 = C1 <――> R1/Q1 = (R2+R3)/(Q2+Q3) (式26)
サービス率制御と本発明のプロセッサキャッピング方法は共存できるので、図6のサービス率制御に基づくスケジュール対象仮想計算機の選択処理のアルゴリズムに、本発明のプロセッサキャッピング方法のアルゴリズムを追加することができる。
図8に本発明のプロセッサキャッピング方法を追加した、仮想計算機モニタ100のスケジュール対象仮想計算機のアルゴリズムのフローチャートを示す。
図6のフローチャートに追加するのは、仮想計算機のプロセッサキャッピングが有効かどうかを判定するステップ(804)と、プロセッサキャッピング有効の仮想計算機に対して、該仮想計算機のスケジュール優先度が、対応する補仮想計算機のスケジュール優先度以下であるかどうかを判定するステップ(805)である。
仮想計算機モニタ100は図8のフローチャートで示すアルゴリズムにおいて、仮想計算機のスケジュール優先度Pの他に、一時変数として、forループで使用し仮想計算機番号を表すi、仮想計算機のスケジュール優先度Pは、その値が小さいほど優先度は高いので、その最小値を保持するMINPRIO、及びMINPRIOの値のスケジュール優先度を有する仮想計算機番号、すなわちスケジュール対象の仮想計算機番号を保持するSCHEDVMを使用する。
まず、最初にMINPRIOを無効な値、具体的にはスケジュール優先度Pがとり得ない十分に大きな値で初期化する。また、SCHEDVMを存在しない仮想計算機番号0で初期化する。
そして、スケジュール優先度Pが最小の仮想計算機番号を取得するforループを開始する。forループは、i=1からiを1ずつ増加させながらiが最大仮想計算機番号と等しくなるまでとする。
forループ内の処理を説明する。
まず、仮想計算機iのスケジュール優先度Piを取得する。
次の2つのステップ804と805が、本発明のプロセッサキャッピング方法を実現する為に追加するステップである。
まず、仮想計算機iがプロセッサキャッピング有効かどうかを判定する(804)。有効ならば、次へ進む。無効ならば、仮想計算機iのスケジュール優先度が全ての仮想計算機の中で最小かどうかを判定するステップ806へと進む。
仮想計算機iがプロセッサキャッピング有効であるならば、仮想計算機iのスケジュール優先度Piと対応する補仮想計算機iのスケジュール優先度Ciを比較する(805)。PiがCiよりも大きいならば、プロセッサキャッピングが掛かり、スケジュールできない状態であると判定し、以降の全てのステップをスキップし、次の仮想計算機i+1へと進む。
PiがCi以下であるならば、プロセッサキャッピングは掛かっていないと判定し、次のステップ806へと進む。
次に、Piの値が、一時変数MINPRIO未満であるならば、ステップ807においてMINPRIOにPiの値を代入し、SCHEDVMにiを代入する。
Piの値が一時変数MINPRIO以上であるならば何もしない。
forループを抜けると、スケジュール対象の仮想計算機番号が一時変数SCHEDVMに格納されている。
もし、SCHEDVMの値が非0であるならば、スケジュール対象の仮想計算機が見つかったことを意味する。仮想計算機モニタ100は、SCHEDVMの番号の仮想計算機のレディキューから仮想プロセッサを取り出して、物理プロセッサにスケジュールする。
ところが、もしSCHEDVMの値が0であるならば、これはスケジュールする仮想計算機が見つからなかったことを意味する。このときは、仮想計算機モニタ100はアイドルプロセスを物理プロセッサにスケジュールする。
本発明のプロセッサキャッピング方式によれば、例えば、仮想計算機に、プロセッサ利用率が25%の以下のスケジュールを認める、すなわち1分間では15秒のスケジュールを認めるというプロセッサキャッピングを課した場合に、最初の15秒間連続して実行され、そこでプロセッサキャッピングの制限がかかり、残りの45秒間は全く実行されないというシステム応答性の問題が解決でき、どの時間で計測してもプロセッサ利用率を25%とすることができる。
本発明を適用した仮想計算機システムの一実施形態を示す構成図である。 本発明を適用した一実施形態における、仮想計算機モニタの構成図である。 物理計算機と仮想計算機の間のプロセッサ時間の関係を示す概念図である。 仮想プロセッサの使用プロセッサ時間の更新処理のフローチャートである。 仮想計算機の使用プロセッサ時間の更新処理のフローチャートである。 仮想計算機モニタの、プロセッサキャッピングを適用しない場合の、スケジュール対象の仮想計算機の選択処理を示すフローチャートである。 物理計算機、仮想計算機、及び補仮想計算機の間の持ちプロセッサ時間の関係、及び使用プロセッサ時間の関係を示す概念図である。 仮想計算機モニタの、本発明のプロセッサキャッピング方法を適用する場合の、スケジュール対象の仮想計算機の選択処理を示すフローチャートである。
符号の説明
001 物理計算機
002a、002b 物理プロセッサ
004a、004b タイマ
006 システム時刻
100 仮想計算機モニタ
300、310、320 仮想計算機
302a、302b、302c、312a、312b、322a 仮想プロセッサ
400a、400b アイドルプロセス
110 物理プロセッサテーブル
112 物理計算機の単位プロセッサ時間
114 物理計算機の物理プロセッサ数
116 物理計算機の単位プロセッサ時間開始時刻
118 物理計算機の持ちプロセッサ時間
120、130、140 仮想計算機テーブル
122 仮想計算機のサービス率
124 仮想計算機の持ちプロセッサ時間
126 仮想計算機の使用プロセッサ時間
128 仮想計算機のスケジュール優先度
150、152、154 仮想計算機レディキュー
160a、160b、160c、170a、170b、180a 仮想プロセッサテーブル
162a、172a、182a 仮想プロセッサのスケジュール開始時刻
210、220、230 補仮想計算機テーブル
212 補仮想計算機の持ちプロセッサ時間
214 補仮想計算機の使用プロセッサ時間
216 補仮想計算機のスケジュール優先度
601 仮想計算機1の仮想プロセッサ0の使用プロセッサ時間
602 物理計算機の使用プロセッサ時間

Claims (3)

  1. 1以上の物理プロセッサを有する物理計算機上で、仮想計算機モニタがスケジュール優先度に基づき、仮想計算機及び該仮想計算機の有する1以上の仮想プロセッサのスケジュールを制御する仮想計算機システムにおいて、仮想計算機モニタが、仮想計算機のプロセッサ利用率を、指定された比率以下に制限するプロセッサキャッピング方法であって、
    プロセッサキャッピングが有効な仮想計算機に対して、物理計算機全体の持ちプロセッサ時間から前記プロセッサキャッピング有効仮想計算機に与えられる持ちプロセッサ時間を差し引いた時間を持ちプロセッサ時間とする補仮想計算機を生成し、
    各仮想計算機が単位時間に物理プロセッサを使用した使用プロセッサ時間を求め、
    物理計算機の持ちプロセッサ時間とし、仮想計算機の持ちプロセッサ時間とし、物理計算機の物理プロセッサ数とし、物理計算機の経過時間とし、及び仮想計算機の使用プロセッサ時間とするとき
    仮想計算機モニタは、
    物理計算機の持ちプロセッサ時間Uを分母とし、該仮想計算機の持ちプロセッサ時間Qを分子とした分数Q/Uが、該仮想計算機に対して指定したプロセッサ利用率Aと等しくなるようにし、
    仮想計算機のスケジュール優先度を、該仮想計算機の持ちプロセッサ時間Qを分母とし、該仮想計算機の使用プロセッサ時間Rを分子とした分数R/Qと求め、
    対応する補仮想計算機のスケジュール優先度を、物理計算機の持ちプロセッサ時間Uから該仮想計算機の持ちプロセッサ時間Qを引いた値U−Qを分母とし、物理計算機の経過時間Tに物理プロセッサ数Nを乗じたその時点の物理計算機の使用プロセッサ時間T×Nから、該仮想計算機の使用プロセッサ時間Rを引いた値T×N−Rを分子とした分数(T×N−R)/(U−Q)と求め、
    前記仮想計算機のスケジュール優先度R/Qが、前記補仮想計算機のスケジュール優先度(T×N−R)/(U−Q)以下の場合、該仮想計算機の有する仮想プロセッサを前記物理プロセッサにスケジュールすることを認め、
    前記仮想計算機のスケジュール優先度R/Qが、前記補仮想計算機のスケジュール優先度(T×N−R)/(U−Q)より大きい場合、前記プロセッサキャッピング有効仮想計算機の有する仮想プロセッサのスケジュールは行わないことで、プロセッサキャッピング対象の仮想計算機及び物理計算機の情報のみを使い、
    該仮想計算機のプロセッサ利用率 R/(T×N)がユーザの指定した比率Aを超えない範囲で、該仮想計算機のスケジュールを偏り無く行ことを特徴とする仮想計算機システムのプロセッサキャッピング方法。
  2. 仮想計算機モニタは、アイドルプロセスを物理プロセッサごとに有し、ある時点において、実行可能な仮想プロセッサを有する仮想計算機の全てのスケジュール優先度R/Qが、前記補仮想計算機のスケジュール優先度(T×N−R)/(U−Q)以下であり、プロセッサキャッピングを課せられている状態であるならば、
    前記の状態を検出した物理プロセッサは、該物理プロセッサ上のアイドルプロセスを、物理時間が経過し、少なくとも1つの仮想計算機が前記の条件式を満たすようになるまで、実行させ続けることを特徴とする請求項記載の仮想計算機システムのプロセッサキャッピング方法
  3. 前記プロセッサキャッピング有効仮想計算機のスケジュール優先度が前記補仮想計算機のスケジュール優先度以下の場合には前記プロセッサキャッピング有効仮想計算機のスケジュール優先度と他の仮想計算機のスケジュール優先度とを比較し、
    前記プロセッサキャッピング有効仮想計算機のスケジュール優先度が最小の場合に該プロセッサキャッピング有効仮想計算機の有する仮想プロセッサのスケジュールを行うことを特徴とする請求項1記載の仮想計算機システムのプロセッサキャッピング方法。
JP2007018668A 2007-01-30 2007-01-30 仮想計算機システムのプロセッサキャッピング方法 Active JP4715758B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007018668A JP4715758B2 (ja) 2007-01-30 2007-01-30 仮想計算機システムのプロセッサキャッピング方法
US12/021,744 US20080184227A1 (en) 2007-01-30 2008-01-29 Processor capping method in virtual machine system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007018668A JP4715758B2 (ja) 2007-01-30 2007-01-30 仮想計算機システムのプロセッサキャッピング方法

Publications (2)

Publication Number Publication Date
JP2008186210A JP2008186210A (ja) 2008-08-14
JP4715758B2 true JP4715758B2 (ja) 2011-07-06

Family

ID=39669427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007018668A Active JP4715758B2 (ja) 2007-01-30 2007-01-30 仮想計算機システムのプロセッサキャッピング方法

Country Status (2)

Country Link
US (1) US20080184227A1 (ja)
JP (1) JP4715758B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223842A (ja) * 2008-03-19 2009-10-01 Fujitsu Ltd 仮想計算機制御プログラム及び仮想計算機システム
TWI397010B (zh) * 2008-12-10 2013-05-21 Inst Information Industry Virtual machine module scheduling, scheduling methods and computer program products
JP4862056B2 (ja) * 2009-03-16 2012-01-25 株式会社東芝 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法
US20110196968A1 (en) * 2009-03-25 2011-08-11 Hitachi, Ltd. Computer system, resource management server for computer system, and resource management method for computer system
US8429652B2 (en) 2009-06-22 2013-04-23 Citrix Systems, Inc. Systems and methods for spillover in a multi-core system
JP5469940B2 (ja) 2009-07-13 2014-04-16 株式会社日立製作所 計算機システム、仮想計算機モニタ及び仮想計算機モニタのスケジューリング方法
JP5388909B2 (ja) * 2010-03-09 2014-01-15 株式会社日立製作所 ハイパバイザ、計算機システム、及び、仮想プロセッサのスケジューリング方法
JP5699755B2 (ja) * 2011-03-31 2015-04-15 富士通株式会社 割当方法、割当装置、および割当プログラム
US9183030B2 (en) 2011-04-27 2015-11-10 Microsoft Technology Licensing, Llc Virtual processor allocation techniques
KR20130074401A (ko) * 2011-12-26 2013-07-04 삼성전자주식회사 계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법
JP5748349B2 (ja) * 2012-03-16 2015-07-15 株式会社日立製作所 仮想計算機の制御方法及び仮想計算機システム
WO2016075771A1 (ja) * 2014-11-12 2016-05-19 株式会社日立製作所 計算機システムおよび計算機システムにおけるオートスケール方法
US9720722B2 (en) * 2015-09-03 2017-08-01 Red Hat Israel, Ltd. Hypervisor driven gradual balloon inflation
US10459747B2 (en) * 2016-07-05 2019-10-29 Red Hat Israel, Ltd. Exitless timer access for virtual machines
US10956193B2 (en) * 2017-03-31 2021-03-23 Microsoft Technology Licensing, Llc Hypervisor virtual processor execution with extra-hypervisor scheduling
US10423452B2 (en) * 2017-06-22 2019-09-24 International Business Machines Corporation Allocating resources to virtual machines
JP7151530B2 (ja) * 2019-02-13 2022-10-12 日本電信電話株式会社 サーバ基盤および物理cpu割当プログラム
JP2021149129A (ja) * 2020-03-16 2021-09-27 富士通株式会社 料金算出プログラム、及び料金算出方法
US20240111603A1 (en) * 2022-09-30 2024-04-04 Amazon Technologies, Inc. Customer-initiated virtual machine resource allocation sharing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01180641A (ja) * 1988-01-12 1989-07-18 Nec Corp Cpuソース平均化方式
JPH05324361A (ja) * 1992-05-15 1993-12-07 Fujitsu Ltd 仮想計算機システムのcpu制御方式
JPH11259316A (ja) * 1998-01-09 1999-09-24 Hitachi Ltd Cpu能力調整方法
JP2002182934A (ja) * 2000-10-02 2002-06-28 Internatl Business Mach Corp <Ibm> システムに形成された論理パーティションの容量制限を強化するための方法及び装置
JP2004288183A (ja) * 2003-03-21 2004-10-14 Hewlett-Packard Development Co Lp コンピューティングリソースを自動的に割り振る方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835767A (en) * 1994-08-19 1998-11-10 Unisys Corporation Method and apparatus for controlling available processor capacity
EP0725340A3 (en) * 1995-02-03 1996-10-02 Ibm Apparatus and method for managing the workload of a distributed data processing system by limiting the consumption of processing capacity
US7058824B2 (en) * 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
US7143411B2 (en) * 2002-03-15 2006-11-28 Hewlett-Packard Development Company, L.P. Capping processor utilization
US20060069761A1 (en) * 2004-09-14 2006-03-30 Dell Products L.P. System and method for load balancing virtual machines in a computer network
US7793308B2 (en) * 2005-01-06 2010-09-07 International Business Machines Corporation Setting operation based resource utilization thresholds for resource use by a process
US7770173B2 (en) * 2005-02-03 2010-08-03 International Business Machines Corporation System for dynamic processor enablement

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01180641A (ja) * 1988-01-12 1989-07-18 Nec Corp Cpuソース平均化方式
JPH05324361A (ja) * 1992-05-15 1993-12-07 Fujitsu Ltd 仮想計算機システムのcpu制御方式
JPH11259316A (ja) * 1998-01-09 1999-09-24 Hitachi Ltd Cpu能力調整方法
JP2002182934A (ja) * 2000-10-02 2002-06-28 Internatl Business Mach Corp <Ibm> システムに形成された論理パーティションの容量制限を強化するための方法及び装置
JP2004288183A (ja) * 2003-03-21 2004-10-14 Hewlett-Packard Development Co Lp コンピューティングリソースを自動的に割り振る方法

Also Published As

Publication number Publication date
JP2008186210A (ja) 2008-08-14
US20080184227A1 (en) 2008-07-31

Similar Documents

Publication Publication Date Title
JP4715758B2 (ja) 仮想計算機システムのプロセッサキャッピング方法
US8370846B2 (en) Task execution device and method
Van Tilborg et al. Foundations of real-time computing: Scheduling and resource management
JP4490298B2 (ja) プロセッサ電力制御装置及びプロセッサ電力制御方法
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
CN108984267B (zh) 工业服务器的微内核架构控制系统及工业服务器
JP2003298599A (ja) 分散制御方法及び装置
EP2219112A2 (en) Method and system for operating in hard real time
JP4697805B2 (ja) データ処理装置
JP2009294712A (ja) 優先度制御装置及び優先度制御方法
Cho et al. Scheduling parallel real-time tasks on the minimum number of processors
Lozoya et al. The one-shot task model for robust real-time embedded control systems
JP2008146357A (ja) プログラマブルコントローラ、及びその支援装置
CN100511155C (zh) 无积累误差和自适应定时器实现方法
JP2012181578A (ja) 更新制御装置及びプログラム
JP6311330B2 (ja) 情報処理装置、情報処理方法およびプログラム
KR20070012392A (ko) 억제된 버짓 사용 기술을 사용하여 버짓을 이전하기 위한방법 및 시스템
JP2014225137A (ja) タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法
de Oliveira et al. Dynamic reconfiguration in reservation-based scheduling: An optimization approach
JP2008234276A (ja) ジョブスケジュールの運用テストシステム
JP2007072598A (ja) バス調停方法及びバス調停プログラム
JPH07234847A (ja) ジョブのスケジューリング方法
JP2016184315A (ja) 電子制御装置
JP2006302168A (ja) コプロセッサ、および、その演算制御方法
KR101573781B1 (ko) 우선 순위 기반 저전력 태스크 스케줄링 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110209

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110314

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140408

Year of fee payment: 3