(57)【要約】【課題】仮想計算機に対する割込みの受付け遅延を改善し、仮想計算機の処理性能を向上させる。【解決手段】  物理計算機を論理的に分割して複数の仮想計算機として使用する仮想計算機システムにおいて、仮想計算機ごとに処理を実行する物理計算機の命令プロセッサの性能を変更する手段と、変更手段により変更された命令プロセッサの性能に基づいて仮想計算機の命令プロセッサの使用時間を設定する手段とを有する。物理計算機の処理能力を変化させることにより、仮想計算機に割当てる命令プロセッサの使用時間を任意に変更する。【選択図】  図1
2006059052.tif 000002
【特許請求の範囲】
【請求項１】
物理計算機を論理的に分割して複数の仮想計算機として使用する仮想計算機システムにおいて、該仮想計算機ごとに処理を実行する物理計算機の命令プロセッサの性能を変更する手段と、該変更手段により変更された命令プロセッサの性能に基づいて該仮想計算機の命令プロセッサの使用時間を設定する手段とを有することを特徴とする仮想計算機システム。
【請求項２】
前記変更手段は、各仮想計算機を実行する際の該物理計算機の命令プロセッサの処理能力を、各仮想計算機に割当てられた処理能力の配分、および該仮想計算機の命令プロセッサの使用時間から算出し、算出した結果を用いて該命令プロセッサの処理能力を変更することを特徴とする請求項１の仮想計算機システム。
【請求項３】
前記変更手段は、該仮想計算機システムに接続される入出力装置を含めたシステムの処理速度を測定して、該仮想計算機システムのスケジューリングで使用するタイムスライス値を決定することを特徴とする請求項１の仮想計算機システム。
【請求項４】
該変更手段を用いて、該仮想計算機の管理、制御を行うハイパバイザの処理実行に割当てる命令プロセッサの性能を変更することを特徴とする請求項１の仮想計算機システム。
【請求項５】
論理的に定義された複数の仮想計算機に対して、物理計算機が有する命令プロセッサの処理能力を割り当てる仮想計算機のスケジューリング方法において、
該仮想計算機ごとのサービス比を設定するステップと、
該仮想計算機に該命令プロセッサを割当てるタイムスライス値を決定するステップと、
該仮想計算機を該命令プロセッサに割当てる際の命令プロセッサ性能を表す物理ＣＰＵ能力を求めるステップと、
求められた該仮想計算機ごとの該物理ＣＰＵ能力値を使用して、該命令プロセッサの性能変更に使用するために設定された命令プロセッサ割込み間隔で割り込みを発生させたときに該命令プロセッサを待ち状態とする時間を算出するステップと、
決定された該タイムスライス値、及び該仮想計算機の命令プロセッサ待ち時間を使用し、該仮想計算機のスケジューリングを行うステップ
を有することを特徴とするスケジューリング方法。
【請求項６】
前記物理ＣＰＵ能力を求めるステップは、
予め決められた、ユーザが使用を許可されている命令プロセッサの処理能力を示す物理ＣＰＵ基準能力値と、該サービス比と、該タイムスライス値の総和を乗じ、各仮想計算機のタイムスライス値で除算して得られた商である該物理ＣＰＵ能力値と、該命令プロセッサの最大性能を示す物理ＣＰＵ実能力値とを比較し、比較の結果、該物理ＣＰＵ能力値が該物理ＣＰＵ実能力値以下であることを条件に、全ての該仮想計算機の物理ＣＰＵ能力値を算出すること、
を特徴とする請求項５のスケジューリング方法。
【請求項７】
前記命令プロセッサの待ち時間を算出するステップは、
該仮想計算機毎に求められた該物理ＣＰＵ能力値を、物理ＣＰＵ実能力値で除算して得られる商をＣＰＵ能力率としてメモリに格納し、次に、該命令プロセッサ割込み間隔を該ＣＰＵ能力率で割り、得られた商から命令プロセッサ割込み間隔を減じて、得られた値を命令プロセッサ待ち時間としてメモリに格納する動作を全ての該仮想計算機に対して実施することを特徴とする請求項５又は６のスケジューリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機システムに係り、特に１つのシステムの物理計算機を論理的に分割して複数の仮想計算機として使用する仮想計算機システムにおける、仮想計算機のスケジューリングに関するものである。
【背景技術】
【０００２】
仮想計算機システムのスケジューリング方法の一つとして、タイムスライス方式が知られている。タイムスライス方式は、物理計算機の命令プロセッサの稼動時間をタイムスライスと呼ばれる時間間隔で分割して利用する技術である。仮想計算機には、あらかじめ処理能力を定義しておき、その定義に従って各仮想計算機に対して物理計算機の命令プロセッサ割当てをタイムスライス単位で行う。これにより、複数の仮想計算機で物理計算機の処理能力を分割利用できる。
【０００３】
この種のタイムスライス方式による仮想計算機のスケジューリング方法としては、例えば、特開２００３−１７７９２８号公報に、タイムスライス時間を可変的な値とすることによりスケジュールパターンの偏りの発生を防止するスケジューリング方法が開示されている。
【０００４】
【特許文献１】特開２００３−１７７９２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
斯かる従来技術のタイムスライス方式のスケジューリング方法によれば、次のような問題が在る。
１つには、仮想計算機に対する割込みが発生した場合に、その割込みを受付ける仮想計算機が物理計算機の命令プロセッサを使用できるようになるまで、その割込みを受付けられないため、割込み処理の遅延が発生し、仮想計算機の処理性能の低下を招くことである。
【０００６】
２つには、仮想計算機の処理能力を仮想計算機間で偏らせて割当てた場合に、処理能力の割当てが他仮想計算機に比べて小さい仮想計算機においては、その仮想計算機に割当てられる物理計算機の命令プロセッサ使用時間が短くなるため、物理計算機内のキャッシュを有効に使用できる時間が少なくなり、メモリへのアクセスが多発し、仮想計算機の処理性能の低下を招くことである。
【０００７】
従って、本発明の目的は、仮想計算機に対する割込みの受付け遅延を改善し、仮想計算機の処理性能を向上することにある。
本発明の他の目的は、ある仮想計算機の処理能力の割合が他の仮想計算機に比べて小さい場合においても、その仮想計算機に物理計算機の命令プロセッサを割当てるタイムスライスを長くすることにより、物理計算機のキャッシュの有効性を高め、仮想計算機の処理性能を向上することにある。
【課題を解決するための手段】
【０００８】
本発明は、物理計算機を論理的に分割して複数の仮想計算機として使用する仮想計算機システムにおいて、仮想計算機ごとに処理を実行する物理計算機の命令プロセッサの性能を変更する手段と、変更手段により変更された命令プロセッサの性能に基づいて仮想計算機の命令プロセッサの使用時間を設定する手段とを有する仮想計算機システムである。
好ましくは、前記変更手段は、各仮想計算機を実行する際の物理計算機の命令プロセッサの処理能力を、各仮想計算機に割当てられた処理能力の配分、および仮想計算機の命令プロセッサの使用時間から算出し、算出した結果を用いて命令プロセッサの処理能力を変更する。
また、前記変更手段は、好ましくは、仮想計算機システムに接続される入出力装置を含めたシステムの処理速度を測定して、仮想計算機システムのスケジューリングで使用するタイムスライス値を決定する。
また、一例では、この変更手段を用いて、仮想計算機の管理、制御を行うハイパバイザの処理実行に割当てる命令プロセッサの性能を変更する。
【０００９】
本発明に係る仮想計算機のスケジューリング方法に関して言えば、好ましくは、論理的に定義された複数の仮想計算機に対して、物理計算機が有する命令プロセッサの処理能力を割り当てる仮想計算機のスケジューリング方法において、仮想計算機ごとのサービス比を設定するステップと、仮想計算機に該命令プロセッサを割当てるタイムスライス値を決定するステップと、仮想計算機を命令プロセッサに割当てる際の命令プロセッサ性能を表す物理ＣＰＵ能力を求めるステップと、求められた仮想計算機ごとの物理ＣＰＵ能力値を使用して、命令プロセッサの性能変更に使用するために設定された命令プロセッサ割込み間隔で割り込みを発生させたときに命令プロセッサを待ち状態とする時間を算出するステップと、決定されたタイムスライス値、及び仮想計算機の命令プロセッサ待ち時間を使用し、仮想計算機のスケジューリングを行うステップとを有するスケジューリング方法である。
【発明の効果】
【００１０】
本発明によれば、１つの物理計算機を論理的に複数の計算機として使用する仮想計算機システムにおいて、仮想計算機の処理能力の定義に従って物理計算機の処理能力を変化させることにより、仮想計算機に割当てる命令プロセッサ使用時間を任意に変更できる。これにより、各々の仮想計算機に対する割込み処理の遅延を改善でき、仮想計算機の処理性能を向上することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を使用して本発明の一実施形態について詳細に説明する。
図１は、一実施形態による仮想計算機システムの構成を示す図である。
物理計算機１００は、命令プロセッサ１０１、キャッシュ１０２、メモリ１０３、チャネル１０４、ＣＰＵタイマ１０５、サービスプロセッサ１０６、コンソールディスク１０７を備える。物理計算機１００はまた、外部記憶装置のような入出力装置１０８、及びコンソール装置１０９と接続している。物理計算機１００には、複数の仮想計算機が定義され、例えば２台の仮想計算機１３０と仮想計算機１３１が稼動している。それぞれの仮想計算機に対する処理能力の配分を定義するサービス比は、仮想計算機１３０のサービス比が０．８、仮想計算機１３１のサービス比が０．２と設定されている。メモリ１０３内には仮想計算機１３０、１３１の命令プロセッサへの割当てスケジュールに使用するスケジューリング制御テーブル１２０を格納している。
【００１２】
サービスプロセッサ１０６とコンソールディスク１０７は、物理計算機１００の構成情報の設定及び格納するために使用される。コンソールディスク１０７内には、物理計算機に対する仮想計算機の処理能力の配分を表すサービス比を管理するサービス比管理テーブル１２１、ユーザが使用を許可されている命令プロセッサの処理能力を示す物理ＣＰＵ基準能力値１２２、命令プロセッサの最大性能を示す物理ＣＰＵ実能力値１２３、及び命令プロセッサの性能変更に使用する命令プロセッサ割込み間隔１２４を示す各々の情報が格納される。これらの情報はコンソール装置１０９から設定して入力される。
【００１３】
尚、図示は省略されているが、この仮想計算機システムを管理、制御するためのソフトウェアとしてハイパバイザが設けられており、このハイパバイザを介して各仮想計算機１３０、１３１に割り込みを発生させたり、各仮想計算機に対するタイムスライスのスケジュールを実行する。
【００１４】
図２は、サービス比管理テーブル１２１の構成例を示す。
サービス比管理テーブル１２１は、コンソール装置１０９から設定される、仮想計算機１のサービス比２１０、及び仮想計算機２のサービス比２１１を格納して管理する。図示の例では、仮想計算機１のサービス比が０．８、仮想計算機２のサービス比が０．２と設定されている。
【００１５】
図３は、スケジューリング制御テーブル１２０の構成例を示す。
スケジューリング制御テーブル１２０には、２台の仮想計算機を命令プロセッサ１０１に割当てる時間であるタイムスライス値３１１、３１２、各仮想計算機のタイムスライス値の総和であるタイムスライス値総和３１０、各仮想計算機を割当てる際に設定する命令プロセッサの性能を表す物理ＣＰＵ能力値３２０、３２１、仮想計算機の物理ＣＰＵ能力値に従って命令プロセッサの性能を変更する際に、コンソールディスク１０７内の命令プロセッサ割込み間隔１２４毎に実施する命令プロセッサの処理待ち時間を指定する命令プロセッサ待ち時間３３０、３３１を示す情報がそれぞれ格納されて構成される。
【００１６】
次に、図４を参照して、仮想計算機システムの制御について説明する。
サービス比設定手順（ステップ４００）において、ユーザによってコンソール装置１０９から仮想計算機１３０、１３１毎のサービス比を設定する（ステップ４００）。サービスプロセッサ１０６は、設定された各仮想計算機のサービス比２１０、２１１をサービス比管理テーブル１２１に格納する。サービス比は任意に設定できるが、ここでは、仮想計算機１と仮想計算機２のサービス比がそれぞれ０．８と０．２に設定されたものとする。
【００１７】
ステップ４０１以降の処理は、各仮想計算機１３０、１３１を管理、制御するためのハイパバイザの制御により実行される。
タイムスライス値決定手順（ステップ４０１）では、仮想計算機１３０、１３１に命令プロセッサ１０１を割当てる単位時間であるタイムスライス値３１１、３１２を決定する。タイムスライス値は仮想計算機システムの要件に応じて値を選択することが可能であるが、本実施例では図５の処理により、入出力装置１０８への入出力命令発行から入出力完了割込みまでにかかる平均時間をタイムスライス値と決定して、タイムスライス値３１１、３１２に格納する。
【００１８】
図５のフローチャートを参照するに、まず、回数カウンタ、Ｉ／Ｏ  ＳＴＡＲＴ時刻、Ｉ／Ｏ  ＥＮＤ時刻、累積Ｉ／Ｏ時間を変数として準備し、それらの変数に初期値「０」を格納する（ステップ５００）。次に、物理計算機１００に接続されている入出力装置１０８に対して、小容量例えば４ＫＢデータの書込み命令を発行し、命令発行時のＣＰＵタイマ１０５の値をＩ／Ｏ ＳＴＡＲＴ時刻に格納する(ステップ５０１)。その後、入出力装置１０８から入出力完了割込みを受付け、その時点のＣＰＵタイマ１０５の値をＩ／Ｏ ＥＮＤ時刻に格納する(ステップ５０２)。そして、Ｉ／Ｏ ＥＮＤ時刻からＩ／Ｏ ＳＴＡＲＴ時刻を減じ、累積Ｉ／Ｏ時間を加えたものを累積Ｉ／Ｏ時間に格納する。また、同時に回数カウンタに「１」加える(ステップ５０３)。
以後、入出力装置１０８への書込み命令発行以降の処理を繰り返し、回数カウンタが「１０」以上となったら（ステップ５０４）、累積Ｉ／Ｏ時間を回数カウンタおよびサービス比管理テーブル１２１のエントリ数より求まる仮想計算機の合計台数で割り、商をスケジューリング制御テーブル１２０内のタイムスライス値３１１、３１２に、その合計値をタイムスライス値総和３１０に格納する(ステップ５０５)。
【００１９】
以上で、図４のタイムスライス値の決定処理（ステップ４０１）が終わり、次に物理ＣＰＵ能力値決定手順（ステップ４０２）の処理が実行される。この処理は図６に示すフローチャートに従って行なわれる。
【００２０】
図６において、仮想計算機１３０、１３１を命令プロセッサ１０１に割当てる際の命令プロセッサ性能を表す物理ＣＰＵ能力を求めるため、コンソールディスク１０７内の物理ＣＰＵ基準能力値１２２、サービス比管理テーブル１２１内のサービス比２１０、２１１、スケジューリング制御テーブル１２０内のタイムスライス値総和３１０を乗じ、各仮想計算機のタイムスライス値３１１、３１２で除算していられる商をスケジューリング制御テーブル１２０内の物理ＣＰＵ能力値３２０、３２１に格納する(ステップ６００)。
【００２１】
次に、算出した物理ＣＰＵ能力値３２０、３２１と、コンソールディスク１０７内の物理ＣＰＵ実能力値１２３とが比較される(ステップ６０１)。比較の結果、物理ＣＰＵ能力値(３０２、３０３)が物理ＣＰＵ実能力値(１２３)以下であれば、次の仮想計算機の物理ＣＰＵ能力値を算出する。そして、全ての仮想計算機の物理ＣＰＵ能力値が求まると(ステップ６０２)、次の命令プロセッサ待ち時間決定手順ステップ４０３へと移行する。
【００２２】
図６のステップ６０１において、物理ＣＰＵ能力値(３２０、３２１)が物理ＣＰＵ実能力値(１２３)を超える場合は、物理ＣＰＵ能力値決定手順(ステップ４０１)はエラーを返して終了する(ステップ６０３)。物理ＣＰＵ能力値決定手順(ステップ４０１)がエラーとなった場合、仮想計算機のサービス比の設定が不適切であるため、図４のサービス比設定手順(ステップ４００)にて再度、各仮想計算機のサービス比を設定する。
【００２３】
次に、命令プロセッサ待ち時間決定手順(ステップ４０３)では、仮想計算機１３０、１３１の物理ＣＰＵ能力値３２０、３２１を使用して、コンソールディスク１０７内の命令プロセッサ割込み間隔１２４で割り込みを発生させたときに命令プロセッサ１０１を待ち状態とする時間を算出するための処理を実行する。この処理は図６に示すフローチャートに従って行なわれる。
【００２４】
図７において、命令プロセッサ待ち時間決定手順（ステップ４０３）では、変数としてＣＰＵ能力率を用意し、スケジューリング制御テーブル１２０内の仮想計算機の物理ＣＰＵ能力値(３２０、３２１)と、コンソールディスク１０７内の物理ＣＰＵ実能力値(１２３)を読出し、物理ＣＰＵ能力値３２０、３２１を物理ＣＰＵ実能力値１２３で除算して得られる商をＣＰＵ能力率に格納する(ステップ７００)。
【００２５】
次に、コンソールディスク１０７内の命令プロセッサ割込み間隔１２４をＣＰＵ能力率で割り、得られた商から命令プロセッサ割込み間隔１２４を減じる。そして得られた値をスケジューリング制御テーブル１２０内の命令プロセッサ待ち時間３３０、３３１に格納する(ステップ７０１)。上記処理を全ての仮想計算機に対して実施した後に(ステップ７０２)、図４のスケジューリング手順（ステップ４０４）へ移行する。
【００２６】
スケジューリング手順（ステップ４０４）では、スケジューリング制御テーブル１２０内のタイムスライス値３１１、３１２、各仮想計算機の命令プロセッサ待ち時間３３０、３３１を使用し、仮想計算機１３０、１３１のスケジューリングを行う。
【００２７】
より具体的に言えば、スケジューリング手順（ステップ４０４）では、タイムスライス値３１１、３１２に格納された値を１タイムスライスの長さとし、ＣＰＵタイマで時間を計り、そのタイムスライス分の時間ずつ仮想計算機１３０、１３１に命令プロセッサ１０１を割当てる。また、仮想計算機の命令プロセッサ待ち時間３３０、３３１に格納された値を、仮想計算機１３０、１３１が命令プロセッサ１０１に割当てられた際の処理待ち時間に設定し、仮想計算機毎に物理ＣＰＵ能力値で指定する命令プロセッサ性能となるように制御する。
【００２８】
本実施形態において、仮想計算機の管理、制御を行うハイパバイザの処理実行に割当てる命令プロセッサの性能を変更する場合、上記の命令プロセッサ性能変更の処理を利用して行う。
【００２９】
次に、本実施例によるスケジューリング法（図９）の効果を、従来例によるスケジューリング法（図８参照）と対比して説明する。
まず、図８に示すように、２台の仮想計算機で、仮想計算機１のサービス比を０．８、仮想計算機２のサービス比を０．２とし、タイムスライス値を単位時間８０４の１０分の１とした仮想計算機システムに従来のスケジューリング制御を行うと、図８に示すような割当てスケジュール８０３となる。
【００３０】
この従来例の場合、スケジュールの結果として、物理ＣＰＵ能力が一定の状態で、仮想計算機１と仮想計算機２のサービス比０．８：０．２に応じて、Ｌ１とＬ２の回数がタイムスライスされた状態で割り当てられる。これでは、例えば仮想計算機２の実行時には、キャッシュ１０２に対しても２割の時間帯しか割り当てられないので、キャッシュのヒット率は低下することは明らかである。
【００３１】
これに対して、本実施例では、図９に示すように、２台の仮想計算機で、仮想計算機１のサービス比を０．８、仮想計算機２のサービス比を０．２とし、タイムスライス値が単位時間９０４の２分の１となるような入出力装置を接続した仮想計算機システムに本実施形態のスケジューリング制御を行うと、図９に示す割当てスケジュール９０３となる。
【００３２】
本実施例によるスケジューリング法によれば、物理ＣＰＵ実能力値の範囲内で物理ＣＰＵ能力値を変動させることにより、仮想計算機１と仮想計算機２のサービス比０．８：０．２に応じて、Ｌ１とＬ２を均等にタイムスライスされた状態として割り当てられる。従って、Ｌ１とＬ２の物理ＣＰＵ能力値は変動するが、Ｌ１とＬ２に割り当てられる時間帯は同じとなる。このため、仮想計算機１及び仮想計算機２のいずれの実行時でも、キャッシュ１０２の使用時間は同じ時間だけ確保されるので、例えば仮想計算機２の実行時における従来のようなキャッシュのヒット率の低下は防止することができる。
【００３３】
以上のように、本実施形態によれば、単位時間当りの仮想計算機の命令プロセッサへの割当て時間を任意に設定でき、かつ各仮想計算機に交互にタイムスライスを割当てることができるため、仮想計算機への割込み処理の遅延を削減することができる。また、ある仮想計算機のサービス比を他の仮想計算機に比べて小さく設定しても、タイムスライスを仮想計算機ごとに設定できるため、キャッシュが有効に機能する時間をより長く確保することが可能となる。これにより従来のスケジューリング方式に比べて、仮想計算機の性能を向上することが可能である。
【図面の簡単な説明】
【００３４】
【図１】一実施形態による仮想計算機システムの構成を示す図。
【図２】一実施形態におけるサービス比管理テーブル１２１の構成例を示す図。
【図３】一実施形態におけるスケジューリング制御テーブル１２０の構成例を示す図。
【図４】一実施形態における仮想計算機システムの制御動作を示すフローチャート図。
【図５】図４の制御動作フローにおけるタイムスライス値決定手順（ステップ４０１）の内容を示すフローチャート図。
【図６】図４の制御動作フローにおける物理ＣＰＵ能力値決定手順（ステップ４０２）の内容を示すフローチャート図。
【図７】図４の制御動作フローにおける命令プロセッサ待ち時間決定手順(ステップ４０３)の内容を示すフローチャート図。
【図８】仮想計算機システムにおいて、従来のスケジューリング制御を行った場合の割当てスケジュールを示す図。
【図９】仮想計算機システムにおいて、本実施形態によるスケジューリング制御を行った場合の割当てスケジュールを示す図。
【符号の説明】
【００３５】
１００  物理計算機、        １０１  命令プロセッサ、      １０２  キャッシュ、
１０３  メモリ、            １０４  チャネル、          １０５  ＣＰＵタイマ、
１０６  サービスプロセッサ、              １０７  コンソールディスク、
１０８  入出力装置、                      １０９  コンソール装置、
１２０  スケジューリング制御テーブル、    １２１  サービス比管理テーブル、
１２２  物理ＣＰＵ基準能力値、            １２３  物理ＣＰＵ実能力値、
１２４  命令プロセッサ割込み間隔、
３１２  仮想計算機２のタイムスライス値、
３２０  仮想計算機１の物理ＣＰＵ能力値、
３２１  仮想計算機２の物理ＣＰＵ能力値、
３３０  仮想計算機１の命令プロセッサ待ち時間、
３３１  仮想計算機２の命令プロセッサ待ち時間、
８００  仮想計算機１、            ８０１  仮想計算機２、
【図１】
2006059052.tif 000003
【図２】
2006059052.tif 000004
【図３】
2006059052.tif 000005
【図４】
2006059052.tif 000006
【図５】
2006059052.tif 000007
【図６】
2006059052.tif 000008
【図７】
2006059052.tif 000009
【図８】
2006059052.tif 000010
【図９】
2006059052.tif 000011