(57)【要約】  仮想マシンにＣＰＵ時間を割当てるスケジューラに設定するスケジューリングパラメータと仮想マシンの性能との関係を推定するために、性能予測装置は、計測部と推定部とを有する。計測部は、スケジューリングパラメータにサンプル値を設定して仮想計算機システムを動作させ、仮想マシンがＣＰＵの割当てを要求してからＣＰＵが仮想マシンに割当てられるまでのＣＰＵ割当遅延時間と仮想マシンのＴＡＴとを計測する。推定部は、計測の結果に基づいて、スケジューリングパラメータとＣＰＵ割当遅延時間とを説明変数とし、推定ＴＡＴを目的変数とする推定式を生成する。
2017029785.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ（Central Processing Unit）を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるＣＰＵ時間を決定するスケジューラとを有する仮想計算機システムの性能予測装置であって、
前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記ＣＰＵの割当てを要求してから前記ＣＰＵが前記仮想マシンに割当てられるまでのＣＰＵ割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのＴＡＴ（Turn Around Time）とを計測する計測手段と、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記ＣＰＵ割当遅延時間とを説明変数とし推定ＴＡＴを目的変数とする推定式を生成する推定手段と、
を有する仮想計算機システムの性能予測装置。
【請求項２】
前記スケジューリングパラメータは、周期的に前記仮想マシンに割当てるＣＰＵ時間を規定するパラメータである、
請求項１に記載の仮想計算機システムの性能予測装置。
【請求項３】
前記推定手段は、前記スケジューリングパラメータの値を指定した場合における推定ＴＡＴを要求する問合せを利用者端末から受信した場合に、前記指定されたスケジューリングパラメータの値および前記生成した推定式に基づいて前記推定ＴＡＴを算出し当該算出した推定ＴＡＴを前記利用者端末に返信する、
請求項１または２に記載の仮想計算機システムの性能予測装置。
【請求項４】
前記推定手段は、前記計測手段の計測の結果に基づいて、前記スケジューリングパラメータの値と前記ＣＰＵ割当遅延時間とが関連付けられているデータを生成し当該データを保持し、前記問合せを受信した場合には、前記指定されたスケジューリングパラメータの値に関連付けられている前記ＣＰＵ割当遅延時間を前記データから取得し、該取得した前記ＣＰＵ割当遅延時間と前記指定されたスケジューリングパラメータの値とを前記推定式に代入して前記推定ＴＡＴを算出する、
請求項３に記載の仮想計算機システムの性能予測装置。
【請求項５】
前記推定手段は、
前記推定式として、
ＴＡＴ＝Ａ×遅延時間＋Ｂ×スケジューリングパラメータ＋Ｃ
ここで、Ａ、Ｂ、Ｃは係数
を使用し、
前記係数Ａ、Ｂ、Ｃを前記計測手段による計測結果に基づいて決定する、
請求項１乃至４の何れかに記載の仮想計算機システムの性能予測装置。
【請求項６】
ＣＰＵ（Central Processing Unit）を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるＣＰＵ時間を決定するスケジューラとを有する仮想計算機システムの性能を予測する方法であって、前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記ＣＰＵの割当てを要求してから前記ＣＰＵが前記仮想マシンに割当てられるまでのＣＰＵ割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのＴＡＴ（Turn Around Time）とを計測し、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記ＣＰＵ割当遅延時間とを説明変数とし推定ＴＡＴを目的変数とする推定式を生成する、
仮想計算機システムの性能予測方法。
【請求項７】
ＣＰＵ（Central Processing Unit）を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるＣＰＵ時間を決定するスケジューラとを有する仮想計算機システムに接続されたコンピュータに、
前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記ＣＰＵの割当てを要求してから前記ＣＰＵが前記仮想マシンに割当てられるまでのＣＰＵ割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのＴＡＴ（Turn Around Time）とを計測する処理と、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記ＣＰＵ割当遅延時間とを説明変数とし推定ＴＡＴを目的変数とする推定式を生成する処理と、
を実行させるコンピュータプログラムを記憶しているプログラム記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機システムの性能を予測する技術に関する。
【背景技術】
【０００２】
コンピュータの仮想化技術により、１台の物理マシンに複数の仮想的なマシン、即ち仮想マシンを稼働することが可能になっている。各仮想マシンは、物理マシンのＣＰＵ（Central Processing Unit）、メモリ、入出力装置等のハードウェア資源を時分割に使用することにより論理的に個別の計算機として動作する。【０００３】
一般的な仮想計算機システムでは、仮想マシンに割当てるＣＰＵ時間をスケジューリングパラメータに基づいて設定する。例えば、Ｌｉｎｕｘ（登録商標）カーネルに採用されているデッドラインスケジューラ（Deadline Scheduler）では、図１３に示すように、ランタイム（Runtime：ＣＰＵ割当時間）、周期（Period）、デッドライン（Deadline）の３つのパラメータを持ち、各周期のランタイムをデッドラインまでに保障するようにしている。【０００４】
本発明に関連する技術として以下のようなものが提案されている。【０００５】
まず、仮想計算機システムの性能を予測する手法がある。例えば、対象システムの入力値とその入力値に対応する出力値を基に統計処理や機械学習を利用して性能予測モデルを生成する。そして、その性能予測モデルに基づいて仮想計算機システムの性能を予測することが、本発明に関連する第１の関連技術として提案されている（例えば特許文献１参照）。具体的には、この第１の関連技術では、仮想計算機システムにおける最大スレッド数を増やした場合の、最大スレッド数に対するＣＰＵ使用率、スループット、ＴＡＴ（Turn Around Time）を予測している。【０００６】
また、仮想マシンに与えるＣＰＵ割当時間を自動的に調整する機能を有する仮想計算機が、本発明に関連する第２の関連技術として提案されている（例えば特許文献２参照）。具体的には、仮想計算機が、仮想マシンに割当てるＣＰＵ割当時間を複数設定し、設定したＣＰＵ割当時間を順次仮想マシンに割当て、外部記憶装置や入出力装置を用いた入出力に要する応答時間をＣＰＵ割当時間毎に測定する。仮想計算機は、測定した応答時間のＣＰＵ割当時間による変化を基に、仮想マシンの最適なＣＰＵ割当時間を特定して適用する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−１３２４１９号公報
【特許文献２】国際公開第２０１０／０８９８０８号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明に関連する第２の関連技術に示されるような、仮想マシンに割当てるＣＰＵ割当時間を自動調整する機能を有する仮想計算機システムは特殊である。一般的な仮想計算機システムでは、上述したようにスケジューリングパラメータに基づいて仮想マシンに割当てるＣＰＵ時間を決定している。このような仮想計算機システムでは、ユーザ自身がスケジューリングパラメータを決定する必要がある。しかしながら、スケジューリングパラメータと仮想マシンの性能との関係は単純でないため、ユーザがスケジューリングパラメータと仮想マシンの性能との関係を推定するのは困難である。【０００９】
本発明の目的は、上述した課題、すなわち、スケジューリングパラメータと仮想マシンの性能との関係をユーザが推定することは困難である、という課題を解決するために、仮想計算機システムの性能を予測する技術を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一実施形態に係る仮想計算機システムの性能予測装置は、
ＣＰＵ（Central Processing Unit）を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるＣＰＵ時間を決定するスケジューラとを有する仮想計算機システムの性能予測装置であって、
前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記ＣＰＵの割当てを要求してから前記ＣＰＵが前記仮想マシンに割当てられるまでのＣＰＵ割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのＴＡＴ（Turn Around Time）とを計測する計測部と、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記ＣＰＵ割当遅延時間とを説明変数とし推定ＴＡＴを目的変数とする推定式を生成する推定部と、
を有する。【００１１】
本発明の他の実施形態に係る性能予測方法は、
ＣＰＵ（Central Processing Unit）を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるＣＰＵ時間を決定するスケジューラとを有する仮想計算機システムの性能を予測する方法であって、
前記計測部が、前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記ＣＰＵの割当てを要求してから前記ＣＰＵが前記仮想マシンに割当てられるまでのＣＰＵ割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのＴＡＴ（Turn Around Time）とを計測し、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記ＣＰＵ割当遅延時間とを説明変数とし推定ＴＡＴを目的変数とする推定式を生成する。【００１２】
本発明の他の実施形態に係るプログラム記憶媒体は、
ＣＰＵ（Central Processing Unit）を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるＣＰＵ時間を決定するスケジューラとを有する仮想計算機システムに接続されたコンピュータに、
前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記ＣＰＵの割当てを要求してから前記ＣＰＵが前記仮想マシンに割当てられるまでのＣＰＵ割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのＴＡＴ（Turn Around Time）とを計測する処理と、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記ＣＰＵ割当遅延時間とを説明変数とし推定ＴＡＴを目的変数とする推定式を生成する処理と、
を実行させるコンピュータプログラムを記憶している。
【発明の効果】
【００１３】
本発明は、スケジューリングパラメータと仮想マシンの性能との関係をユーザが容易に推定できるという効果を得ることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明に係る第１実施形態の仮想計算機システムの構成を表すブロック図である。
【図２】第１実施形態における計測部の動作の一例を表すフローチャートである。
【図３】第１実施形態における推定部の動作の一例を表すフローチャートである。
【図４】本発明に係る第２実施形態においてスケジューラが仮想マシンに設定するスケジューリングパラメータを説明する図である。
【図５】第２実施形態において計測部が計測するＣＰＵ割当遅延時間を説明する図である。
【図６】第２実施形態における計測部が仮想マシンのＣＰＵ割当遅延時間とＴＡＴを計測する具体例を表す図である。
【図７】第２実施形態において計測部が使用するテーブルの一例を表す図である。
【図８】第２実施形態において計測部の計測結果の一例を表すテーブルの図である。
【図９】本発明に係る第３実施形態においてスケジューラが仮想マシンに設定するスケジューリングパラメータを説明する図である。
【図１０】第３実施形態において計測部が計測するＣＰＵ割当遅延時間を説明する図である。
【図１１】第３実施形態において計測部が使用するテーブルの一例を表す図である。
【図１２】第３実施形態において計測部の計測結果の一例を表すテーブルの図である。
【図１３】デッドラインスケジューラのスケジューリングパラメータを説明する図である。
【発明を実施するための形態】
【００１５】
次に本発明に係る実施の形態について図面を参照して説明する。
[第１実施形態]
図１を参照すると、本発明に係る第１実施形態の性能予測装置２００は、仮想計算機システム１００と利用者端末３００とに接続されている。
【００１６】
仮想計算機システム１００は、物理マシン１１０を有する。物理マシン１１０は、１あるいは複数のＣＰＵ１１１と、メモリやＮＩＣ（Network Interface Card）などの図示しないハードウェア資源とを備える。物理マシン１１０がソフトウェアであるハイパーバイザ１２０を実行することにより、物理マシン１１０に複数の仮想マシン１３０が実現する。仮想マシン１３０は、物理マシン１１０に構築された仮想的なマシンであり、この仮想マシン１３０により図示しないオペレーションシステム（ゲストＯＳ（Operating System））および各種のアプリケーションプログラム等が動作する。
【００１７】
仮想計算機システム１００の仮想マシン１３０の各々に与えるＣＰＵ割当時間（ＣＰＵ時間）は、ハイパーバイザ１２０が備えるスケジューラ１４０によって制御される。スケジューラ１４０は、仮想マシン１３０毎のスケジューリングパラメータに従って、仮想マシン１３０毎のＣＰＵ割当時間を制御する。仮想マシン１３０のスケジューリングパラメータは、ユーザによって設定することができる。
【００１８】
性能予測装置２００は、例えばパーソナルコンピュータ等の情報処理装置で構成される。性能予測装置２００は、主な機能部として、計測部２１０と推定部２２０とを有している。
【００１９】
計測部２１０は、仮想計算機システム１００のスケジューラ１４０に仮想マシン１３０のスケジューリングパラメータを設定する機能を有する。また、計測部２１０は、仮想計算機システム１００を起動または停止する機能と、仮想マシン１３０のＴＡＴを計測する機能とをさらに有する。さらに、計測部２１０は、仮想マシン１３０がＣＰＵ１１１の割当てを要求してから実際にＣＰＵ１１１が割当てられるまでのＣＰＵ割当遅延時間を計測する機能を有する。計測部２１０は、これらの機能を使用して、仮想マシン１３０に与えるスケジューリングパラメータを予め与えられたサンプル値に設定して仮想計算機システム１００を動作させ、仮想マシン１３０に係るＣＰＵ割当遅延時間とＴＡＴとを計測する。ＣＰＵ割当遅延時間とは、CPUを要求してから実際にCPUが割当てられるまでの時間である。ＴＡＴとは、処理を要求してから処理の結果が出力されるまでの時間である。計測部２１０は、その一連の処理を、スケジューリングパラメータの値を変更して複数回繰り返す。
【００２０】
推定部２２０は、計測部２１０の計測の結果に基づいて、仮想マシン１３０のスケジューリングパラメータとＣＰＵ割当遅延時間とを説明変数とし、仮想マシンのＴＡＴを目的変数とする推定式を生成する機能を有する。また推定部２２０は、ＴＡＴの推定値を要求する問合せを利用者端末３００から受信すると、生成した推定式に基づいてＴＡＴを算出し、算出結果を利用者端末３００に返信する機能を有する。すなわち、利用者端末３００からの問い合わせには、スケジューリングパラメータを指定する指定値の情報が含まれている。推定部２２０は、生成した推定式におけるスケジューリングパラメータにその指定値を代入し、推定式を算出することにより、スケジューリングパラメータがその指定値である場合のＴＡＴを推定する。推定部２２０は、その推定したＴＡＴを利用者端末３００に返信する。
【００２１】
計測部２１０および推定部２２０は、例えば、性能予測装置２００を構成するコンピュータとプログラムとで実現することができる。プログラムは、磁気ディスク装置や半導体メモリ等のコンピュータ可読記憶媒体に記憶され、コンピュータの立ち上げ時等にコンピュータに読み取られ、そのコンピュータにより実行される。これにより、そのコンピュータに計測部２１０および推定部２２０が実現される。
【００２２】
図２は計測部２１０の動作を示すフローチャート、図３は推定部２２０の動作を示すフローチャートである。以下、図１乃至図３を参照して、第１実施形態に係る性能予測装置２００の動作を説明する。
【００２３】
性能予測装置２００は、仮想計算機システム１００の性能を予測する場合、最初に計測部２１０が動作する。先ず、計測部２１０は、仮想計算機システム１００における複数の仮想マシンの中から計測対象とする１つの仮想マシン１３０を選択する（ステップＳ１００）。例えば、計測部２１０は、利用者端末３００から受信した仮想マシン１３０の選択情報に基づいて、計測対象の仮想マシン１３０を選択する。
【００２４】
次に、計測部２１０は、仮想計算機システム１００のハイパーバイザ１２０が有するスケジューラ１４０に、仮想計算機システム１００の全ての仮想マシン１３０のスケジューリングパラメータを設定する（ステップＳ１０１）。例えば、計測部２１０は、計測対象の仮想マシン１３０については、当該計測対象の仮想マシン１３０に設定（指定）されたスケジューリングパラメータの複数の候補の中から１つの値を選択し設定する。また計測部２１０は、計測対象の仮想マシン１３０以外の仮想マシン１３０については、例えば、その仮想マシンについて予め固定された値のスケジューリングパラメータを設定する。
【００２５】
次に計測部２１０は、仮想計算機システム１００に指令を出して動作を開始させる（ステップＳ１０２）。次に、計測部２１０は、仮想計算機システム１００の動作中に、計測対象の仮想マシン１３０のＴＡＴとＣＰＵ割当遅延時間とを計測する（ステップＳ１０３）。計測部２１０は、計測対象の仮想マシンのＴＡＴとＣＰＵ割当遅延時間とを各々１回だけ計測してもよいし、複数回計測してその平均値を計測結果としてもよい。
【００２６】
その後、計測部２１０は、計測対象の仮想マシン１３０について設定されたスケジューリングパラメータの全候補の値についての計測を終了したか否かを判定する（ステップＳ１０４）。次に、計測部２１０は、計測を終了していなければ、仮想計算機システム１００の動作を停止させ、計測対象の仮想マシン１３０に関するスケジューリングパラメータの値を今までの値と異なる値に変更（更新）する（ステップＳ１０５）。計測対象の仮想マシン１３０以外の仮想マシン１３０については、ステップＳ１０１で設定した値と同じ値を使用する。そして、計測部２１０は、ステップＳ１０２の処理に戻って上記同様の動作を繰り返す。これにより、計測部２１０は、計測対象の仮想マシン１３０について、スケジューリングパラメータの候補の値毎のＴＡＴとＣＰＵ割当遅延時間を計測する。
【００２７】
計測部２１０は、計測対象の仮想マシン１３０に関し、スケジューリングパラメータの全候補の値についての計測を終了すると、計測結果を推定部２２０に出力する（ステップＳ１０６）。そして、計測部２１０は、計測処理を終了する。
【００２８】
続いて図３を参照すると、推定部２２０は、計測部２１０の計測の結果に基づいて、計測対象の仮想マシン１３０に関して、スケジューリングパラメータとＣＰＵ割当遅延時間とを説明変数とし、推定ＴＡＴを目的変数とする推定式を生成する（ステップＳ１１０）。そして、推定部２２０は、利用者端末３００からの問合せに待機する（ステップＳ１１１）。
【００２９】
利用者は、計測対象の仮想マシン１３０に関して、スケジューリングパラメータを或る値に設定した場合に得られるＴＡＴを知りたい場合、そのスケジューリングパラメータの値の情報を含む推定ＴＡＴを要求する問合せを利用者端末３００から推定部２２０へ送信する。推定部２２０は、利用者端末３００（利用者）からの問合せを受け付け（ステップＳ１１２）、生成した推定式を用いて、ＴＡＴを推定する（ステップＳ１１３）。そして、推定部２２０は、推定したＴＡＴを利用者端末３００へ出力（返信）する（ステップＳ１１４）。
【００３０】
このように第１実施形態によれば、利用者はスケジューリングパラメータと仮想マシンの性能との関係を容易に把握することができる。その理由は、性能予測装置２００の計測部２１０が、スケジューリングパラメータの候補値毎に計測対象の仮想マシン１３０のＣＰＵ割当遅延時間と仮想マシン１３０のＴＡＴとを計測し、計測結果を利用してＴＡＴを推定する推定式を生成するためである。
【００３１】
[第２実施形態]
第２実施形態では、第１実施形態の性能予測装置２００をより具体化した実施形態について説明する。
【００３２】
図４は第２実施形態におけるスケジューラ１４０が仮想マシン１３０に設定するスケジューリングパラメータを説明する図である。この例のスケジューラ１４０は、仮想マシン１３０に、周期Ｐｅと割当時間Ｔａとの２つのスケジューリングパラメータを設定する。そしてスケジューラ１４０は、設定されたスケジューリングパラメータに応じて、仮想マシン１３０にＣＰＵ時間を割当てる。具体的には、スケジューラ１４０は、仮想マシン１３０に、周期として指定した期間Ｐｅにおける、割当時間として指定した時間ＴａまでＣＰＵを使用させる。
【００３３】
図５は第２実施形態における計測部２１０が計測するＣＰＵ割当遅延時間を説明する図である。図５に示すように、仮想マシン１３０に、周期Ｐｅ１において動作区間Ｔｃ１に相当するＣＰＵ時間が割当てられ、次の周期Ｐｅ２において動作区間Ｔｃ２に相当するＣＰＵ時間が割当てられるとする。この場合に、動作区間Ｔｃ１の終了時点から次の動作区間Ｔｃ２の開始時点までの時間を、第２実施形態ではＣＰＵ割当遅延時間Ｔｄとする。
【００３４】
計測部２１０は、仮想計算機システム１００が例えばレッド・ハット・エンタープライズ・リナックス（登録商標）を使用する場合、ＣＰＵ割当遅延時間Ｔｄを例えばリナックス（登録商標）のftraceという機能を使って計測することができる。具体的には、計測部２１０は、仮想マシン１３０に割当てられた動作区間Ｔｃ１の終了時刻と次の動作区間Ｔｃ２の開始時刻とをftraceにより検出し、両者の時間差を算出する。
【００３５】
図６は第２実施形態における計測部２１０が仮想マシン１３０のＣＰＵ割当遅延時間とＴＡＴを計測するシステムの構成の一例を示す図である。図６において、複数の仮想マシン１３０が稼働する仮想計算機システム１００と対向機（情報処理装置）２０とがＮＩＣ２１，１１２およびネットワークを通じて接続されている。計測対象の仮想マシン１３０および対向機２０では、複数のアプリケーションプログラムが動作している。ここで、仮想マシン１３０で動作するアプリケーションプログラム（ＡＰＰ）１３１の一つが、対向機２０で動作するアプリケーションプログラム（ＡＰＰ）１３２の一つに対してリクエストを送信するとする。このリクエストを受信したアプリケーションプログラム１３２は、そのリクエストを処理し、処理結果をレスポンスとしてアプリケーションプログラム１３１に送信（返信）する。計測部２１０は、アプリケーションプログラム１３１がリクエストを送信してからレスポンスを受信するまでの時間を仮想マシン１３０のＴＡＴとして計測する。また、計測部２１０は、仮想マシン１３０のＣＰＵ割当遅延時間を計測する。
【００３６】
図７は第２実施形態における計測部２１０が使用するテーブルの一例を表す図である。このテーブル２１１は、割当時間とＣＰＵ割当遅延時間とＴＡＴとが関連付けられているエントリを複数有している。割当時間の欄には、事前に値が設定されている。具体的には、この例では、スケジューラ１４０に設定可能な割当時間が例えば０．０１ｍｓから０．２０ｍｓまでの場合、０．０１ｍｓから０．２０ｍｓまで例えば０．０１ｍｓ刻みで割当時間が設定されている。また、ＣＰＵ割当遅延時間とＴＡＴの欄は初期状態ではＮＵＬＬである。
【００３７】
計測部２１０は、図６におけるシステム構成において、計測対象の仮想マシン１３０のＴＡＴとＣＰＵ割当遅延時間とを計測し、図７に表されるテーブル２１１のＣＰＵ割当遅延時間とＴＡＴの欄を計測結果で更新していく。
【００３８】
具体的には、計測部２１０は、図２のステップＳ１０１において、スケジューラ１４０の仮想マシン１３０の割当時間Ｔａとしてテーブル２１１の１行目のエントリに記載された割当時間０．０１ｍｓを設定する。計測対象の仮想マシン１３０の残りのスケジューリングパラメータである周期Ｐｅおよび計測対象の仮想マシン１３０以外の仮想マシン１３０のスケジューリングパラメータの値は所定値（固定値）とする。次に、計測部２１０は、仮想計算機システム１００を動作させる（ステップＳ１０２）。そして、計測部２１０は、仮想マシン１３０のＣＰＵ割当遅延時間とＴＡＴとを複数回計測し、それら計測値の平均値を計測結果とし、これによりテーブル２１１の１行目のエントリのＣＰＵ割当遅延時間とＴＡＴの欄を更新する（ステップＳ１０３）。
【００３９】
次に計測部２１０は、図２のステップＳ１０５において、仮想計算機システム１００が停止している状態で、スケジューラ１４０の仮想マシン１３０の割当時間Ｔａとしてテーブル２１１の２行目のエントリに記載された割当時間０．０２ｍｓを設定する。このとき、計測対象の仮想マシン１３０の残りのスケジューリングパラメータである周期Ｐｅおよび計測対象の仮想マシン１３０以外の仮想マシン１３０のスケジューリングパラメータの値は所定値のままとする。次に、計測部２１０は、仮想計算機システム１００を再び動作させる（ステップＳ１０２）。そして、計測部２１０は、仮想マシン１３０のＣＰＵ割当遅延時間とＴＡＴとを複数回計測し、それら計測値の平均値を計測結果とし、これによりテーブル２１１の２行目のエントリのＣＰＵ割当遅延時間とＴＡＴの欄を更新する（ステップＳ１０３）。
【００４０】
計測部２１０は、上記のような動作を繰り返すことにより、図７のテーブル２１１の全エントリのＣＰＵ割当遅延時間とＴＡＴの欄を計測結果で更新する。そして、計測部２１０は、そのテーブル２１１を推定部２２０へ出力する（ステップＳ１０６）。
【００４１】
図８は計測部２１０から出力されたテーブル２１１の一例を表す。図７ではＮＵＬＬになっていたＣＰＵ割当遅延時間とＴＡＴの欄が全て計測結果で更新されている。
【００４２】
式（１）は、推定部２２０が使用する推定式の一例である（以下、式（１）を推定式Ｓとも記す）。
式（１）：
推定ＴＡＴ＝Ａ×ＣＰＵ割当遅延時間＋Ｂ×スケジューリングパラメータ＋Ｃ 
推定式Ｓにおいて、Ａ、Ｂ、Ｃは係数である。この例の推定式Ｓは、推定ＴＡＴが、ＣＰＵ割当遅延時間をＡ倍した値と、スケジューリングパラメータをＢ倍した値と、係数Ｃとを足し合わせて得られることを表している。ここで、推定式Ｓにおけるスケジューリングパラメータは、第２実施形態では割当時間Ｔａである。残りのスケジューリングパラメータである周期Ｐｅは、第２実施形態では所定値（固定値）である。
【００４３】
推定部２２０は、計測部２１０から入力した図８のテーブルの計測結果に適合する推定式Ｓにおける係数Ａ、Ｂ、Ｃの値を回帰分析等により決定し、推定式Ｓを完成させる。
【００４４】
式（２）は推定部２２０が完成させた推定式Ｓの一例である（以下、式（２）を推定式Ｒとも記す）。
式（２）：
推定ＴＡＴ＝３０×ＣＰＵ割当遅延時間＋０．５×スケジューリングパラメータ＋０．４ 
この例では、推定式Ｓにおける係数Ａ、Ｂ、Ｃが、それぞれ、係数Ａ＝３０、係数Ｂ＝０．５、係数Ｃ＝０．４に決定している。なお、これら係数の具体的な値は説明の便宜上のものであり、あくまで一例である。
【００４５】
推定部２２０は、完成した推定式Ｒを使用して利用者端末３００からの問合せ（推定ＴＡＴの要求）に応答する。例えば、推定部２２０は、利用者が割当時間Ｔａの値として０．０１を指定した場合における推定ＴＡＴを要求する問合せを利用者端末３００から受信した場合、以下のように推定ＴＡＴを算出する。
【００４６】
まず推定部２２０は、指定された割当時間Ｔａの値０．０１を使用した際のＣＰＵ割当遅延時間を図８のテーブル２１１から取得する。図８を参照すると、割当時間Ｔａが０．０１のときのＣＰＵ割当遅延時間はテーブル２１１の１行目のエントリから０．００４０として得られる。次に、推定部２２０は、推定式Ｒの右辺のＣＰＵ割当遅延時間に０．００４０、スケジューリングパラメータに０．０１を代入し、推定ＴＡＴ＝０．５２５を算出する。
【００４７】
そして、推定部２２０は、算出した推定ＴＡＴを利用者端末３００へ問合せ結果として出力（送信）する。
【００４８】
なお、第２実施形態では、２つのスケジューリングパラメータ、即ち周期Ｐｅと割当時間Ｔａのうち、周期Ｐｅを固定し、割当時間ＴａとＣＰＵ割当遅延時間とを推定式Ｓの説明変数としている。これに代えて第２実施形態の変形例として、割当時間Ｔａを固定し、周期ＰｅとＣＰＵ割当遅延時間とを推定式Ｓの説明変数としてもよい。あるいは、第２実施形態の他の変形例として、周期Ｐｅと割当時間ＴａとＣＰＵ割当遅延時間とを推定式Ｓの説明変数としてもよい。この場合、図７および図８のテーブル２１１のエントリには、更に周期の欄が追加される。また、計測部２１０は、周期と割当時間との値の組合せ毎に、ＣＰＵ割当遅延時間とＴＡＴとを計測することになる。
【００４９】
また第２実施形態では、推定ＴＡＴを算出する推定式Ｓ、Ｒは、ＣＰＵ割当遅延時間とスケジューリングパラメータと定数との線形和の式であるが、推定ＴＡＴを算出する推定式の形式は線形和に限定されず、二乗和等であってもよい。
【００５０】
[第３実施形態]
第３実施形態では、第１実施形態の性能予測装置２００をより具体化した他の実施形態について説明する。
【００５１】
図９は第３実施形態におけるスケジューラ１４０が仮想マシン１３０に設定するスケジューリングパラメータを説明する図である。この例のスケジューラ１４０では、仮想マシン１３０に、周期Ｐｅと優先区間Ｔｂとの２つのスケジューリングパラメータを設定する。そしてスケジューラ１４０は、設定されたスケジューリングパラメータに基づいて、仮想マシン１３０にＣＰＵ時間を割当てる。ここで、優先区間Ｔｂは、前述したデッドラインスケジューラのデッドラインとランタイムを足し合わせた意味を持つ。即ち、デッドラインは周期Ｐｅのスタート位置を起点とし、この起点からの経過時間に基づいて定められた期限である。一方、優先区間Ｔｂは、周期Ｐｅの区間内において、起点位置は制約されず、仮想マシン１３０が処理に必要と考えている時間分をＣＰＵ割当時間として仮想マシン１３０に割当てるという意味（ランタイムの意味）を持つ。つまり、優先区間Ｔｂは、周期Ｐｅの区間内であれば起点位置が制約されないという点がデッドラインとの差である。さらに、優先区間ＴｂにＣＰＵが必ず割当たっているわけでないという点が、ランタイムとの差である。換言すれば、優先区間Ｔｂは、１つのパラメータで２つの役割を果たしている。このため、優先区間Ｔｂがパラメータとして設定される場合には、デッドラインの役割を持つパラメータおよびランタイムの役割を持つパラメータは設定されない。
【００５２】
図１０は第３実施形態における計測部２１０が計測するＣＰＵ割当遅延時間を説明する図である。図１０において、ＣＰＵ割当待ち区間Ｔｗは、仮想マシン１３０がＣＰＵの割当てを要求してから実際に割当てられるまでの時間である。また動作区間Ｔｃは、実際に仮想マシンにＣＰＵが割当てられて動作している時間である。そして、符号Ｔｄ１〜Ｔｄ８を付した矢印が表す時間が、第３実施形態における計測部２１０が計測するＣＰＵ割当遅延時間Ｔｄである。また、符号Ｔｂを付した矢印が表す時間は、優先区間である。
【００５３】
第３実施形態におけるＣＰＵ割当遅延時間Ｔｄは、優先区間ＴｂとＣＰＵ割当待ち区間Ｔｗが重なったタイミングから、実際に仮想マシン１３０にＣＰＵが割当てられる動作区間Ｔｃに入るまでの時間である。つまり、ここでのＣＰＵ割当遅延時間Ｔｄとは、設計によって優先区間Ｔｂとして定められていることにより、ＣＰＵを優先的に使用可能であるにも拘わらず、実際には、ＣＰＵの割当てを待っている待機時間である。ＣＰＵ割当遅延時間Ｔｄは、優先区間Ｔｂの設定の違いとスリープ（sleep）の有無により、図１０に表すパターン１からパターン８までの８パターンがある。換言すると、仮想マシン１３０から見たＣＰＵの状態として以下の状態（１）−（４）があると考えられ、状態（２）に遷移した時点から状態（４）に遷移するまでの時間がＣＰＵ割当遅延時間Ｔｄである。
状態（１）：ＣＰＵが必要ない状態
状態（２）：ＣＰＵが必要だけど割当てられてない状態、かつ、優先的にＣＰＵが割当てられる状態
状態（３）：ＣＰＵが必要だけど割当てられてない状態、かつ、優先的にＣＰＵが割当てられない状態
状態（４）：ＣＰＵがもらえている状態
【００５４】
計測部２１０は、仮想計算機システム１００がレッド・ハット・エンタープライズ・リナックス（登録商標）を使用する場合、ＣＰＵ割当遅延時間Ｔｂを例えばリナックス（登録商標）のftraceという機能を使って計測することができる。
【００５５】
第３実施形態における計測部２１０が仮想マシン１３０のＣＰＵ割当遅延時間ＴｄとＴＡＴを計測するシステムの構成は、図６を参照して説明したシステムと同じである。
【００５６】
図１１は第３実施形態における計測部２１０が使用するテーブルの一例を表す図である。このテーブル２１２は、優先区間とＣＰＵ割当遅延時間とＴＡＴが関連付けられているエントリを複数有している。優先区間の欄には、事前に値が設定されている。具体的には、スケジューラ１４０に設定可能な優先区間が例えば０．０１ｍｓから０．２０ｍｓまでの場合、０．０１ｍｓから０．２０ｍｓまで例えば０．０１ｍｓ刻みで優先区間が設定されている。また、ＣＰＵ割当遅延時間とＴＡＴの欄は初期状態ではＮＵＬＬである。
【００５７】
計測部２１０は、図６に表されるシステム構成において、計測対象の仮想マシン１３０のＴＡＴとＣＰＵ割当遅延時間Ｔｄとを計測し、図１１におけるテーブル２１１のＣＰＵ割当遅延時間とＴＡＴの欄を計測結果で更新する。
【００５８】
具体的には、計測部２１０は、図２のステップＳ１０１において、スケジューラ１４０の仮想マシン１３０の優先区間Ｔｂにテーブル２１２の１行目のエントリに記載された優先区間０．０１ｍｓを設定する。仮想マシン１３０の残りのスケジューリングパラメータである周期Ｐｅおよび仮想マシン１３０以外の仮想マシン１３０のスケジューリングパラメータの値は所定値（固定値）とする。次に、計測部２１０は、仮想計算機システム１００を動作させ（ステップＳ１０２）、前述したように定義した仮想マシン１３０のＣＰＵ割当遅延時間ＴｄとＴＡＴとを複数回計測し、計測結果の平均値でテーブル２１２の１行目のエントリのＣＰＵ割当遅延時間とＴＡＴの欄を更新する（ステップＳ１０３）。
【００５９】
次に計測部２１０は、図２のステップＳ１０５において、スケジューラ１４０の仮想マシン１３０の優先区間Ｔｂにテーブル２１２の２行目のエントリに記載された優先区間０．０２ｍｓを設定し、計測対象の仮想マシン１３０の残りのスケジューリングパラメータである周期Ｐｅおよび計測対象の仮想マシン１３０以外の仮想マシンのスケジューリングパラメータの値は所定値のままとする。次に、計測部２１０は、仮想計算機システム１００を再び動作させて（ステップＳ１０２）、仮想マシン１３０のＣＰＵ割当遅延時間とＴＡＴとを複数回計測し、計測結果の平均値でテーブル２１２の２行目のエントリのＣＰＵ割当遅延時間とＴＡＴの欄を更新する（ステップＳ１０３）。
【００６０】
計測部２１０は、以上のような動作を繰り返すことにより、図１１のテーブル２１２の全エントリのＣＰＵ割当遅延時間とＴＡＴの欄を計測結果で更新する。そして、計測部２１０は、そのテーブル２１２を推定部２２０へ出力する（ステップＳ１０６）。
【００６１】
図１２は計測部２１０から出力されたテーブル２１２の一例を表す。図１１ではＮＵＬＬになっていたＣＰＵ割当遅延時間とＴＡＴの欄が全て計測結果で更新されている。
【００６２】
第３実施形態における推定部２２０は、第２実施形態と同様に推定式Ｓを使用する。ここで、推定式Ｓにおけるスケジューリングパラメータは、第３実施形態では優先区間Ｔｂである。残りのスケジューリングパラメータである周期Ｐｅは、第３実施形態では所定値（固定値）である。
【００６３】
推定部２２０は、計測部２１０から入力した図１２のテーブルの計測結果に適合する推定式Ｓにおける係数Ａ、Ｂ、Ｃの値を回帰分析等により決定し、推定式Ｓを完成させる。推定部２２０が決定（生成）した推定式Ｒは、例えば、第２実施形態と同じであるとして、以下説明を続ける。
【００６４】
推定部２２０は、生成した推定式Ｒを使用して利用者端末３００からの問合せ（推定ＴＡＴの要求）に応答する。例えば、利用者が、優先区間Ｔｂの値として０．０１を指定した場合における推定ＴＡＴを要求する問合せを利用者端末３００から受信した場合、推定部２２０は、以下のように推定ＴＡＴを算出する。
【００６５】
まず推定部２２０は、指定された優先区間Ｔｂの値０．０１を使用した際のＣＰＵ割当遅延時間を図１２のテーブル２１２から取得する。図１２を参照すると、優先区間Ｔｂが０．０１のときのＣＰＵ割当遅延時間はテーブル２１２の１行目のエントリから０．００４０として得られる。次に、推定部２２０は、推定式Ｒの右辺のＣＰＵ割当遅延時間に０．００４０、スケジューリングパラメータに０．０１を代入し、推定ＴＡＴ＝０．５２５を算出する。
【００６６】
そして、推定部２２０は、算出した推定ＴＡＴを利用者端末３００へ問合せ結果として出力（送信）する。
【００６７】
第３実施形態では、２つのスケジューリングパラメータ、即ち周期Ｐｅと優先区間Ｔｂのうち、周期Ｐｅを固定し、優先区間ＴｂとＣＰＵ割当遅延時間Ｔｂとを推定式Ｓの説明変数とした。しかし、第３実施形態の変形例として、優先区間Ｔｂを固定し、周期ＰｅとＣＰＵ割当遅延時間Ｔｄとを推定式Ｓの説明変数としてもよい。あるいは、第３実施形態の他の変形例として、周期Ｐｅと優先区間ＴｂとＣＰＵ割当遅延時間Ｔｄとを推定式Ｓの説明変数としてもよい。この場合、図１１および図１２のテーブル２１２のエントリには、更に周期の欄が追加され、計測部２１０は、周期と優先区間との値の組合せ毎に、ＣＰＵ割当遅延時間とＴＡＴとを計測することになる。
【００６８】
また第３実施形態では、推定ＴＡＴを算出する推定式Ｓ、Ｒは、ＣＰＵ割当遅延時間とスケジューリングパラメータと定数との線形和の式であるが、推定ＴＡＴを算出する推定式の形式は線形和に限定されず、二乗和等であってもよい。
【００６９】
以上、本発明を幾つかの実施形態を挙げて説明したが、本発明は以上の実施形態にのみ限定されず、その他各種の付加変更が可能である。例えば、スケジューラ１４０としてＬｉｎｕｘ（登録商標）カーネルに採用されているデッドラインスケジューラを使用する場合がある。この場合、ランタイム（Ｒｕｎｔｉｍｅ）、周期（Ｐｅｒｉｏｄ）、デッドライン（Ｄｅａｄｌｉｎｅ）の３つのパラメータの何れか１つ、または２つ、または３つと、ＣＰＵ割当遅延時間とを説明変数とし、推定ＴＡＴを目的変数とする推定式を算出するようにしてもよい。
【００７０】
また、上記実施形態では、推定部２２０は、推定式Ｓを使用して、スケジューリングパラメータからＴＡＴを推定した。しかし、推定式Ｓを使用して、ＴＡＴを推定するために必要なスケジューリングパラメータの値を決定するようにしてもよい。
【００７１】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【００７２】
この出願は、２０１５年８月１９日に出願された日本出願特願２０１５−１６１６２２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００７３】
本発明は、ユーザによって設定されたスケジューリングパラメータに基づいて仮想マシンにＣＰＵ時間を割当てるスケジューラを有する仮想計算機システムにおける仮想マシンのＴＡＴとスケジューリングパラメータとの関係を推定する場合に利用できる。例えば、本発明は、ＳＬＡ（Service Level Agreement）に基づきＴＡＴの上限を保障するシステム等に利用できる。
【符号の説明】
【００７４】
１００…仮想計算機システム
１１０…物理マシン
１１１…ＣＰＵ
１２０…ハイパーバイザ
１３０…仮想マシン
１４０…スケジューラ
２００…性能予測装置
２１０…計測部
２１１、２１２…テーブル
２２０…推定部
３００…利用者端末
【図１】
2017029785.tif 000003
【図２】
2017029785.tif 000004
【図３】
2017029785.tif 000005
【図４】
2017029785.tif 000006
【図５】
2017029785.tif 000007
【図６】
2017029785.tif 000008
【図７】
2017029785.tif 000009
【図８】
2017029785.tif 000010
【図９】
2017029785.tif 000011
【図１０】
2017029785.tif 000012
【図１１】
2017029785.tif 000013
【図１２】
2017029785.tif 000014
【図１３】
2017029785.tif 000015
【手続補正書】
【提出日】平成30年2月7日(2018.2.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＣＰＵ（Central Processing Unit）を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるＣＰＵ時間を決定するスケジューラとを有する仮想計算機システムの性能予測装置であって、
前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記ＣＰＵの割当てを要求してから前記ＣＰＵが前記仮想マシンに割当てられるまでのＣＰＵ割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのＴＡＴ（Turn Around Time）とを計測する計測手段と、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記ＣＰＵ割当遅延時間とを説明変数とし推定ＴＡＴを目的変数とする推定式を生成する推定手段と、
を有する仮想計算機システムの性能予測装置。
【請求項２】
前記スケジューリングパラメータは、周期的に前記仮想マシンに割当てるＣＰＵ時間を規定するパラメータである、
請求項１に記載の仮想計算機システムの性能予測装置。
【請求項３】
前記推定手段は、前記スケジューリングパラメータの値を指定した場合における推定ＴＡＴを要求する問合せを利用者端末から受信した場合に、前記指定されたスケジューリングパラメータの値および前記生成した推定式に基づいて前記推定ＴＡＴを算出し当該算出した推定ＴＡＴを前記利用者端末に返信する、
請求項１または２に記載の仮想計算機システムの性能予測装置。
【請求項４】
前記推定手段は、前記計測手段の計測の結果に基づいて、前記スケジューリングパラメータの値と前記ＣＰＵ割当遅延時間とが関連付けられているデータを生成し当該データを保持し、前記問合せを受信した場合には、前記指定されたスケジューリングパラメータの値に関連付けられている前記ＣＰＵ割当遅延時間を前記データから取得し、該取得した前記ＣＰＵ割当遅延時間と前記指定されたスケジューリングパラメータの値とを前記推定式に代入して前記推定ＴＡＴを算出する、
請求項３に記載の仮想計算機システムの性能予測装置。
【請求項５】
前記推定手段は、
前記推定式として、
ＴＡＴ＝Ａ×遅延時間＋Ｂ×スケジューリングパラメータ＋Ｃ
ここで、Ａ、Ｂ、Ｃは係数を使用し、
前記係数Ａ、Ｂ、Ｃを前記計測手段による計測結果に基づいて決定する、
請求項１乃至４の何れかに記載の仮想計算機システムの性能予測装置。
【請求項６】
ＣＰＵ（Central Processing Unit）を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるＣＰＵ時間を決定するスケジューラとを有する仮想計算機システムの性能を予測する方法であって、前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記ＣＰＵの割当てを要求してから前記ＣＰＵが前記仮想マシンに割当てられるまでのＣＰＵ割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのＴＡＴ（Turn Around Time）とを計測し、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記ＣＰＵ割当遅延時間とを説明変数とし推定ＴＡＴを目的変数とする推定式を生成する、
仮想計算機システムの性能予測方法。
【請求項７】
ＣＰＵ（Central Processing Unit）を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるＣＰＵ時間を決定するスケジューラとを有する仮想計算機システムに接続されたコンピュータに、
前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記ＣＰＵの割当てを要求してから前記ＣＰＵが前記仮想マシンに割当てられるまでのＣＰＵ割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのＴＡＴ（Turn Around Time）とを計測する処理と、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記ＣＰＵ割当遅延時間とを説明変数とし推定ＴＡＴを目的変数とする推定式を生成する処理と、
を実行させるコンピュータプログラム。
【国際調査報告】
2017029785.tif 000016
2017029785.tif 000017