JP6806065B2 - 仮想計算機システムの性能予測装置、性能予測方法およびコンピュータプログラム - Google Patents

仮想計算機システムの性能予測装置、性能予測方法およびコンピュータプログラム Download PDF

Info

Publication number
JP6806065B2
JP6806065B2 JP2017535229A JP2017535229A JP6806065B2 JP 6806065 B2 JP6806065 B2 JP 6806065B2 JP 2017535229 A JP2017535229 A JP 2017535229A JP 2017535229 A JP2017535229 A JP 2017535229A JP 6806065 B2 JP6806065 B2 JP 6806065B2
Authority
JP
Japan
Prior art keywords
cpu
virtual machine
tat
computer system
delay time
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
JP2017535229A
Other languages
English (en)
Other versions
JPWO2017029785A1 (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
Publication of JPWO2017029785A1 publication Critical patent/JPWO2017029785A1/ja
Application granted granted Critical
Publication of JP6806065B2 publication Critical patent/JP6806065B2/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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/3409Recording 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 performance assessment
    • G06F11/3419Recording 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 performance assessment by assessing time
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、仮想計算機システムの性能を予測する技術に関する。
コンピュータの仮想化技術により、1台の物理マシンに複数の仮想的なマシン、即ち仮想マシンを稼働することが可能になっている。各仮想マシンは、物理マシンのCPU(Central Processing Unit)、メモリ、入出力装置等のハードウェア資源を時分割に使用することにより論理的に個別の計算機として動作する。
一般的な仮想計算機システムでは、仮想マシンに割当てるCPU時間をスケジューリングパラメータに基づいて設定する。例えば、Linux(登録商標)カーネルに採用されているデッドラインスケジューラ(Deadline Scheduler)では、図13に示すように、ランタイム(Runtime:CPU割当時間)、周期(Period)、デッドライン(Deadline)の3つのパラメータを持ち、各周期のランタイムをデッドラインまでに保障するようにしている。
本発明に関連する技術として以下のようなものが提案されている。
まず、仮想計算機システムの性能を予測する手法がある。例えば、対象システムの入力値とその入力値に対応する出力値を基に統計処理や機械学習を利用して性能予測モデルを生成する。そして、その性能予測モデルに基づいて仮想計算機システムの性能を予測することが、本発明に関連する第1の関連技術として提案されている(例えば特許文献1参照)。具体的には、この第1の関連技術では、仮想計算機システムにおける最大スレッド数を増やした場合の、最大スレッド数に対するCPU使用率、スループット、TAT(Turn Around Time)を予測している。
また、仮想マシンに与えるCPU割当時間を自動的に調整する機能を有する仮想計算機が、本発明に関連する第2の関連技術として提案されている(例えば特許文献2参照)。具体的には、仮想計算機が、仮想マシンに割当てるCPU割当時間を複数設定し、設定したCPU割当時間を順次仮想マシンに割当て、外部記憶装置や入出力装置を用いた入出力に要する応答時間をCPU割当時間毎に測定する。仮想計算機は、測定した応答時間のCPU割当時間による変化を基に、仮想マシンの最適なCPU割当時間を特定して適用する。
特開2014−132419号公報 国際公開第2010/089808号
本発明に関連する第2の関連技術に示されるような、仮想マシンに割当てるCPU割当時間を自動調整する機能を有する仮想計算機システムは特殊である。一般的な仮想計算機システムでは、上述したようにスケジューリングパラメータに基づいて仮想マシンに割当てるCPU時間を決定している。このような仮想計算機システムでは、ユーザ自身がスケジューリングパラメータを決定する必要がある。しかしながら、スケジューリングパラメータと仮想マシンの性能との関係は単純でないため、ユーザがスケジューリングパラメータと仮想マシンの性能との関係を推定するのは困難である。
本発明の目的は、上述した課題、すなわち、スケジューリングパラメータと仮想マシンの性能との関係をユーザが推定することは困難である、という課題を解決するために、仮想計算機システムの性能を予測する技術を提供することにある。
本発明の一実施形態に係る仮想計算機システムの性能予測装置は、
CPU(Central Processing Unit)を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるCPU時間を決定するスケジューラとを有する仮想計算機システムの性能予測装置であって、
前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記CPUの割当てを要求してから前記CPUが前記仮想マシンに割当てられるまでのCPU割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのTAT(Turn Around Time)とを計測する計測部と、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記CPU割当遅延時間とを説明変数とし推定TATを目的変数とする推定式を生成する推定部と、
を有する。
本発明の他の実施形態に係る性能予測方法は、
CPU(Central Processing Unit)を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるCPU時間を決定するスケジューラとを有する仮想計算機システムの性能を予測する方法であって、
前記計測部が、前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記CPUの割当てを要求してから前記CPUが前記仮想マシンに割当てられるまでのCPU割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのTAT(Turn Around Time)とを計測し、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記CPU割当遅延時間とを説明変数とし推定TATを目的変数とする推定式を生成する。
本発明の他の実施形態に係るプログラム記憶媒体は、
CPU(Central Processing Unit)を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるCPU時間を決定するスケジューラとを有する仮想計算機システムに接続されたコンピュータに、
前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記CPUの割当てを要求してから前記CPUが前記仮想マシンに割当てられるまでのCPU割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのTAT(Turn Around Time)とを計測する処理と、
前記計測の結果に基づいて、前記スケジューリングパラメータと前記CPU割当遅延時間とを説明変数とし推定TATを目的変数とする推定式を生成する処理と、
を実行させるコンピュータプログラムを記憶している。
本発明は、スケジューリングパラメータと仮想マシンの性能との関係をユーザが容易に推定できるという効果を得ることができる。
本発明に係る第1実施形態の仮想計算機システムの構成を表すブロック図である。 第1実施形態における計測部の動作の一例を表すフローチャートである。 第1実施形態における推定部の動作の一例を表すフローチャートである。 本発明に係る第2実施形態においてスケジューラが仮想マシンに設定するスケジューリングパラメータを説明する図である。 第2実施形態において計測部が計測するCPU割当遅延時間を説明する図である。 第2実施形態における計測部が仮想マシンのCPU割当遅延時間とTATを計測する具体例を表す図である。 第2実施形態において計測部が使用するテーブルの一例を表す図である。 第2実施形態において計測部の計測結果の一例を表すテーブルの図である。 本発明に係る第3実施形態においてスケジューラが仮想マシンに設定するスケジューリングパラメータを説明する図である。 第3実施形態において計測部が計測するCPU割当遅延時間を説明する図である。 第3実施形態において計測部が使用するテーブルの一例を表す図である。 第3実施形態において計測部の計測結果の一例を表すテーブルの図である。 デッドラインスケジューラのスケジューリングパラメータを説明する図である。
次に本発明に係る実施の形態について図面を参照して説明する。
[第1実施形態]
図1を参照すると、本発明に係る第1実施形態の性能予測装置200は、仮想計算機システム100と利用者端末300とに接続されている。
仮想計算機システム100は、物理マシン110を有する。物理マシン110は、1あるいは複数のCPU111と、メモリやNIC(Network Interface Card)などの図示しないハードウェア資源とを備える。物理マシン110がソフトウェアであるハイパーバイザ120を実行することにより、物理マシン110に複数の仮想マシン130が実現する。仮想マシン130は、物理マシン110に構築された仮想的なマシンであり、この仮想マシン130により図示しないオペレーションシステム(ゲストOS(Operating System))および各種のアプリケーションプログラム等が動作する。
仮想計算機システム100の仮想マシン130の各々に与えるCPU割当時間(CPU時間)は、ハイパーバイザ120が備えるスケジューラ140によって制御される。スケジューラ140は、仮想マシン130毎のスケジューリングパラメータに従って、仮想マシン130毎のCPU割当時間を制御する。仮想マシン130のスケジューリングパラメータは、ユーザによって設定することができる。
性能予測装置200は、例えばパーソナルコンピュータ等の情報処理装置で構成される。性能予測装置200は、主な機能部として、計測部210と推定部220とを有している。
計測部210は、仮想計算機システム100のスケジューラ140に仮想マシン130のスケジューリングパラメータを設定する機能を有する。また、計測部210は、仮想計算機システム100を起動または停止する機能と、仮想マシン130のTATを計測する機能とをさらに有する。さらに、計測部210は、仮想マシン130がCPU111の割当てを要求してから実際にCPU111が割当てられるまでのCPU割当遅延時間を計測する機能を有する。計測部210は、これらの機能を使用して、仮想マシン130に与えるスケジューリングパラメータを予め与えられたサンプル値に設定して仮想計算機システム100を動作させ、仮想マシン130に係るCPU割当遅延時間とTATとを計測する。CPU割当遅延時間とは、CPUを要求してから実際にCPUが割当てられるまでの時間である。TATとは、処理を要求してから処理の結果が出力されるまでの時間である。計測部210は、その一連の処理を、スケジューリングパラメータの値を変更して複数回繰り返す。
推定部220は、計測部210の計測の結果に基づいて、仮想マシン130のスケジューリングパラメータとCPU割当遅延時間とを説明変数とし、仮想マシンのTATを目的変数とする推定式を生成する機能を有する。また推定部220は、TATの推定値を要求する問合せを利用者端末300から受信すると、生成した推定式に基づいてTATを算出し、算出結果を利用者端末300に返信する機能を有する。すなわち、利用者端末300からの問い合わせには、スケジューリングパラメータを指定する指定値の情報が含まれている。推定部220は、生成した推定式におけるスケジューリングパラメータにその指定値を代入し、推定式を算出することにより、スケジューリングパラメータがその指定値である場合のTATを推定する。推定部220は、その推定したTATを利用者端末300に返信する。
計測部210および推定部220は、例えば、性能予測装置200を構成するコンピュータとプログラムとで実現することができる。プログラムは、磁気ディスク装置や半導体メモリ等のコンピュータ可読記憶媒体に記憶され、コンピュータの立ち上げ時等にコンピュータに読み取られ、そのコンピュータにより実行される。これにより、そのコンピュータに計測部210および推定部220が実現される。
図2は計測部210の動作を示すフローチャート、図3は推定部220の動作を示すフローチャートである。以下、図1乃至図3を参照して、第1実施形態に係る性能予測装置200の動作を説明する。
性能予測装置200は、仮想計算機システム100の性能を予測する場合、最初に計測部210が動作する。先ず、計測部210は、仮想計算機システム100における複数の仮想マシンの中から計測対象とする1つの仮想マシン130を選択する(ステップS100)。例えば、計測部210は、利用者端末300から受信した仮想マシン130の選択情報に基づいて、計測対象の仮想マシン130を選択する。
次に、計測部210は、仮想計算機システム100のハイパーバイザ120が有するスケジューラ140に、仮想計算機システム100の全ての仮想マシン130のスケジューリングパラメータを設定する(ステップS101)。例えば、計測部210は、計測対象の仮想マシン130については、当該計測対象の仮想マシン130に設定(指定)されたスケジューリングパラメータの複数の候補の中から1つの値を選択し設定する。また計測部210は、計測対象の仮想マシン130以外の仮想マシン130については、例えば、その仮想マシンについて予め固定された値のスケジューリングパラメータを設定する。
次に計測部210は、仮想計算機システム100に指令を出して動作を開始させる(ステップS102)。次に、計測部210は、仮想計算機システム100の動作中に、計測対象の仮想マシン130のTATとCPU割当遅延時間とを計測する(ステップS103)。計測部210は、計測対象の仮想マシンのTATとCPU割当遅延時間とを各々1回だけ計測してもよいし、複数回計測してその平均値を計測結果としてもよい。
その後、計測部210は、計測対象の仮想マシン130について設定されたスケジューリングパラメータの全候補の値についての計測を終了したか否かを判定する(ステップS104)。次に、計測部210は、計測を終了していなければ、仮想計算機システム100の動作を停止させ、計測対象の仮想マシン130に関するスケジューリングパラメータの値を今までの値と異なる値に変更(更新)する(ステップS105)。計測対象の仮想マシン130以外の仮想マシン130については、ステップS101で設定した値と同じ値を使用する。そして、計測部210は、ステップS102の処理に戻って上記同様の動作を繰り返す。これにより、計測部210は、計測対象の仮想マシン130について、スケジューリングパラメータの候補の値毎のTATとCPU割当遅延時間を計測する。
計測部210は、計測対象の仮想マシン130に関し、スケジューリングパラメータの全候補の値についての計測を終了すると、計測結果を推定部220に出力する(ステップS106)。そして、計測部210は、計測処理を終了する。
続いて図3を参照すると、推定部220は、計測部210の計測の結果に基づいて、計測対象の仮想マシン130に関して、スケジューリングパラメータとCPU割当遅延時間とを説明変数とし、推定TATを目的変数とする推定式を生成する(ステップS110)。そして、推定部220は、利用者端末300からの問合せに待機する(ステップS111)。
利用者は、計測対象の仮想マシン130に関して、スケジューリングパラメータを或る値に設定した場合に得られるTATを知りたい場合、そのスケジューリングパラメータの値の情報を含む推定TATを要求する問合せを利用者端末300から推定部220へ送信する。推定部220は、利用者端末300(利用者)からの問合せを受け付け(ステップS112)、生成した推定式を用いて、TATを推定する(ステップS113)。そして、推定部220は、推定したTATを利用者端末300へ出力(返信)する(ステップS114)。
このように第1実施形態によれば、利用者はスケジューリングパラメータと仮想マシンの性能との関係を容易に把握することができる。その理由は、性能予測装置200の計測部210が、スケジューリングパラメータの候補値毎に計測対象の仮想マシン130のCPU割当遅延時間と仮想マシン130のTATとを計測し、計測結果を利用してTATを推定する推定式を生成するためである。
[第2実施形態]
第2実施形態では、第1実施形態の性能予測装置200をより具体化した実施形態について説明する。
図4は第2実施形態におけるスケジューラ140が仮想マシン130に設定するスケジューリングパラメータを説明する図である。この例のスケジューラ140は、仮想マシン130に、周期Peと割当時間Taとの2つのスケジューリングパラメータを設定する。そしてスケジューラ140は、設定されたスケジューリングパラメータに応じて、仮想マシン130にCPU時間を割当てる。具体的には、スケジューラ140は、仮想マシン130に、周期として指定した期間Peにおける、割当時間として指定した時間TaまでCPUを使用させる。
図5は第2実施形態における計測部210が計測するCPU割当遅延時間を説明する図である。図5に示すように、仮想マシン130に、周期Pe1において動作区間Tc1に相当するCPU時間が割当てられ、次の周期Pe2において動作区間Tc2に相当するCPU時間が割当てられるとする。この場合に、動作区間Tc1の終了時点から次の動作区間Tc2の開始時点までの時間を、第2実施形態ではCPU割当遅延時間Tdとする。
計測部210は、仮想計算機システム100が例えばレッド・ハット・エンタープライズ・リナックス(登録商標)を使用する場合、CPU割当遅延時間Tdを例えばリナックス(登録商標)のftraceという機能を使って計測することができる。具体的には、計測部210は、仮想マシン130に割当てられた動作区間Tc1の終了時刻と次の動作区間Tc2の開始時刻とをftraceにより検出し、両者の時間差を算出する。
図6は第2実施形態における計測部210が仮想マシン130のCPU割当遅延時間とTATを計測するシステムの構成の一例を示す図である。図6において、複数の仮想マシン130が稼働する仮想計算機システム100と対向機(情報処理装置)20とがNIC21,112およびネットワークを通じて接続されている。計測対象の仮想マシン130および対向機20では、複数のアプリケーションプログラムが動作している。ここで、仮想マシン130で動作するアプリケーションプログラム(APP)131の一つが、対向機20で動作するアプリケーションプログラム(APP)132の一つに対してリクエストを送信するとする。このリクエストを受信したアプリケーションプログラム132は、そのリクエストを処理し、処理結果をレスポンスとしてアプリケーションプログラム131に送信(返信)する。計測部210は、アプリケーションプログラム131がリクエストを送信してからレスポンスを受信するまでの時間を仮想マシン130のTATとして計測する。また、計測部210は、仮想マシン130のCPU割当遅延時間を計測する。
図7は第2実施形態における計測部210が使用するテーブルの一例を表す図である。このテーブル211は、割当時間とCPU割当遅延時間とTATとが関連付けられているエントリを複数有している。割当時間の欄には、事前に値が設定されている。具体的には、この例では、スケジューラ140に設定可能な割当時間が例えば0.01msから0.20msまでの場合、0.01msから0.20msまで例えば0.01ms刻みで割当時間が設定されている。また、CPU割当遅延時間とTATの欄は初期状態ではNULLである。
計測部210は、図6におけるシステム構成において、計測対象の仮想マシン130のTATとCPU割当遅延時間とを計測し、図7に表されるテーブル211のCPU割当遅延時間とTATの欄を計測結果で更新していく。
具体的には、計測部210は、図2のステップS101において、スケジューラ140の仮想マシン130の割当時間Taとしてテーブル211の1行目のエントリに記載された割当時間0.01msを設定する。計測対象の仮想マシン130の残りのスケジューリングパラメータである周期Peおよび計測対象の仮想マシン130以外の仮想マシン130のスケジューリングパラメータの値は所定値(固定値)とする。次に、計測部210は、仮想計算機システム100を動作させる(ステップS102)。そして、計測部210は、仮想マシン130のCPU割当遅延時間とTATとを複数回計測し、それら計測値の平均値を計測結果とし、これによりテーブル211の1行目のエントリのCPU割当遅延時間とTATの欄を更新する(ステップS103)。
次に計測部210は、図2のステップS105において、仮想計算機システム100が停止している状態で、スケジューラ140の仮想マシン130の割当時間Taとしてテーブル211の2行目のエントリに記載された割当時間0.02msを設定する。このとき、計測対象の仮想マシン130の残りのスケジューリングパラメータである周期Peおよび計測対象の仮想マシン130以外の仮想マシン130のスケジューリングパラメータの値は所定値のままとする。次に、計測部210は、仮想計算機システム100を再び動作させる(ステップS102)。そして、計測部210は、仮想マシン130のCPU割当遅延時間とTATとを複数回計測し、それら計測値の平均値を計測結果とし、これによりテーブル211の2行目のエントリのCPU割当遅延時間とTATの欄を更新する(ステップS103)。
計測部210は、上記のような動作を繰り返すことにより、図7のテーブル211の全エントリのCPU割当遅延時間とTATの欄を計測結果で更新する。そして、計測部210は、そのテーブル211を推定部220へ出力する(ステップS106)。
図8は計測部210から出力されたテーブル211の一例を表す。図7ではNULLになっていたCPU割当遅延時間とTATの欄が全て計測結果で更新されている。
式(1)は、推定部220が使用する推定式の一例である(以下、式(1)を推定式Sとも記す)。
式(1):
推定TAT=A×CPU割当遅延時間+B×スケジューリングパラメータ+C
推定式Sにおいて、A、B、Cは係数である。この例の推定式Sは、推定TATが、CPU割当遅延時間をA倍した値と、スケジューリングパラメータをB倍した値と、係数Cとを足し合わせて得られることを表している。ここで、推定式Sにおけるスケジューリングパラメータは、第2実施形態では割当時間Taである。残りのスケジューリングパラメータである周期Peは、第2実施形態では所定値(固定値)である。
推定部220は、計測部210から入力した図8のテーブルの計測結果に適合する推定式Sにおける係数A、B、Cの値を回帰分析等により決定し、推定式Sを完成させる。
式(2)は推定部220が完成させた推定式Sの一例である(以下、式(2)を推定式Rとも記す)。
式(2):
推定TAT=30×CPU割当遅延時間+0.5×スケジューリングパラメータ+0.4
この例では、推定式Sにおける係数A、B、Cが、それぞれ、係数A=30、係数B=0.5、係数C=0.4に決定している。なお、これら係数の具体的な値は説明の便宜上のものであり、あくまで一例である。
推定部220は、完成した推定式Rを使用して利用者端末300からの問合せ(推定TATの要求)に応答する。例えば、推定部220は、利用者が割当時間Taの値として0.01を指定した場合における推定TATを要求する問合せを利用者端末300から受信した場合、以下のように推定TATを算出する。
まず推定部220は、指定された割当時間Taの値0.01を使用した際のCPU割当遅延時間を図8のテーブル211から取得する。図8を参照すると、割当時間Taが0.01のときのCPU割当遅延時間はテーブル211の1行目のエントリから0.0040として得られる。次に、推定部220は、推定式Rの右辺のCPU割当遅延時間に0.0040、スケジューリングパラメータに0.01を代入し、推定TAT=0.525を算出する。
そして、推定部220は、算出した推定TATを利用者端末300へ問合せ結果として出力(送信)する。
なお、第2実施形態では、2つのスケジューリングパラメータ、即ち周期Peと割当時間Taのうち、周期Peを固定し、割当時間TaとCPU割当遅延時間とを推定式Sの説明変数としている。これに代えて第2実施形態の変形例として、割当時間Taを固定し、周期PeとCPU割当遅延時間とを推定式Sの説明変数としてもよい。あるいは、第2実施形態の他の変形例として、周期Peと割当時間TaとCPU割当遅延時間とを推定式Sの説明変数としてもよい。この場合、図7および図8のテーブル211のエントリには、更に周期の欄が追加される。また、計測部210は、周期と割当時間との値の組合せ毎に、CPU割当遅延時間とTATとを計測することになる。
また第2実施形態では、推定TATを算出する推定式S、Rは、CPU割当遅延時間とスケジューリングパラメータと定数との線形和の式であるが、推定TATを算出する推定式の形式は線形和に限定されず、二乗和等であってもよい。
[第3実施形態]
第3実施形態では、第1実施形態の性能予測装置200をより具体化した他の実施形態について説明する。
図9は第3実施形態におけるスケジューラ140が仮想マシン130に設定するスケジューリングパラメータを説明する図である。この例のスケジューラ140では、仮想マシン130に、周期Peと優先区間Tbとの2つのスケジューリングパラメータを設定する。そしてスケジューラ140は、設定されたスケジューリングパラメータに基づいて、仮想マシン130にCPU時間を割当てる。ここで、優先区間Tbは、前述したデッドラインスケジューラのデッドラインとランタイムを足し合わせた意味を持つ。即ち、デッドラインは周期Peのスタート位置を起点とし、この起点からの経過時間に基づいて定められた期限である。一方、優先区間Tbは、周期Peの区間内において、起点位置は制約されず、仮想マシン130が処理に必要と考えている時間分をCPU割当時間として仮想マシン130に割当てるという意味(ランタイムの意味)を持つ。つまり、優先区間Tbは、周期Peの区間内であれば起点位置が制約されないという点がデッドラインとの差である。さらに、優先区間TbにCPUが必ず割当たっているわけでないという点が、ランタイムとの差である。換言すれば、優先区間Tbは、1つのパラメータで2つの役割を果たしている。このため、優先区間Tbがパラメータとして設定される場合には、デッドラインの役割を持つパラメータおよびランタイムの役割を持つパラメータは設定されない。
図10は第3実施形態における計測部210が計測するCPU割当遅延時間を説明する図である。図10において、CPU割当待ち区間Twは、仮想マシン130がCPUの割当てを要求してから実際に割当てられるまでの時間である。また動作区間Tcは、実際に仮想マシンにCPUが割当てられて動作している時間である。そして、符号Td1〜Td8を付した矢印が表す時間が、第3実施形態における計測部210が計測するCPU割当遅延時間Tdである。また、符号Tbを付した矢印が表す時間は、優先区間である。
第3実施形態におけるCPU割当遅延時間Tdは、優先区間TbとCPU割当待ち区間Twが重なったタイミングから、実際に仮想マシン130にCPUが割当てられる動作区間Tcに入るまでの時間である。つまり、ここでのCPU割当遅延時間Tdとは、設計によって優先区間Tbとして定められていることにより、CPUを優先的に使用可能であるにも拘わらず、実際には、CPUの割当てを待っている待機時間である。CPU割当遅延時間Tdは、優先区間Tbの設定の違いとスリープ(sleep)の有無により、図10に表すパターン1からパターン8までの8パターンがある。換言すると、仮想マシン130から見たCPUの状態として以下の状態(1)−(4)があると考えられ、状態(2)に遷移した時点から状態(4)に遷移するまでの時間がCPU割当遅延時間Tdである。
状態(1):CPUが必要ない状態
状態(2):CPUが必要だけど割当てられてない状態、かつ、優先的にCPUが割当てられる状態
状態(3):CPUが必要だけど割当てられてない状態、かつ、優先的にCPUが割当てられない状態
状態(4):CPUがもらえている状態
計測部210は、仮想計算機システム100がレッド・ハット・エンタープライズ・リナックス(登録商標)を使用する場合、CPU割当遅延時間Tbを例えばリナックス(登録商標)のftraceという機能を使って計測することができる。
第3実施形態における計測部210が仮想マシン130のCPU割当遅延時間TdとTATを計測するシステムの構成は、図6を参照して説明したシステムと同じである。
図11は第3実施形態における計測部210が使用するテーブルの一例を表す図である。このテーブル212は、優先区間とCPU割当遅延時間とTATが関連付けられているエントリを複数有している。優先区間の欄には、事前に値が設定されている。具体的には、スケジューラ140に設定可能な優先区間が例えば0.01msから0.20msまでの場合、0.01msから0.20msまで例えば0.01ms刻みで優先区間が設定されている。また、CPU割当遅延時間とTATの欄は初期状態ではNULLである。
計測部210は、図6に表されるシステム構成において、計測対象の仮想マシン130のTATとCPU割当遅延時間Tdとを計測し、図11におけるテーブル211のCPU割当遅延時間とTATの欄を計測結果で更新する。
具体的には、計測部210は、図2のステップS101において、スケジューラ140の仮想マシン130の優先区間Tbにテーブル212の1行目のエントリに記載された優先区間0.01msを設定する。仮想マシン130の残りのスケジューリングパラメータである周期Peおよび仮想マシン130以外の仮想マシン130のスケジューリングパラメータの値は所定値(固定値)とする。次に、計測部210は、仮想計算機システム100を動作させ(ステップS102)、前述したように定義した仮想マシン130のCPU割当遅延時間TdとTATとを複数回計測し、計測結果の平均値でテーブル212の1行目のエントリのCPU割当遅延時間とTATの欄を更新する(ステップS103)。
次に計測部210は、図2のステップS105において、スケジューラ140の仮想マシン130の優先区間Tbにテーブル212の2行目のエントリに記載された優先区間0.02msを設定し、計測対象の仮想マシン130の残りのスケジューリングパラメータである周期Peおよび計測対象の仮想マシン130以外の仮想マシンのスケジューリングパラメータの値は所定値のままとする。次に、計測部210は、仮想計算機システム100を再び動作させて(ステップS102)、仮想マシン130のCPU割当遅延時間とTATとを複数回計測し、計測結果の平均値でテーブル212の2行目のエントリのCPU割当遅延時間とTATの欄を更新する(ステップS103)。
計測部210は、以上のような動作を繰り返すことにより、図11のテーブル212の全エントリのCPU割当遅延時間とTATの欄を計測結果で更新する。そして、計測部210は、そのテーブル212を推定部220へ出力する(ステップS106)。
図12は計測部210から出力されたテーブル212の一例を表す。図11ではNULLになっていたCPU割当遅延時間とTATの欄が全て計測結果で更新されている。
第3実施形態における推定部220は、第2実施形態と同様に推定式Sを使用する。ここで、推定式Sにおけるスケジューリングパラメータは、第3実施形態では優先区間Tbである。残りのスケジューリングパラメータである周期Peは、第3実施形態では所定値(固定値)である。
推定部220は、計測部210から入力した図12のテーブルの計測結果に適合する推定式Sにおける係数A、B、Cの値を回帰分析等により決定し、推定式Sを完成させる。推定部220が決定(生成)した推定式Rは、例えば、第2実施形態と同じであるとして、以下説明を続ける。
推定部220は、生成した推定式Rを使用して利用者端末300からの問合せ(推定TATの要求)に応答する。例えば、利用者が、優先区間Tbの値として0.01を指定した場合における推定TATを要求する問合せを利用者端末300から受信した場合、推定部220は、以下のように推定TATを算出する。
まず推定部220は、指定された優先区間Tbの値0.01を使用した際のCPU割当遅延時間を図12のテーブル212から取得する。図12を参照すると、優先区間Tbが0.01のときのCPU割当遅延時間はテーブル212の1行目のエントリから0.0040として得られる。次に、推定部220は、推定式Rの右辺のCPU割当遅延時間に0.0040、スケジューリングパラメータに0.01を代入し、推定TAT=0.525を算出する。
そして、推定部220は、算出した推定TATを利用者端末300へ問合せ結果として出力(送信)する。
第3実施形態では、2つのスケジューリングパラメータ、即ち周期Peと優先区間Tbのうち、周期Peを固定し、優先区間TbとCPU割当遅延時間Tbとを推定式Sの説明変数とした。しかし、第3実施形態の変形例として、優先区間Tbを固定し、周期PeとCPU割当遅延時間Tdとを推定式Sの説明変数としてもよい。あるいは、第3実施形態の他の変形例として、周期Peと優先区間TbとCPU割当遅延時間Tdとを推定式Sの説明変数としてもよい。この場合、図11および図12のテーブル212のエントリには、更に周期の欄が追加され、計測部210は、周期と優先区間との値の組合せ毎に、CPU割当遅延時間とTATとを計測することになる。
また第3実施形態では、推定TATを算出する推定式S、Rは、CPU割当遅延時間とスケジューリングパラメータと定数との線形和の式であるが、推定TATを算出する推定式の形式は線形和に限定されず、二乗和等であってもよい。
以上、本発明を幾つかの実施形態を挙げて説明したが、本発明は以上の実施形態にのみ限定されず、その他各種の付加変更が可能である。例えば、スケジューラ140としてLinux(登録商標)カーネルに採用されているデッドラインスケジューラを使用する場合がある。この場合、ランタイム(Runtime)、周期(Period)、デッドライン(Deadline)の3つのパラメータの何れか1つ、または2つ、または3つと、CPU割当遅延時間とを説明変数とし、推定TATを目的変数とする推定式を算出するようにしてもよい。
また、上記実施形態では、推定部220は、推定式Sを使用して、スケジューリングパラメータからTATを推定した。しかし、推定式Sを使用して、TATを推定するために必要なスケジューリングパラメータの値を決定するようにしてもよい。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2015年8月19日に出願された日本出願特願2015−161622を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、ユーザによって設定されたスケジューリングパラメータに基づいて仮想マシンにCPU時間を割当てるスケジューラを有する仮想計算機システムにおける仮想マシンのTATとスケジューリングパラメータとの関係を推定する場合に利用できる。例えば、本発明は、SLA(Service Level Agreement)に基づきTATの上限を保障するシステム等に利用できる。
100…仮想計算機システム
110…物理マシン
111…CPU
120…ハイパーバイザ
130…仮想マシン
140…スケジューラ
200…性能予測装置
210…計測部
211、212…テーブル
220…推定部
300…利用者端末

Claims (7)

  1. CPU(Central Processing Unit)を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるCPU時間を決定するスケジューラとを有する仮想計算機システムの性能予測装置であって、
    前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記CPUの割当てを要求してから前記CPUが前記仮想マシンに割当てられるまでのCPU割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのTAT(Turn Around Time)とを計測する計測手段と、
    前記計測の結果に基づいて、前記スケジューリングパラメータと前記CPU割当遅延時間とを説明変数とし推定TATを目的変数とする推定式を生成する推定手段と、
    を有する仮想計算機システムの性能予測装置。
  2. 前記スケジューリングパラメータは、周期的に前記仮想マシンに割当てるCPU時間を規定するパラメータである、
    請求項1に記載の仮想計算機システムの性能予測装置。
  3. 前記推定手段は、前記スケジューリングパラメータの値を指定した場合における推定TATを要求する問合せを利用者端末から受信した場合に、前記指定されたスケジューリングパラメータの値および前記生成した推定式に基づいて前記推定TATを算出し当該算出した推定TATを前記利用者端末に返信する、
    請求項1または2に記載の仮想計算機システムの性能予測装置。
  4. 前記推定手段は、前記計測手段の計測の結果に基づいて、前記スケジューリングパラメータの値と前記CPU割当遅延時間とが関連付けられているデータを生成し当該データを保持し、前記問合せを受信した場合には、前記指定されたスケジューリングパラメータの値に関連付けられている前記CPU割当遅延時間を前記データから取得し、該取得した前記CPU割当遅延時間と前記指定されたスケジューリングパラメータの値とを前記推定式に代入して前記推定TATを算出する、
    請求項3に記載の仮想計算機システムの性能予測装置。
  5. 前記推定手段は、
    前記推定式として、
    TAT=A×遅延時間+B×スケジューリングパラメータ+C
    ここで、A、B、Cは係数を使用し、
    前記係数A、B、Cを前記計測手段による計測結果に基づいて決定する、
    請求項1乃至4の何れかに記載の仮想計算機システムの性能予測装置。
  6. CPU(Central Processing Unit)を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるCPU時間を決定するスケジューラとを有する仮想計算機システムの性能を性能予測装置が予測する方法であって、
    前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記CPUの割当てを要求してから前記CPUが前記仮想マシンに割当てられるまでのCPU割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのTAT(Turn Around Time)とを前記性能予測装置が計測し、
    前記計測の結果に基づいて、前記スケジューリングパラメータと前記CPU割当遅延時間とを説明変数とし推定TATを目的変数とする推定式を前記性能予測装置が生成する、
    仮想計算機システムの性能予測方法。
  7. CPU(Central Processing Unit)を有する物理マシンを利用する仮想マシンと、スケジューリングパラメータに基づいて前記仮想マシンに割当てるCPU時間を決定するスケジューラとを有する仮想計算機システムに接続されたコンピュータに、
    前記スケジューリングパラメータにサンプル値を設定して前記仮想計算機システムを動作させ、前記仮想マシンが前記CPUの割当てを要求してから前記CPUが前記仮想マシンに割当てられるまでのCPU割当遅延時間と、処理が要求されてから処理結果が出力されるまでの前記仮想マシンのTAT(Turn Around Time)とを計測する処理と、
    前記計測の結果に基づいて、前記スケジューリングパラメータと前記CPU割当遅延時間とを説明変数とし推定TATを目的変数とする推定式を生成する処理と、
    を実行させるコンピュータプログラム。
JP2017535229A 2015-08-19 2016-08-05 仮想計算機システムの性能予測装置、性能予測方法およびコンピュータプログラム Active JP6806065B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015161622 2015-08-19
JP2015161622 2015-08-19
PCT/JP2016/003621 WO2017029785A1 (ja) 2015-08-19 2016-08-05 仮想計算機システムの性能予測装置、性能予測方法およびプログラム記憶媒体

Publications (2)

Publication Number Publication Date
JPWO2017029785A1 JPWO2017029785A1 (ja) 2018-07-05
JP6806065B2 true JP6806065B2 (ja) 2021-01-06

Family

ID=58051508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017535229A Active JP6806065B2 (ja) 2015-08-19 2016-08-05 仮想計算機システムの性能予測装置、性能予測方法およびコンピュータプログラム

Country Status (4)

Country Link
US (1) US10866830B2 (ja)
EP (1) EP3340058A4 (ja)
JP (1) JP6806065B2 (ja)
WO (1) WO2017029785A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11494214B2 (en) * 2019-03-28 2022-11-08 Amazon Technologies, Inc. Verified isolated run-time environments for enhanced security computations within compute instances
TWI756974B (zh) 2020-12-09 2022-03-01 財團法人工業技術研究院 機器學習系統及其資源配置方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006059052A (ja) 2004-08-19 2006-03-02 Hitachi Ltd 仮想計算機システム
JP5596343B2 (ja) * 2007-04-13 2014-09-24 日本電気株式会社 仮想計算機システムおよびその最適化方法
EP2395430B1 (en) * 2009-02-09 2017-07-12 Fujitsu Limited Virtual computer allocation method, allocation program, and information processing device having a virtual computer environment
US8850172B2 (en) * 2010-11-15 2014-09-30 Microsoft Corporation Analyzing performance of computing devices in usage scenarios
JP2014132419A (ja) 2013-01-07 2014-07-17 Nec Corp 仮想化システムの性能予測装置、性能予測方法およびコンピュータ・プログラム
JP2014153852A (ja) 2013-02-07 2014-08-25 Nec Corp 閾値超過率を管理する情報処理装置、閾値超過率管理方法、及びそのためのプログラム

Also Published As

Publication number Publication date
WO2017029785A1 (ja) 2017-02-23
US10866830B2 (en) 2020-12-15
EP3340058A1 (en) 2018-06-27
EP3340058A4 (en) 2018-08-08
US20180239638A1 (en) 2018-08-23
JPWO2017029785A1 (ja) 2018-07-05

Similar Documents

Publication Publication Date Title
US11106495B2 (en) Techniques to dynamically partition tasks
US9037717B2 (en) Virtual machine demand estimation
CN111176419B (zh) 估计在分布式计算机***的多个节点上运行的作业的功率性能的方法和装置
Chen et al. Cloudscope: Diagnosing and managing performance interference in multi-tenant clouds
KR101812583B1 (ko) 태스크 할당 장치, 태스크 할당 방법 및 컴퓨터로 읽을 수 있는 저장 매체
US20150089510A1 (en) Device, system, apparatus, method and program product for scheduling
JP2011258119A5 (ja)
Oprescu et al. Budget estimation and control for bag-of-tasks scheduling in clouds
US9244733B2 (en) Apparatus and method for scheduling kernel execution order
Stavrinides et al. Energy-aware scheduling of real-time workflow applications in clouds utilizing DVFS and approximate computations
JP7081513B2 (ja) ネットワーク性能保証システム及びネットワーク性能保証方法
Pérez et al. Estimating computational requirements in multi-threaded applications
JP2019179468A (ja) 制御装置、制御方法、及び制御プログラム
JP6806065B2 (ja) 仮想計算機システムの性能予測装置、性能予測方法およびコンピュータプログラム
EP2948841A1 (en) Shared resource contention
JP2018139064A (ja) 仮想計算機システムおよびそのリソース割当て方法
McLean et al. Mapping and scheduling automotive applications on ADAS platforms using metaheuristics
JP2012181578A (ja) 更新制御装置及びプログラム
JP2018112837A (ja) 仮想マシン管理装置、仮想マシン管理方法およびコンピュータプログラム
US11886901B2 (en) VM performance guaranteeing system and VM performance guaranteeing method
US20190250919A1 (en) Method for managing computation tasks on a functionally asymmetric multi-core processor
Bulej et al. Self-adaptive K8S cloud controller for time-sensitive applications
CN115129481B (zh) 一种计算资源分配方法、装置及电子设备
US20200004903A1 (en) Workflow Simulation Using Provenance Data Similarity and Sequence Alignment
Rumi et al. Optimization techniques within the hadoop eco-system: A survey

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200818

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201012

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201117

R150 Certificate of patent or registration of utility model

Ref document number: 6806065

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150