(57)【要約】【課題】  完全仮想化環境における仮想計算機システムのＣＰＵリソースを効率的に利用することを可能とする仮想計算機システム及び同システムの管理方法を提供することである。【解決手段】  実施形態の仮想計算機システムは、仮想マシンと、仮想マシン上で動作するゲストＯＳと、ゲストＯＳからのＨＬＴ命令に基づいて仮想マシンに割り当てられたＣＰＵの使用率を算出し、算出されたＣＰＵの使用率に基づいて仮想マシンにＣＰＵを割り当てる時間長を決定するハイパーバイザとを備える。【選択図】図１
2013214146.tif 000002
【特許請求の範囲】
【請求項１】
ハイパーバイザと、前記ハイパーバイザによって制御される仮想マシンと、前記仮想マ
シン上で動作するＯＳを備える仮想計算機システムであって、
前記ハイパーバイザは、前記ＯＳからのＨＬＴ命令に基づいて前記仮想マシンを割り当て
られたＣＰＵの使用率を算出し、算出された前記ＣＰＵの使用率に基づいて前記仮想マシ
ンに前記ＣＰＵを割り当てる時間長を決定する仮想計算機システム。
【請求項２】
前記ハイパーバイザは前記ＯＳからのＨＬＴ命令の所定時間当たりの回数に基づいて前記
ＣＰＵの使用率を算出する請求項１に記載の仮想計算機システム。
【請求項３】
前記ハイパーバイザは前記ＨＬＴ命令と、前記ＣＰＵに前記仮想マシンを割り当てた時
間とに基づいて、前記仮想マシンに割り当てられたＣＰＵの使用率を算出する請求項１及
び請求項２のいずれか１項に記載の仮想計算機システム。
【請求項４】
仮想計算機システムに備えられる仮想マシンを制御するハイパーバイザであって、
前記仮想マシン上で動作するＯＳからのＨＬＴ命令に基づいて前記仮想マシンに割り当
てられたＣＰＵの使用率を算出し、算出された前記ＣＰＵの使用率に基づいて前記仮想マ
シン前記ＣＰＵを割り当てる時間長を決定するハイパーバイザ。
【請求項５】
ハイパーバイザと、前記ハイパーバイザによって制御される仮想マシンと、前記仮想マ
シン上で動作するＯＳを備える仮想計算機システムの管理方法であって、
前記ＯＳからのＨＬＴ命令に基づいて前記仮想マシンに割り当てられたＣＰＵの使用率を
算出するステップと、
算出された前記ＣＰＵの使用率に基づいて前記仮想マシンに前記ＣＰＵを割り当てる時
間長を決定するステップと、を備える仮想計算機システムの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、仮想計算機システム、ハイパーバイザ及び仮想計算機システムの
管理方法に関する
【背景技術】
【０００２】
仮想化環境において、Ｎ台（Ｎは任意の整数）の仮想計算機（以下、仮想マシンといい
、ＶＭと記載する）が、Ｍ基（Ｍは任意の整数）のＣＰＵを共有する仮想計算機システム
がある。仮想計算機システムはハイパーバイザを備え、このハイパーバイザは、ある時刻
において、あるＶＭがどのＣＰＵをどれだけの時間使用するのかを決定する。すなわちハ
イパーバイザは各ＶＭ間でのＣＰＵのタイムシェアリングを行なう。
【０００３】
このとき、各ＶＭは独立しており、ある時刻において必要とするＣＰＵリソースは異な
る。仮想計算機システムにはＶＭ−ＡとＶＭ−Ｂが備えられるとし、仮想計算機システム
の運用期間中における所定の期間に注目すると、ＶＭ−Ａが割り当てられたＣＰＵ時間を
全て使い切る一方で、ＶＭ−Ｂは割り当てられたＣＰＵ時間を残すという場合がある。こ
の場合、ＶＭ−Ｂに割り当てたＣＰＵ時間減らす、もしくはＶＭ−Ｂに割り当てたＣＰＵ
時間減らしＶＭ−Ａに再割り当てすれば、ＣＰＵのリソースの利用効率が高くなる。
【０００４】
仮想化環境には準仮想化と完全仮想化がある。準仮想化環境における仮想計算機システ
ムであれば、ＶＭは、ハイパーバイザを認識しているため、例えばＣＰＵ使用率が低い場
合に、あまったＣＰＵリソースをハイパーバイザに返却することが可能である。したがっ
て、準仮想化環境の仮想計算機システムであれば、ＶＭ−ＢがＣＰＵ時間を残したとき、
ＶＭ−Ｂ自らがハイパーバイザにＣＰＵ時間の返却をすることができる。これにより返却
されたＣＰＵ時間を、ハイパーバイザがＶＭ−Ａに割り当てることで、ＶＭ−ＡのＣＰＵ
時間を延ばすことができる。
【０００５】
しかしながら、準仮想化環境における仮想計算機システムは、ＶＭがハイパーバイザを
認識するために、ＶＭ上で動作するオペレーティングシステム（以下、ＯＳ）の修正を行
なう必要がある。すなわち、ＯＳの修正なしにシステムを構築できない。
【０００６】
一方、完全仮想化環境における仮想計算機システムは、ＯＳを修正せずに動作する。こ
の完全仮想化環境の仮想計算機システムは、ハイパーバイザを認識していないため、ＣＰ
Ｕ時間を残したＶＭ−Ｂは、ハイパーバイザにＣＰＵ時間の返却をすることができない。
したがって、完全仮想化環境の仮想計算機システムにおいては、ハイパーバイザはＶＭの
ＣＰＵ使用率を把握できず、効率的なＣＰＵリソースの利用ができないという問題がある
。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１４１７１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明が解決しようとする課題は、完全仮想化環境における仮想計算機システムのＣＰ
Ｕリソースを効率的に利用することを可能とする仮想計算機システム及び同システムの管
理方法を提供することである。
【課題を解決するための手段】
【０００９】
実施形態の仮想計算機システムは、仮想マシンと、仮想マシン上で動作するゲストＯＳ
と、ゲストＯＳからのＨＬＴ命令に基づいて仮想マシンに割り当てられたＣＰＵの使用率
を算出し、算出されたＣＰＵの使用率に基づいて仮想マシンにＣＰＵを割り当てる時間長
を決定するハイパーバイザとを備える。 
【図面の簡単な説明】
【００１０】
【図１】実施形態の仮想計算機システムに係る基本構成の一例を示す図。
【図２】実施形態の仮想計算機システムに係るハイパーバイザの機能構成の一例を示す図。
【図３】実施形態の仮想計算機システムに係るＨＬＴ命令実行管理処理の一例を示すフローチャート。
【図４】実施形態の仮想計算機システムに係る仮想マシンＨＬＴ命令実行管理テーブルの一例を示す図。
【図５】実施形態の仮想計算機システムに係るタイムシェア長管理処理の一例を示すフローチャート。
【図６】実施形態の仮想計算機システムに係るタイムシェア長管理テーブルの一例を示す図。
【図７】実施形態の仮想計算機システムに係る合計ＨＬＴ長算出処理の一例を示すフローチャート。
【図８】実施形態の仮想計算機システムに係る仮想マシン統計管理テーブルの一例を示す図。
【図９】実施形態の仮想計算機システムに係るＣＰＵ使用率計算処理の一例を示すフローチャート。
【図１０】実施形態の仮想計算機システムに係るＣＰＵ使用率テーブルの一例を示す図。
【図１１】実施形態の仮想計算機システムに係る補正比率の計算式の一例を示す図。
【図１２】実施形態の仮想計算機システムに係るＣＰＵ割り当て時間管理テーブルの一例を示す図。
【図１３】実施形態の仮想計算機システムに係るＣＰＵ割り当て処理の一例を示すフローチャート。
【図１４】実施形態の仮想計算機システムに係る補正タイムシェア長の一例を示す図。
【図１５】実施形態の仮想計算機システム基本構成の一例を示す図。
【発明を実施するための形態】
【００１１】
以下、実施形態の仮想計算機システムについて図面を参照して説明する。
【００１２】
（第１の実施形態）
図１乃至図１４を参照して本実施形態の仮想計算機システムについて説明する。
【００１３】
図１は本実施形態の仮想計算機システムの基本構成の一例である。図１に示すように仮
想計算機システム１０は、物理サーバ２０と、ハイパーバイザ（以下、ＨＶという）３０
と、仮想マシン（以下、ＶＭという）４０とを備え、例えばパーソナルコンピュータ（以
下、ＰＣという）である。
【００１４】
仮想計算機システム１０は、３層構造で構成され、最下位層の物理サーバ２０上に中位
層のＨＶ３０と最上位層のＶＭ４０が仮想環境を構築して動作する。このときの仮想環境
は、完全仮想化環境であるとする。
【００１５】
下位層の物理サーバ２０は、物理ＣＰＵ２１を含むさまざまなハードウェアによって構
成される。物理ＣＰＵ２１は、後述する上位層のＶＭ４０上のゲストオペレーティングシ
ステム（以下、ゲストＯＳという）４１の処理を実際に実行する。ただし、本実施形態の
仮想計算機システム１０は、完全仮想化環境であるため、上位層のＶＭ４０は、下位層の
物理サーバ２０を認識していない。
【００１６】
中位層のＨＶ３０は、下位層のハードウェアと後述する上位層の各ＶＭ４０とを制御す
る。すなわち、ＨＶ３０は、上位層の各ＶＭ４０上で動作するゲストＯＳ４１に対して物
理的なハードウェアを隠蔽し、仮想ハードウェアを提供する。
【００１７】
また、ＨＶ３０は、各ＶＭ４０の状態をコンテキストとして管理するスケジューリング
機能を備える。ＨＶ３０を利用する利点としては、単一システム上で複数のゲストＯＳを
並列に動作させることができるので、ａ）各ゲストＯＳの長所を併せ持つシステムを構築
できること、ｂ）物理的なハードウェアの違いを隠蔽できること、ｃ）各ゲストＯＳの動
作エラーがシステム全体に影響しないこと、等々が挙げられる。
【００１８】
上位層には、１つ以上のＶＭ４０が存在し、ＶＭ４０毎にゲストＯＳ４１が動作する。本
実施形態では２つのＶＭ４０（ＶＭ１とＶＭ２）がある。
【００１９】
各ＶＭ４０は、１基以上の仮想ＣＰＵ（以下、ＶＣという）４２を有する。図１に示すよ
うに、ＶＭ１はＶＣ１を、ＶＭ２はＶＣ２をそれぞれ有する。各ＶＣ４２が、ＨＶ３０に
よって物理ＣＰＵ２１にディスパッチされることにより、各ＶＭ４０内のゲストＯＳ４１
は動作することができる。
【００２０】
本実施形態の２台のＶＣ４２は、ＨＶ３０が作成する仮想的なＣＰＵである。本実施形態
においては、ＶＭ１はＶＣ１を、また、ＶＭ２はＶＣ２を、本物のＣＰＵと認識して使用
するが、実際には使用されるのは物理サーバ２０上の物理ＣＰＵ２１である。
【００２１】
この物理ＣＰＵ２１は、仮想化支援機能を提供するＣＰＵである必要がある。仮想化支援
機能を提供するＣＰＵは、ホルト（ＨＡＬＴ）命令（以下ＨＬＴ命令という）等の特定の
命令を受け取ると、例えばＶＭＸ  ｒｏｏｔモードと呼ばれる状態に遷移し、ハイパーバ
イザにコンテキストを切り替え、ハイパーバイザ上で処理を実行後、ＶＭＸ  ｒｏｏｔモ
ードを解除し、元のコンテキストに戻る。このハイパーバイザへのコンテキスト切り替え
機能を持ったＣＰＵであれば、ＣＰＵの種類は問わない。
【００２２】
なお、ＨＬＴ命令とは、物理ＣＰＵを実行状態から停止状態へと変更させる命令であり、
ゲストＯＳ４１から発行され、ＶＭ４０が実行する。
【００２３】
ここで、図２を参照してＨＶ３０について詳しく説明する。図２は、ＨＶ３０の機能構
成の一例を示す図である。
【００２４】
図２に示すようにＨＶ３０は、仮想マシンＨＬＴ命令実行管理部３１、スケジューリン
グ部３２、タイムシェア長管理部３３、仮想マシン統計部３４、ＣＰＵ使用率計算部３５
、ＣＰＵ割り当て時間計算部３６、及び記憶装置３００を備える。
【００２５】
仮想マシンＨＬＴ命令実行管理部３１は、ＶＭ４０が実行したＨＬＴ命令を管理するＨＬ
Ｔ命令実行管理処理を行う。図３を参照して、仮想マシンＨＬＴ命令実行管理部３１が実
行するＨＬＴ命令実行管理処理について説明する。
【００２６】
仮想マシンＨＬＴ命令実行管理部３１は、ＶＭ４０がＨＬＴ命令を実行すると（ステップ
Ｓ３１１）、ＨＬＴ命令を実行したＶＭ名と、ＨＬＴ命令の実行時刻とを対応付けて、記
憶装置３００の仮想マシンＨＬＴ命令実行管理テーブル３０１に記録する（ステップＳ３
１２）。図４に、仮想マシンＨＬＴ命令実行管理テーブル３０１の一例を示す。
【００２７】
仮想マシンＨＬＴ命令実行管理部３１は、ＶＭ４０がＨＬＴ命令を実行するタイミング
で上述のＨＬＴ命令実行管理処理を開始する。ＨＬＴ命令が実行されるタイミングの一例
は、ＶＭ４０上で動作するゲストＯＳ４１において、実行状態および実行可能状態のプロ
セスが存在せず、待ち状態のプロセスのみになり、ＶＣ４２をｉｄｌｅ状態にする場合な
どがある。なお、待ち状態のプロセスには、Ｉ／Ｏの完了待ちを含む。
【００２８】
スケジューリング部３２は、物理ＣＰＵ２１毎に存在し、管理対象の物理ＣＰＵ２１への
割り当て待ちである全てのＶＣ４２から物理ＣＰＵ２１に割り当てるＶＣ４２を１つ選択
する。スケジューリング部３２は、記憶装置３００に記憶されたＣＰＵ割り当て時間管理
テーブル３０５を参照して、選択した物理ＣＰＵ２１にＶＣ４２を割り当てるＣＰＵ割り
当て処理を行う。初期状態では、物理ＣＰＵ２１にＶＣ４２を割り当てるタイムシェア長
はあらかじめ一定の時間長に設定されているとする。ＣＰＵ割り当て時間管理テーブル３
０５及びＣＰＵ割り当て処理については後述する。
【００２９】
選択されたＶＣ４２を使用するＶＭ４０は、物理ＣＰＵ２１に対するＶＣ４２の割り当て
が解除されるまで動作する。なお、管理対象の物理ＣＰＵ２１への割り当て待ちである全
てのＶＣ４２の選択は、例えばＨＶ３０においてあらかじめ設定されたタイミングで行わ
れる。あらかじめ設定されたタイミングは、例えば物理ＣＰＵ２１に割り当てられていた
ＶＣ４２が、ＣＰＵの割り当て許可時間を使い切った場合などである。
【００３０】
タイムシェア長管理部３３は、スケジューリング部３２が物理ＣＰＵ２１にＶＣ４２を割
り当てた場合に、ＶＣ４２に物理ＣＰＵ２１を割り当てる時間の長さ（以下、タイムシェ
ア長という）を管理するタイムシェア長管理処理を行う。
【００３１】
図５を参照して、本実施形態のタイムシェア長管理処理について説明する。本実施形態の
タイムシェア長管理処理は、例えばスケジューリング部３２によって物理ＣＰＵ２１にＶ
Ｃ４２が割り当てられた直後に開始される。
【００３２】
タイムシェア長管理部３３は、スケジューリング部３２によって物理ＣＰＵ２１にＶＣ４
２が割り当てられると（ステップＳ３３１）、物理ＣＰＵ２１に割り当てられるＶＣ４２
に対応するＶＭ名、スケジューリング部３２による物理ＣＰＵ２１の割り当て開始時刻、
スケジューリング部３２による物理ＣＰＵ２１へのＶＣ４２の割り当て終了時刻、及びタ
イムシェア長を記憶装置３００のタイムシェア長管理テーブル３０２に記録する（ステッ
プＳ３３２）。図６にタイムシェア長管理テーブル３０２の一例を示す。
【００３３】
仮想マシン統計部３４は、タイムシェア長管理テーブル３０２を参照して、あらかじめ設
定された一定期間Ｔｍ１の間に各ＶＭ４０がＨＬＴ命令を実行した回数を計算し、計算結
果の回数にＨＬＴ命令の実行時間を乗じて、ＨＬＴしていた合計の長さ（以下、合計ＨＬ
Ｔ長という）を算出する合計ＨＬＴ長算出処理を行う。合計ＨＬＴ長は、割り当てられた
ＣＰＵの不使用時間といえる。算出結果の合計ＨＬＴ長は、仮想マシン統計部３４によっ
て仮想マシン統計管理テーブル３０３に格納される。
【００３４】
図７を参照して本実施形態の合計ＨＬＴ長算出処理について説明する。なお、本実施形態
の合計ＨＬＴ長算出処理は、例えばタイムシェア長管理部３３がタイムシェア長管理テー
ブル３０２を更新した場合に開始される。
【００３５】
仮想マシン統計部３４は、タイムシェア長管理テーブル３０２を参照して、各ＶＭ４０に
おける、あらかじめ設定された一定期間Ｔｍ１ごとのタイムシェア長を算出する（ステッ
プＳ３４１）。
【００３６】
このとき、仮想マシン統計部３４は、一定周期Ｔｍｌの通し番号（例えば１周期目をＴｍ
１−１、２周期目をＴｍ１−２、３周期目をＴｍ１−３と記載する）と、算出結果のタイ
ムシェア長と、算出対象のＶＭ名とを対応付ける。
【００３７】
続いて、仮想マシン統計部３４は、タイムシェア長管理テーブル３０２を参照して、一
定期間Ｔｍ１の間に各ＶＭ４０がＨＬＴ命令を実行した回数を算出する（ステップＳ３４
２）。仮想マシン統計部３４は、ステップＳ３３の計算結果の回数にＨＬＴ命令の実行時
間を乗じて、ＶＭ４０がＨＬＴ実行していた合計のながさ（以下、合計ＨＬＴ長という）
を算出する（ステップＳ３４３）。なお、１回のＨＬＴ命令における実行時間（以下、Ｈ
ＬＴ長という）は一定であり、あらかじめ設定されている。
【００３８】
仮想マシン統計部３４は、上述した一定周期Ｔｍｌの通し番号と、合計ＨＬＴ長の算出
対象のＶＭ名と、ステップＳ３４１における算出結果であるタイムシェア長と、ステップ
Ｓ３４３における算出結果である合計ＨＬＴ長とを対応付けて、仮想マシン統計管理テー
ブル３０３に格納する。図８に仮想マシン統計管理テーブル３０３の一例を示す。
【００３９】
ＣＰＵ使用率計算部３５は、仮想マシン統計管理テーブル３０３を参照してＣＰＵ使用率
を計算するＣＰＵ使用率計算処理を行う。図９を参照して、本実施形態のＣＰＵ使用率計
算処理について説明する。なお、本実施形態のＣＰＵ使用率計算処理は、仮想マシン統計
管理テーブル３０３が更新された場合に開始される。
【００４０】
ＣＰＵ使用率計算部３５は、仮想マシン統計管理テーブル３０３から、ＣＰＵ使用率を算
出するＶＭ４０を順番に選択し、選択したＶＭ４０に関する、一定期間Ｔｍ１における合
計ＨＬＴ長と、タイムシェア長とを取得する（ステップＳ３５１）。ＣＰＵ使用率計算部
３５は、取得した合計ＨＬＴ長と、タイムシェア長に基づいて後述する計算式（１）を用
いて、一定周期ＴｍｌにおけるＣＰＵ使用率を算出する（ステップＳ３５２）。
【００４１】
ＣＰＵ使用率［％］
＝｛１−（合計ＨＬＴ長［ｍｓ］／タイムシェア長［ｍｓ］）｝×１００  ・・
・（１）
ＣＰＵ使用率計算部３５は、一定周期Ｔｍｌの通し番号、タイムシェア長、合計ＨＬＴ
長、及び、算出したＣＰＵ使用率を対応付けてＣＰＵ使用率管理テーブル３０４に格納す
る（ステップＳ３５３）。図１０に、ＣＰＵ使用率管理テーブル３０４の一例を示す。Ｃ
ＰＵ使用率管理テーブル３０４はＶＭの台数分存在し、図１０のＣＰＵ使用率管理テーブ
ル３０４はＶＭ１に関する。
【００４２】
ＣＰＵ割り当て時間計算部３６は、ＣＰＵ使用率管理テーブル３０４に格納された各ＶＭ
４０のＣＰＵ使用率に基づいて、後述するＣＰＵ割り当て処理において、スケジューリン
グ部３２が物理ＣＰＵ２１にＶＣ４２を割り当てるタイムシェア長をどのくらい補正する
かを示す補正値を算出する。具体的には、ＣＰＵ割り当て時間計算部３６は、後述する計
算式（２）を用いて、ＣＰＵを割り当てるタイムシェア長を補正する比率（以下、補正比
率という）を算出する。
【００４３】
以下に、補正比率を算出する計算式（２）の一例を示す。なお、ＣにはＣＰＵ使用率［％
］が代入される
補正比率［％］
＝０．０００１×Ｃ３−０．０１７５×Ｃ２＋０．９８３８×Ｃ＋２０．０４６・・・
（２）
図１１に計算式（２）のグラフを示す。計算式（２）は、ＣＰＵ使用率が５０％以上の
ときは正の補正比率、５０％未満のときは負の補正比率となるような式である。また、Ｃ
ＰＵ使用率に応じて補正比率は−２０（最小値）〜２０％（最大値）で変化し、ＣＰＵ使
用率が１００％に近いほど補正比率は最大値に近づき、０％に近いほど最小値に近づく。
この最大／最小値は管理者が任意の大きさを指定できる。。
【００４４】
補正比率を算出する計算式は、上記の計算式（２）以外でもよい。例えば、以下の条件
１〜３を全て満たす関数であればよい。
【００４５】
条件１：横軸の最小値で縦軸の最小値と一致
条件２：横軸の最大値で縦軸の最大値と一致
また、ＣＰＵ割り当て時間計算部３６は、算出した補正比率に基づいて累計の補正比率を
算出する。累計の補正比率は、ＶＭ４０の起動時に１００％であり、補正比率の値を一定
期間Ｔｍ１ごとに加算することにより、算出される。
【００４６】
累計補正比率は上限及び下限を持つ。例えば、上限が１８０％、下限が２０％とする。こ
の場合、ＶＭ１の累計補正比率が２１％のときに、算出された補正比率が−２０％であっ
ても、次の累計補正比率は１％ではなく２０％となる。これにより、各ＶＭ４０は、最低
限動作するためのＣＰＵ割り当てを確保することができる。この上限及び下限は管理者が
任意で設定してかまわない。なお、累計補正比率の上限を１００％にすることで、ＣＰＵ
使用率が高いＶＭ４０のＣＰＵ割り当て時間を伸ばさないことが可能となる。これにより
、所定のＶＭ４０のＣＰＵ割り当て時間が、本来の割り当て時間よりも延びてしまうこと
が無くなる。
【００４７】
ＣＰＵ割り当て時間計算部３６は、一定周期Ｔｍｌの通し番号、タイムシェア長、ＣＰＵ
使用率、補正比率、及び累計の補正比率をＣＰＵ割り当て時間管理テーブル３０５に記録
する。図１２にＣＰＵ割り当て時間管理テーブル３０５の一例を示す。
【００４８】
ここで、図１３を参照して、スケジューリング部３２が、ＣＰＵ割り当て時間管理テーブ
ル３０５を参照して、物理ＣＰＵ２１に割り当てるＶＣ４２を選択するＣＰＵ割り当て処
理について説明する。図１３は本実施形態のＣＰＵ割り当て処理の一例を示すフローチャ
ートである。なお、ＣＰＵ割り当て処理は、例えばスケジューリング部３２が割り当てた
タイムシェア長を割り当て対象のＶＣ４２が使い切った場合に開始される。
【００４９】
スケジューリング部３２は、物理ＣＰＵ２１に割り当てられるＶＣ４２を選択すると（
ステップＳ３２１）、当該ＶＣ４２を有するＶＭ４０の累計補正比率、ＣＰＵ割り当て時
間管理テーブル３０５から取得する（ステップＳ３２２）。
【００５０】
スケジューリング部３２は、ＶＣ４２のタイムシェア長に、取得した累計補正比率を乗
じ、補正タイムシェア長を算出する（ステップＳ３２３）。図１４に算出結果の補正タイ
ムシェア長の一例を示す。
【００５１】
算出結果の補正タイムシェア長の間、スケジューリング部３２は、ステップＳ３２１で
選択した物理ＣＰＵ２１にＶＣ４２を割り当てる（ステップＳ３２４）。
【００５２】
上述のように、本実施形態の仮想計算機システムは、仮想マシン上で動作するゲストＯ
ＳからのＨＬＴ命令に基づいてハイパーバイザがＣＰＵ使用率を算出し、算出された使用
率に基づいて次のスケジューリングにおけるＣＰＵ割り当て時間の補正を行う。したがっ
て、ゲストＯＳからハイパーバイザに利用状況を通知できない完全仮想化環境であっても
ＣＰＵを効率的に利用することが可能である。
【００５３】
また、本実施形態の仮想計算機システムは、ＨＬＴ命令の実行回数と、ＣＰＵを割り当
てる時間を基にＣＰＵ使用率を求めて、その値に応じて次のスケジューリングにおけるＣ
ＰＵ割り当て時間の補正を行うことにより、ＣＰＵをあまり使用していない仮想マシンの
ＣＰＵ使用時間を、ＣＰＵを必要とする仮想マシンに分け与えることができる。すなわち
、ＣＰＵリソースの効率的な利用が可能となる。
【００５４】
以上、本発明の実施形態を説明したが、この実施形態は例として提示したものであり、
発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形
態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換
え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれる
とともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００５５】
例えば、本実施形態では、仮想マシンが２台の場合を例に説明したが、仮想マシンは何台
であってもかまわない。この場合の利用例として、例えば以下のようなケースが考えられ
る。
【００５６】
例えば、３台以上の仮想マシンが、それぞれ１基の仮想ＣＰＵを使用し、１基の物理Ｃ
ＰＵを共有する場合で、全ての仮想マシンのＣＰＵ使用率が常に１００％の場合のケース
である。この場合、ＣＰＵ割り当て処理のたびに補正比率が＋２０％であるから、累計補
正比率は最大の１８０％になるが、それ以上割り当てが増加することは無いので、特定の
仮想ＣＰＵが物理ＣＰＵを占有することは無い。
【００５７】
また、本実施形態では、物理ＣＰＵが１基の場合を例に説明したが、物理ＣＰＵは何基あ
ってもかまわない。各物理ＣＰＵ上で、本実施形態の各処理が独立して動作する。
【００５８】
具体的には、図１５に示すような物理ＣＰＵ（以下、ＰＣＰＵと記載する）２１が４基（
ＰＣＰＵ１〜ＰＣＰＵ４）、仮想ＣＰＵが８基（ＶＣ１−１〜ＶＣ２−４）備えられた仮
想計算機システム１００においてＰＣＰＵ１に、今までＶＣ１−１の仮想ＣＰＵが割り当
てられていて、その割り当てが解除されたとすると、次のＶＣ４２の割り当ては、ＰＣＰ
Ｕに割り当てられていないＶＣ４２から、スケジューラのアルゴリズムにしたがって選択
される。ＰＣＰＵ２１に割り当てられていないＶＣ４２は、ＶＣ１−１、ＶＣ１−３、Ｖ
Ｃ１−４、ＶＣ２−２、ＶＣ２−３である。そのときに行われる本実施形態のフローは、
物理ＣＰＵが１基のときと同様なものである。
【符号の説明】
【００５９】
１０…仮想計算機システム、２０…物理サーバ、２１…物理ＣＰＵ、３０…ハイパーバイ
ザ、３１…仮想マシンＨＬＴ命令実行管理部、３２…スケジューリング部、３３…タイム
シェア長管理部、３４…仮想マシン統計部、３５…ＣＰＵ使用率計算部、３６…ＣＰＵ割
り当て時間計算部、４０…仮想マシン、４１…ゲストＯＳ、４２…仮想ＣＰＵ、３００…
記憶装置
【図１】
2013214146.tif 000003
【図２】
2013214146.tif 000004
【図３】
2013214146.tif 000005
【図４】
2013214146.tif 000006
【図５】
2013214146.tif 000007
【図６】
2013214146.tif 000008
【図７】
2013214146.tif 000009
【図８】
2013214146.tif 000010
【図９】
2013214146.tif 000011
【図１０】
2013214146.tif 000012
【図１１】
2013214146.tif 000013
【図１２】
2013214146.tif 000014
【図１３】
2013214146.tif 000015
【図１４】
2013214146.tif 000016
【図１５】
2013214146.tif 000017