以下に、図面を参照して、本発明にかかる制御装置、制御方法、および制御プログラムの実施の形態を詳細に説明する。
(実施の形態にかかる制御方法の一実施例)
図1は、実施の形態にかかる制御方法の一実施例を示す説明図である。制御装置100は、情報処理装置を管理するコンピュータである。情報処理装置は、複数の計算資源を有するコンピュータである。情報処理装置は、例えば、データセンターにあるサーバである。計算資源は、例えば、サーバのCPUリソース等である。
データセンターを利用させるサービスでは、サービスの提供者とサービスの利用者との間で取り決められたSLAを満たすようにして、サービスの利用者が望んでいるユーザビリティを確保することが求められる傾向がある。例えば、データセンターにあるサーバによって実行され、利用者によって利用されるVMに、利用者が望んでいるVMの性能を確保することができるCPUリソースを割り当てることにより、SLAを満たすようにすることが考えられる。
一方で、データセンターの消費電力を低減することも求められる傾向がある。例えば、データセンターにあるサーバのうち、起動中のサーバの数を少なくすることにより、消費電力を低減することが考えられる。このように、データセンターを利用させるサービスでは、SLAを満たしつつ、データセンターの消費電力を低減することが好ましい。
しかしながら、SLAを満たしつつデータセンターの消費電力を低減することは困難である。例えば、起動中のサーバの数を少なくしていると、VMのCPU使用率が時間経過にともなって変動したことに応じて、VMに割り当てたCPUリソースが不足してSLAを満たさなくなる期間が発生してしまう可能性が大きくなる。
これに対し、例えば、VMのCPU使用率の変動に備えて、いくつかのサーバをホットスタンバイ状態で起動させておくことにより、SLAを満たさない期間が発生することを抑制する場合が考えられる。しかしながら、この場合、ホットスタンバイ状態のサーバには消費電力がかかってしまうため、データセンターの消費電力を効率よく低減することができない。
さらに、例えば、VMのCPU使用率の変動を予測し、予測した結果に応じてVMに割り当てるCPUリソースを制御することにより、SLAを満たさない期間が発生することを抑制しつつ、データセンターの消費電力を低減する場合も考えられる。しかしながら、この場合であっても、VMのCPU使用率の変動を予測する際に時間がかかり、VMのCPU使用率の変動のタイミングまでに、VMに割り当てるCPUリソースの制御が間に合わなければ、SLAを満たさない期間が発生してしまう可能性がある。
そこで、本実施の形態では、JIT(Just−In−Time)モデリングによってデータセンターの計算資源についての負荷を予測することにより、SLAを満たしつつデータセンターの消費電力を効率よく低減することができる制御方法について説明する。さらに、本実施の形態によれば、複数のメトリック(metric)のうち、JITモデリングに使用するメトリックを選択することにより、JITモデリングにかかる時間を低減し、SLAを満たさない期間を発生しづらくすることができる。
(1−1)制御装置100は、情報処理装置が実行するホストOS(Operating System)から入力した運用データに基づき選定された複数の基準データを、記憶部110に記憶する。運用データは、性能値に関する時系列データである。運用データは、例えば、情報処理装置が実行するホストOS上のパフォーマンスモニタから取得される、情報処理装置の状態を示す性能値に関する時系列データである。
基準データは、運用データから選定された、所定のメトリックに関する時系列データである。基準データは、データセンターに複数のVMがあれば、それぞれのVMの所定のメトリックに関する時系列データを含んでもよい。メトリックは、例えば、VMのCPU使用率、メモリ使用率、DISKコマンド数、ネットワーク送受信速度、DISK読み込み回数、DISK書込回数、DISKキュー平均待ち時間、送受信データ量などである。メトリックは、具体的には、100個以上あってもよい。
(1−2)制御装置100は、予測要求を受け付ける。予測要求は、予測対象である予測対象基準データを指定する情報を含む。予測対象基準データは、予測対象のメトリックに関する時系列データである。予測対象基準データは、例えば、VMのCPU使用率に関する時系列データである。
(1−3)制御装置100は、入力された予測要求に基づいて算出された、予測対象である予測対象基準データと、他の基準データとの間の相関をそれぞれ表す複数の相関係数に基づき、複数の基準データから一又は複数の選択基準データを選択する。
制御装置100は、例えば、VMのCPU使用率に関する時系列データと、メモリ使用率に関する時系列データとの相関係数を算出する。また、制御装置100は、例えば、VMのCPU使用率に関する時系列データと、DISKコマンド数に関する時系列データとの相関係数を算出する。また、制御装置100は、例えば、VMのCPU使用率に関する時系列データと、ネットワーク送受信速度に関する時系列データとの相関係数を算出する。
また、制御装置100は、例えば、VMのCPU使用率に関する時系列データと、DISK読み込み回数に関する時系列データとの相関係数を算出する。また、制御装置100は、例えば、VMのCPU使用率に関する時系列データと、DISK書込回数に関する時系列データとの相関係数を算出する。また、制御装置100は、VMのCPU使用率に関する時系列データと、DISKキュー平均待ち時間に関する時系列データとの相関係数を算出する。
そして、制御装置100は、例えば、複数の基準データのうち、算出した相関係数が大きい順に、所定の数の基準データを選択する。制御装置100は、複数の基準データのうち、算出した相関係数が所定の閾値以上である基準データを選択してもよい。
(1−4)制御装置100は、選択した一又は複数の選択基準データに基づき、予測対象基準データの予測値を計算する。制御装置100は、例えば、選択した一又は複数の選択基準データをJITモデリングに使用し、局所的なモデルを作成してVMのCPU使用率に関する時系列データに次に追加されるVMのCPU使用率を予測した予測値を計算する。
JITモデリングは、種々のメトリックのデータを蓄積しておき、現在の種々のメトリックのデータとの間でのL2ノルムが所定の閾値以下になる過去の時点の種々のメトリックのデータから局所的なモデルを作成し、何らかのメトリックのデータの予測値を計算する技術である。
(1−5)制御装置100は、計算した予測対象基準データの予測値と予め定められた基準値に基づき、制御装置100の計算資源を制御する。制御装置100は、例えば、VMのCPU使用率の予測値が閾値以上であれば、VMに割り当てる計算資源を増やす。閾値は、例えば、VMに割り当て中のCPUリソースの90%である。
これにより、制御装置100は、JITモデリングによって何らかのメトリックのデータの予測値を計算し、計算した予測値に基づいてデータセンターの計算資源についての負荷を予測することができる。このため、制御装置100は、SLAを満たしつつデータセンターの消費電力を効率よく低減することができるように、情報処理装置の計算資源を制御することができる。また、制御装置100は、消費電力を効率よく低減しづらくてもSLAを満たす確率が大きくなるように、情報処理装置の計算資源を制御してもよい。
さらに、制御装置100は、複数のメトリックのうち、JITモデリングに使用するメトリックを選択し、JITモデリングにかかる時間を低減することができる。このため、制御装置100は、JITモデリングに時間がかかり、データセンターの計算資源についての負荷の変動のタイミングまでに、計算資源の制御が間に合わなくなることを抑制することができる。結果として、制御装置100は、SLAを満たさない期間が発生してしまう可能性を低減することができる。
また、制御装置100は、JITモデリングによって、データセンターのように物理現象が複雑な場所についても、予測対象の何らかのメトリックのデータの予測値を精度よく計算することができる。また、制御装置100は、JITモデリングによって、予測対象の何らかのメトリックのデータが、非線形な特定を有していても、予測対象の何らかのメトリックのデータの予測値を精度よく計算することができる。
(情報処理システム200の一例)
次に、図1に示した制御装置100を適用した、情報処理システム200の一例について説明する。
図2は、情報処理システム200の一例を示す説明図である。図2において、情報処理システム200は、制御装置100と、情報処理装置201とを含む。情報処理システム200において、制御装置100と情報処理装置201とは、有線又は無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
制御装置100は、情報処理装置201を管理するコンピュータである。制御装置100は、具体的には、サーバである。制御装置100は、データセンターにあるサーバである。制御装置100は、データセンターの外にあるサーバであってもよい。情報処理装置201は、計算資源を有するコンピュータである。情報処理装置201は、VMを実行することができる。情報処理装置201は、例えば、ホストOSによってVMを実行する。情報処理装置201は、例えば、ハイパーバイザによってVMを実行してもよい。情報処理装置201は、具体的には、サーバである。制御装置100は、いずれかの情報処理装置201と一体であってもよい。
(制御装置100のハードウェア構成例)
次に、図3を用いて、制御装置100のハードウェア構成例について説明する。
図3は、制御装置100のハードウェア構成例を示すブロック図である。図3において、制御装置100は、CPU301と、メモリ302と、ネットワークI/F(Interface)303と、ディスクドライブ304と、ディスク305と、記録媒体I/F306と、BMC(Base Management Controller)307とを有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、制御装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータ(例えば、図2に示したクライアント装置202)に接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリード/ライトを制御する。ディスクドライブ304は、例えば、磁気ディスクドライブである。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する不揮発メモリである。ディスク305は、例えば、磁気ディスク、光ディスクなどである。メモリ302、又はディスク305は、複数のメトリックのそれぞれのメトリックに関する時系列データを基準データとして記憶する、図4に後述するDB(DateBase)400を実現する。
記録媒体I/F306は、外部の記録媒体308に接続され、外部の記録媒体308と内部のインターフェースを司り、外部の記録媒体308に対するデータの入出力を制御する。記録媒体I/F306は、例えば、USB(Universal Serial Bus)ポートである。記録媒体308は、例えば、USBメモリである。記録媒体308は、実施の形態にかかる制御プログラムを記憶してもよい。BMC307は、ハードウェアの監視、ハードウェアの遠隔操作を行う。
制御装置100は、上述した構成部のほか、例えば、SSD(Solid State Drive)、半導体メモリ、キーボード、マウス、ディスプレイなどを有することにしてもよい。また、制御装置100は、ディスクドライブ304およびディスク305の代わりに、SSDおよび半導体メモリなどを有していてもよい。また、制御装置100は、ディスクドライブ304、ディスク305、記録媒体I/F306を有していなくてもよい。
(メトリックに関する時系列データのデータ構造の一例)
次に、図4を用いて、DB400に基準データとして記憶されるメトリックに関する時系列データのデータ構造の一例について説明する。DB400は、例えば、図3に示した制御装置100のメモリ302、ディスク305により実現される。
図4は、メトリックに関する時系列データのデータ構造の一例を示す説明図である。図4に示すように、メトリックに関する時系列データは、メトリックの名称と、データの取得時刻と、物理ホストのアドレスと、仮想マシンのアドレスと、メトリックのデータとのフィールド401〜405を有する。
メトリックの名称のフィールド401には、メトリックの名称が設定される。メトリックの名称は、図4の例では、送受信データ量である。データの取得時刻のフィールド402には、メトリックに関するデータが取得された時刻が設定される。物理ホストのアドレスのフィールド403には、物理ホストを特定する情報として物理ホストのアドレスが設定される。仮想マシンのアドレスのフィールド404には、仮想マシンを特定する情報として仮想マシンのアドレスが設定される。
メトリックのデータのフィールド405には、データの取得時刻のフィールド402に設定された時刻に取得された、メトリックの名称のフィールド401に名称が設定されたメトリックに関するデータが設定される。メトリックのデータのフィールド405には、物理マシン、又は物理マシンが実行する仮想マシンごとに、メトリックに関するデータが設定される。
(情報処理装置201のハードウェア構成例)
情報処理装置201のハードウェア構成例は、制御装置100のハードウェア構成例と同様であるため、説明を省略する。
(制御装置100の機能的構成例)
次に、図5を用いて、制御装置100の機能的構成例について説明する。
図5は、制御装置100の機能的構成例を示すブロック図である。制御装置100は、記憶部501と、選択部502と、計算部503と、制御部504と、出力部505とを含む。
記憶部501は、例えば、図3に示したメモリ302、ディスク305などの記憶領域によって実現される。選択部502〜出力部505は、具体的には、例えば、図3に示したメモリ302、ディスク305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、又は、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302、ディスク305などの記憶領域に記憶される。
記憶部501は、情報処理装置201が実行するホストOSから入力した運用データに基づき選定された複数の基準データを記憶する。基準データは複数の時点のそれぞれの時点の性能値を含む時系列データである。運用データは、性能値に関する時系列データである。運用データは、例えば、情報処理装置201が実行するホストOS上のパフォーマンスモニタから取得される、情報処理装置201の状態を示す性能値に関する時系列データである。情報処理装置201の状態は、情報処理装置201が実行するVMの性能に関連し、情報処理装置201の負荷に関連する。
基準データは、運用データから選定された、所定のメトリックに関する時系列データである。基準データは、データセンターに複数のVMがあれば、それぞれのVMの所定のメトリックに関する時系列データを含んでもよい。メトリックは、例えば、VMのCPU使用率、メモリ使用率、DISKコマンド数、ネットワーク送受信速度、DISK読み込み回数、DISK書込回数、DISKキュー平均待ち時間、送受信データ量などである。
記憶部501は、例えば、DB400を記憶する。これにより、記憶部501は、DB400に、JITモデリングに使用する、複数のメトリックのそれぞれのメトリックに関する時系列データを記憶しておき、選択部502に参照させることができる。
選択部502は、入力された予測要求に基づいて算出された、予測対象である予測対象基準データと他の基準データとの間の相関をそれぞれ表す複数の相関係数に基づき、複数の基準データから一又は複数の選択基準データを選択する。
選択部502は、例えば、相関係数が大きい方から順に、所定の数の選択基準データを選択する。選択部502は、相関係数が所定の閾値以上である選択基準データを選択してもよい。これにより、選択部502は、JITモデリングに用いられるメトリックに関する時系列データの数を少なくして、JITモデリングにかかる時間を低減することができる。
計算部503は、選択部502が選択した一又は複数の選択基準データに基づき、予測対象基準データの予測値を計算する。計算部503は、JITモデリングによって局所的なモデルを作成し、予測対象基準データの予測値を計算する。
計算部503は、例えば、一又は複数の選択基準データのそれぞれの選択基準データについて所定の時点の一又は複数の性能値との間でのL2ノルムが所定の閾値以下になる所定の時点より前の時点の一又は複数の性能値を特定する。そして、計算部503は、特定した一又は複数の性能値に基づいて予測対象基準データの予測値の統計値を計算する。所定の時点は、例えば、性能値を取得した最新の時点である。
計算部503は、具体的には、それぞれの選択基準データについて所定の時点の一又は複数の性能値との間でL2ノルムが所定の閾値以下になる、所定の時点より前の時点の一又は複数の性能値を特定する。そして、計算部503は、特定した一又は複数の性能値に基づいて予測対象基準データの予測値の統計値を計算する。これにより、計算部503は、データセンターの情報処理装置201の負荷を予測することができる。
制御部504は、計算部503が計算した予測対象基準データの予測値と予め定められた基準値に基づき、出力部505を介して情報処理装置201の計算資源の制御を行う。基準値は、予め定められた情報処理装置の、仮想マシンに関する状態を示す性能値である。基準値は、例えば、利用者が求める仮想マシンの性能が確保されるか否かについての判断基準となる性能値である。計算資源の制御は、例えば、仮想マシンへの計算資源の割り当ての変更である。計算資源の制御は、計算資源への電源供給の変更であってもよい。
制御部504は、例えば、計算部503が計算した予測対象基準データの予測値が、基準値よりも性能が低いことを示す性能値である場合、出力部505を介して仮想マシンに割り当てる情報処理装置201の計算資源を増加させる。制御部504は、具体的には、VMのCPU使用率の予測値を計算した場合であれば、VMに割り当てたCPUリソースの90%を基準値として採用する。制御部504は、出力部505を介して、情報処理装置201に制御信号を出力することにより、VMに割り当てるCPUリソースを変化させる。これにより、制御部504は、SLAを満たさなくなることを抑制することができる。
制御部504は、例えば、計算部503が計算した予測対象基準データの予測値が、基準値よりも性能が高いことを示す性能値である場合、仮想マシンに割り当てる情報処理装置201の計算資源を減少させる。制御部504は、具体的には、VMのCPU使用率の予測値を計算した場合であれば、VMに割り当てたCPUリソースの50%を基準値として採用する。制御部504は、出力部505を介して、情報処理装置201に制御信号を出力することにより、VMに割り当てるCPUリソースを変化させる。これにより、制御部504は、SLAを満たしつつ、データセンターの消費電力を低減することができる。
制御部504は、情報処理装置201の計算資源の制御を行った結果、情報処理装置201の計算資源が割り当てられた仮想マシンがなければ、情報処理装置201への電源供給の停止を行う。制御部504は、例えば、VMが割り当てられていない情報処理装置201への電源供給の停止を行う。制御部504は、出力部505を介して、情報処理装置201に制御信号を出力することにより、情報処理装置201への電源供給の停止を行う。これにより、情報処理装置201は、消費電力を低減することができる。
出力部505は、制御部504にしたがって、制御信号を情報処理装置201に出力する。これにより、出力部505は、情報処理装置201の計算資源を制御することができ、SLAを満たしつつ、データセンターの消費電力の低減化を図ることができる。
(制御装置100の具体的な構成例)
次に、図6を用いて、制御装置100の具体的な構成例について説明する。
図6は、制御装置100の具体的な構成例を示すブロック図である。図6に示すように、制御装置100は、JIT予測ソフトウェア600によって、メトリック選定部601と、変数選択部602と、タイマー部603と、近傍データセット検索部604と、予測値計算部605とを管理する。また、制御装置100は、JIT予測ソフトウェア600によって、制御対象選択部606と、制御方針決定部607とを管理する。また、制御装置100は、インフラ管理ソフトウェア610によって、制御受け取り部611と、制御指示部612とを管理する。
メトリック選定部601は、情報処理装置201のホストOSから運用データの入力を受け付ける。メトリック選定部601は、受け付けた運用データに基づいて、複数のメトリックのそれぞれのメトリックに関する時系列データを選定してDB400に記憶する。
変数選択部602は、モデル作成要求を受け付ける。モデル作成要求は、例えば、予測対象のメトリックを指定する要求であって、所定の間隔で入力される。モデル作成要求は、具体的には、データセンターの情報処理装置201の数の増減のタイミングにおいて、予測対象のメトリックに関するモデルを更新させるために自動で入力される。モデル作成要求は、具体的には、人手で入力されてもよい。モデル作成要求は、具体的には、毎日定時に、予測対象のメトリックに関するモデルを更新させるために入力されてもよい。
変数選択部602は、モデル作成要求を受け付けると、予測対象のメトリックと、他のメトリックとの相関係数を算出し、相関係数に基づいてJITモデリングによって作成されるモデルに用いるメトリックを選択する。また、変数選択部602は、ステップワイズ法を用いて、JITモデリングによって作成されるモデルに用いる係数を計算する。これにより、変数選択部602は、モデルを定期的に更新して、予測値を計算する精度の向上を図ることができる。
タイマー部603は、一定時間ごとに近傍データセット検索部604に予測要求を出力し、近傍データセット検索部604を動作させる。近傍データセット検索部604は、過去データセットのうち、最新データセットとの間でのL2ノルムが所定の閾値以下になる近傍データセットを検索する。近傍データセット検索部604は、例えば、最新データセットと、それぞれの過去データセットとのL2ノルムを計算し、L2ノルムが相対的に小さい過去データセットを近傍データセットとして特定する。
予測値計算部605は、作成されたモデルに、特定された近傍データセットを入力することにより、予測対象のメトリックに関する予測値を計算する。予測値計算部605は、予測値を計算すると、DB400に予測値を記憶する。これにより、予測値計算部605は、定期的に予測値を計算し、制御対象選択部606や制御方針決定部607によってVMに割り当てる計算資源が制御されるようにして、データセンターの消費電力の低減化が図られるようにすることができる。
制御対象選択部606は、DB400に記憶された予測値に基づいて、制御対象のVMを選択する。制御方針決定部607は、選択されたVMに割り当てる計算資源についての制御方針を決定する。制御方針決定部607は、例えば、選択されたVMに割り当てるCPUリソースの量を決定し、又は、選択されたVMを移動させる情報処理装置201を決定する。制御方針決定部607は、選択したVMと、決定した制御方針とを、制御受け取り部611に出力する。これにより、制御対象選択部606や制御方針決定部607は、SLAを満たしつつ、データセンターの消費電力の低減化を図ることができる。
制御受け取り部611は、制御方針決定部607から制御対象のVMと制御方針とを受け付け、制御指示部612に出力する。制御指示部612は、制御対象のVMを実行中の情報処理装置201に対して、制御方針にしたがって制御信号を出力する。これにより、制御受け取り部611や制御指示部612は、情報処理装置201を制御することができる。
(実施例1における制御装置100の動作例)
次に、図7〜図11を用いて、実施例1における制御装置100の動作例について説明する。
図7〜図11は、実施例1における制御装置100の動作例を示す説明図である。図7において、制御装置100は、JIT予測ソフトウェア600によって、一定時間ごとに、情報処理装置201から運用データを取得し、DB400に記憶する。制御装置100は、例えば、VMのOS上のパフォーマンスモニタから性能情報を取得し、取得した性能情報に応じたレコードをDB400に記憶された基準データに追加する。
また、制御装置100は、例えば、情報処理装置201のホストOS上のハードウェアイベント管理ソフトウェアからハードウェアイベント情報を取得し、取得したハードウェアイベント情報に応じたレコードをDB400に記憶された基準データに追加してもよい。また、制御装置100は、例えば、情報処理装置201のハイパーバイザAPIからハードウェアイベント情報を取得し、取得したハードウェアイベント情報に応じたレコードをDB400に記憶された基準データに追加してもよい。
これにより、制御装置100は、DB400に記憶された、複数のメトリックのそれぞれのメトリックに関する時系列データを更新することができる。結果として、制御装置100は、JITモデリングに使用するメトリックに関する時系列データを、最新の状態に更新することができる。次に、図8の説明に移行する。
図8において、制御装置100は、予測対象である予測対象基準データとして、CPU使用率に関する時系列データを指定する予測要求を受け付ける。制御装置100は、予測要求を受け付けると、CPU使用率に関する時系列データと、CPU使用率とは異なる他のメトリックに関する時系列データとの相関係数を計算する。制御装置100は、例えば、下記式(1)を用いて、CPU使用率に関する時系列データと、送受信データ量に関する時系列データとの相関係数を計算する。
制御装置100は、具体的には、VMごとに、上記式(1)にCPU使用率と、送受信データ量と、CPU使用率の標準偏差と、送受信データ量の標準偏差とを代入し、相関係数を計算する。そして、制御装置100は、計算したVMごとの相関係数の統計値を、CPU使用率に関する時系列データと、送受信データ量に関する時系列データとの相関係数として計算する。
制御装置100は、VMごとに相関係数を計算せず、複数のVMのそれぞれのVMのCPU使用率や送受信データ量をまとめて扱って、CPU使用率に関する時系列データと、送受信データ量に関する時系列データとの相関係数を計算してもよい。制御装置100は、複数のVMの代表としていずれかのVMを選択し、代表として選択したいずれかのVMについて算出した相関係数を、CPU使用率に関する時系列データと、送受信データ量に関する時系列データとの相関係数として用いてもよい。
また、制御装置100は、同様に、CPU使用率に関する時系列データと、CPU使用率や送受信データ量とは異なる、メモリ使用率やDISKコマンド数などの他のメトリックに関する時系列データとの相関係数を計算する。これにより、制御装置100は、算出した相関係数が大きく、CPU使用率とは異なる他のメトリックのそれぞれのメトリックが、CPU使用率の予測値を求める際に用いることがどのくらい好ましいかを示す指標値を得ることができる。次に、図9の説明に移行する。
図9において、制御装置100は、算出した相関係数が大きい順に、複数のメトリックをソートする。制御装置100は、ソートした複数のメトリックのうち、順位が10位までのメトリックを、CPU使用率の予測値を求めるためのJITモデリングに使用するメトリックに設定する。これにより、制御装置100は、JITモデリングの精度の低下を抑制しつつ、JITモデリングにかかる時間の低減化を図ることができる。次に、図10の説明に移行する。
図10において、制御装置100は、選択したそれぞれのメトリックに関する時系列データにおいて、最新の時点の性能値の集合である最新データセットとの間でのL2ノルムが所定の閾値以下になる過去の時点の性能値の集合である近傍データセットを検索する。制御装置100は、例えば、下記式(2)を用いて、最新データセットと、過去のそれぞれの時点の性能値の集合である過去データセットとのL2ノルムを計算する。
ここで、tは過去の時点である。ktは過去の時点tに対応する過去データセットである。kqは最新データセットである。Dt(kt,kq)は最新データセットと過去の時点tに対応する過去データセットとのL2ノルムである。
そして、制御装置100は、過去データセットのうち、計算したL2ノルムが小さい方から10個の過去データセットを、近傍データセットとして特定する。制御装置100は、過去データセットのうち、計算したL2ノルムが所定の閾値以下である過去データセットを、近傍データセットとして特定してもよい。
次に、制御装置100は、下記式(3)を用いて、特定した近傍データセットごとに、CPU使用率の予測値を計算する。制御装置100は、例えば、n個の近傍データセットのうち、j番目の近傍データセットを用いてCPU使用率の予測値を計算する。
ここで、yj kqはj番目の近傍データセットに基づくCPU使用率の予測値である。β0は係数である。βiは係数である。β0やβiは例えば、送受信データ量に関する時系列データに基づいてステップワイズ法を用いて求められる。xi ktはj番目の近傍データセットのi番目の性能値である。
次に、制御装置100は、下記式(4)を用いて、計算したCPU使用率の予測値の統計値を計算する。制御装置100は、例えば、統計値として平均値を計算する。制御装置100は、統計値として、中央値やパーセンタイルを計算してもよい。
ここで、ykqはCPU使用率の予測値の統計値である。これにより、制御装置100は、JITモデリングによって、VMのCPU使用率の予測値を計算し、データセンターの情報処理装置201の負荷を予測することができる。さらに、制御装置100は、JITモデリングにかかる時間を低減することができ、所定の時点になる前に所定の時点のVMのCPU使用率の予測値を求めておくことができる。次に、図11の説明に移行する。
図11において、制御装置100は、計算したCPU使用率の予測値に基づいて、情報処理装置201の計算資源の制御を行う。計算資源は、例えば、CPUリソースである。制御は、情報処理装置201によって実行されるVMへの計算資源の割り当ての変更である。制御は、情報処理装置201の計算資源への電源供給の変更であってもよい。
(11−1)制御装置100は、例えば、情報処理装置201によって実行されるVMに対する、情報処理装置201のCPUリソースの割り当てを増加、又は減少させる。制御装置100は、具体的には、VMのCPU使用率の予測値が、VMに割り当てたCPUリソースの90%を超えている場合、VMに割り当てるCPUリソースを増加させる。
換言すれば、制御装置100は、VMのCPU使用率が、VMに割り当てたCPUリソースの100%を超えてしまい、VMの性能が低下してしまう可能性が比較的大きい場合に、VMに割り当てるCPUリソースを増加させることができる。これにより、制御装置100は、SLAを満たさない期間が発生してしまう可能性を低減することができる。
また、制御装置100は、具体的には、VMのCPU使用率の予測値が、VMに割り当てたCPUリソースの50%を下回っている場合、VMに割り当てるCPUリソースを、SLAを満たすようにしつつも、減少させる。
換言すれば、制御装置100は、VMのCPU使用率が、VMに割り当てたCPUリソースの50%を下回り、VMが使用しないCPUリソースについての消費電力が比較的大きい場合に、VMに割り当てるCPUリソースを減少させることができる。これにより、制御装置100は、SLAを満たしつつデータセンターの消費電力を効率よく低減することができる。
(11−2)制御装置100は、例えば、情報処理装置201によって実行されるVMを、他の情報処理装置201によって実行させるために、他の情報処理装置201に移動させる。具体的には、他の情報処理装置201のCPUリソースが、他の情報処理装置201によって実行されるVMのCPU使用率の予測値の合計値に比べて大きく、他の情報処理装置201がさらにVMを実行可能な状態である場合がある。
この場合、制御装置100は、さらにVMを実行可能な状態である他の情報処理装置201に、情報処理装置201によって実行されているVMを移動させる。これにより、制御装置100は、データセンターにおいて、VMを実行している情報処理装置201の数を減らすことができる。
(11−3)制御装置100は、例えば、情報処理装置201によって実行されるVMを、他の情報処理装置201に移動させた結果、情報処理装置201が実行するVMがなくなった場合、情報処理装置201への電源供給を停止する。これにより、制御装置100は、データセンターの消費電力を効率よく低減することができる。
このように、制御装置100は、情報処理装置201の負荷の変動に備えて、情報処理装置201をホットスタンバイ状態で起動しておかなくてもよいようにすることができる。制御装置100は、例えば、情報処理装置1101〜1103のうち、情報処理装置1102,1103への電源供給を停止しておくことができる。
ここで、例えば、情報処理装置201は、CPU使用率が0%であっても、ホットスタンバイ状態で起動している状態であると、消費電力として130W程度使用することがある。一方で、情報処理装置201は、電源供給を停止された状態であれば、消費電力としては10W程度使用すればよいことがある。また、情報処理装置201は、起動中であってCPU使用率が100%であると、消費電力として280W程度使用することがある。
このため、制御装置100は、データセンターの情報処理装置201の負荷を予測せずに、情報処理装置201の負荷の変動に備えて、情報処理装置201をホットスタンバイ状態で起動しておく場合に比べて、データセンターの消費電力を低減することができる。制御装置100は、例えば、情報処理装置1101〜1103のうち、情報処理装置1102,1103をホットスタンバイ状態で起動しておく場合に比べて、データセンターの消費電力を45%程度低減することができるようになる。
さらに、制御装置100は、消費電力を低減しても、SLAを満たさない期間が発生してしまう可能性を低減することができる。制御装置100は、例えば、JITモデリングを用いることにより、CPU使用率の予測値のうち98%程度の予測値については、実測値との差分が±10%未満になるようにすることができる。さらに、制御装置100は、例えば、CPU使用率の予測値のうち2%程度の予測値についても、実測値との差分が±20%未満になるようにすることができる。
ここで、制御装置100は、上述したように、VMのCPU使用率の予測値が、VMに割り当てたCPUリソースの90%を超えている場合、VMに割り当てるCPUリソースを増加させる。このため、制御装置100は、VMのCPU使用率が、VMに割り当てたCPUリソースの100%を超えてしまい、VMの性能が低下してしまう可能性を、2%程度に抑制することができる。
また、制御装置100は、VMのCPU使用率の予測値が、VMに割り当てたCPUリソースの80%を超えている場合、VMに割り当てるCPUリソースを増加させるようにしてもよい。これにより、制御装置100は、VMのCPU使用率が、VMに割り当てたCPUリソースの100%を超えてしまい、VMの性能が低下してしまう可能性をさらに低減することができる。
さらに、制御装置100は、複数のメトリックのうち、CPU使用率の予測値を求めるためのJITモデリングに使用するメトリックを限定し、JITモデリングの精度の低下を抑制しつつ、JITモデリングにかかる時間の低減化を図ることができる。
例えば、メトリックが200個あり、過去データセットが24時間分ある場合が考えられる。この場合、200個のメトリックをJITモデリングに使用してしまうと、200×144=28800についてステップワイズ法を用いた計算が行われることになり、具体的には3時間〜4時間かかる傾向がある。一方で、制御装置100は、200個のメトリックのうち10個のメトリックを選択するため、10×144=1440についてステップワイズ法を用いた計算を行えばよいため、9分〜12分かければよい。ここで、200個のメトリックのうち10個のメトリックを選択する際にかかる時間は、ステップワイズ法を用いた計算にかかる時間に比べて小さいため、0分として扱うことにする。
結果として、制御装置100は、200個のメトリックをJITモデリングに使用する場合に比べて、JITモデリングにかかる時間を低減することができる。そして、制御装置100は、予測値の時点までにJITモデリングが終わらずに、計算資源の制御が間に合わなくなることを抑制することができ、SLAを満たさない期間が発生してしまう可能性を低減することができる。
(実施例1における基準データの別の例)
次に、図12を用いて、実施例1において情報処理装置201が記憶する基準データの別の例について説明する。
図12は、実施例1における基準データの別の例を示す説明図である。図12において、制御装置100がVMのCPU使用率を取得する時間間隔と、制御装置100が送受信データ量を取得する時間間隔は異なっていてもよい。図12の例では、CPU使用率は、10分ごとに取得される。一方で、送受信データ量は、1分ごとに取得される。
(実施例1における予測処理手順の一例)
次に、図13を用いて、実施例1における予測処理手順の一例について説明する。
図13は、実施例1における予測処理手順の一例を示すフローチャートである。図13において、制御装置100は、それぞれの物理マシンおよびそれぞれの仮想マシンについて、複数のメトリックのそれぞれのメトリックの値を取得する(ステップS1301)。
次に、制御装置100は、予測対象のメトリックとなるCPU使用率と、複数のメトリックのうち予測対象のメトリックとなるCPU使用率を除いた他のメトリックのそれぞれのメトリックとの相関係数を計算する(ステップS1302)。そして、制御装置100は、相関係数が大きい順に、複数のメトリックをソートする(ステップS1303)。
次に、制御装置100は、相関係数の大きい方から所定の順位までのメトリックを、相関係数の大きい変数として記憶する(ステップS1304)。そして、制御装置100は、モデルの作成要求を受け付けると、記憶した相関係数の大きい変数を、モデル作成に用いる変数として設定する(ステップS1305)。
次に、制御装置100は、予測値の計算要求を受け付けると、最新データセットとの間でのL2ノルムが所定の閾値以下になる近傍データセットを検索する(ステップS1306)。そして、制御装置100は、検索した近傍データセットと、設定したモデル作成に用いる変数とに基づいて、モデルを作成する(ステップS1307)。
次に、制御装置100は、作成したモデルに基づいて、それぞれの物理マシンおよびそれぞれの仮想マシンについて、予測対象のメトリックとなるCPU使用率の予測値を計算する(ステップS1308)。そして、制御装置100は、予測処理を終了する。これにより、制御装置100は、JITモデリングによって、VMのCPU使用率の予測値を計算し、データセンターの情報処理装置201の負荷を予測することができる。
(実施例1における制御処理手順の一例)
次に、図14および図15を用いて、実施例1における制御処理手順の一例について説明する。
図14および図15は、実施例1における制御処理手順の一例を示すフローチャートである。図14において、制御装置100は、VMのCPU使用率の予測値が、VMに割り当てたCPUリソースの90%を超えたか否かを判定する(ステップS1401)。ここで、超えていない場合(ステップS1401:No)、制御装置100は、ステップS1403の処理に移行する。
一方で、超えた場合(ステップS1401:Yes)、制御装置100は、超えたと判定したVMに割り当てるCPUの数を増加させる(ステップS1402)。制御装置100は、例えば、超えたと判定したVMに割り当てるCPUの数を、VMに割り当てたCPUリソースがCPU使用率の予測値より大きくなる範囲になるCPUの数のうち、最小の数まで増大させる。
次に、制御装置100は、VMのCPU使用率の予測値が、VMに割り当てたCPUリソースの50%を下回るか否かを判定する(ステップS1403)。ここで、下回らない場合(ステップS1403:No)、制御装置100は、図15のステップS1501の処理に移行する。
一方で、下回る場合(ステップS1403:Yes)、制御装置100は、下回ると判定したVMに割り当てるCPUの数を減少させる(ステップS1404)。制御装置100は、例えば、下回ると判定したVMに割り当てるCPUの数を、VMに割り当てたCPUリソースがCPU使用率の予測値より大きくなる範囲になるCPUの数のうち、最小の数まで増大させる。そして、制御装置100は、図15のステップS1501の処理に移行する。
図15において、制御装置100は、それぞれの物理マシンのCPU使用率の予測値の合計値を算出し、算出した合計値よりCPUリソースが大きくなる範囲になる物理マシンの数のうち、最小の数を算出する(ステップS1501)。
そして、制御装置100は、算出した最小の数から、現在起動中の物理マシンの数を減算し、現在の状態から起動又は停止の状態に変更させる物理マシンの数を算出し、算出した物理マシンの数が0であるか否かを判定する(ステップS1502)。
減算した結果が正の値であれば、減算した結果の絶対値は、現在停止の状態であって停止の状態から起動の状態に変更させる物理マシンの数を示す値になる。減算した結果が負の値であれば、減算した結果の絶対値は、現在起動の状態であって起動の状態から停止の状態に変更させる物理マシンの数を示す値になる。ここで、0である場合(ステップS1502:Yes)、制御装置100は、ステップS1509の処理に移行する。
一方で、0ではない場合(ステップS1502:No)、制御装置100は、算出した最小の数から、現在起動中の物理マシンの数を減算した結果が、正の値であるか否かを判定する(ステップS1503)。ここで、負の値であって、起動中の物理マシンのうち、起動の状態から停止の状態に変更させる物理マシンがある場合(ステップS1503:No)、制御装置100は、ステップS1504の処理に移行する。
ステップS1504にて、制御装置100は、起動中の物理マシンのうち、起動の状態から停止の状態に変更させる物理マシンを選択する(ステップS1504)。制御装置100は、例えば、算出した物理マシンの数に応じて、実行中のVMが少ない物理マシンから順に選択する。
次に、制御装置100は、選択した物理マシンが実行中のVMを、選択されずに起動中の物理マシンに移動させ、移動が終了した後に選択した物理マシンを起動の状態から停止の状態に変更させる(ステップS1505)。
次に、制御装置100は、起動中の物理マシンの負荷を平準化する(ステップS1506)。制御装置100は、例えば、起動中の物理マシンが実行中のVMのうち、現在のCPU使用率から予測値までの変化量が少ないVMから順に、物理マシン間を移動させて、起動中の物理マシンの負荷を平準化する。そして、制御装置100は、制御処理を終了する。
一方で、正の値であって、起動中の物理マシンのうち、停止の状態から起動の状態に変更させる物理マシンがある場合(ステップS1503:Yes)、制御装置100は、ステップS1507の処理に移行する。
ステップS1507にて、制御装置100は、停止中の物理マシンのうち、停止の状態から起動の状態に変更させる物理マシンを選択する(ステップS1507)。次に、制御装置100は、選択した物理マシンを停止の状態から起動の状態に変更させる(ステップS1508)。
そして、制御装置100は、それぞれの物理サーバのCPU使用率の合計値を比較し、物理サーバ間の合計値の差分が10%以上であるか否かを判定する(ステップS1509)。ここで、10%以上である場合(ステップS1509:Yes)、制御装置100は、起動中の物理マシンの負荷を平準化する(ステップS1510)。制御装置100は、例えば、起動中の物理マシンが実行中のVMのうち、現在のCPU使用率から予測値までの変化量が少ないVMから順に、物理マシン間を移動させて、起動中の物理マシンの負荷を平準化する。
一方で、10%以上ではない場合(ステップS1509:No)、制御装置100は、制御処理を終了する。これにより、制御装置100は、SLAを満たしつつデータセンターの消費電力を効率よく低減することができる。
(実施例2における制御装置100の動作例)
次に、図16および図17を用いて、実施例2における制御装置100の動作例について説明する。
図16および図17は、実施例2における制御装置100の動作例を示す説明図である。制御装置100は、図7と同様に、JIT予測ソフトウェア600によって、一定時間ごとに、情報処理装置201から運用データを取得し、DB400に記憶している。
図16において、制御装置100は、予測対象である予測対象基準データとして、レイテンシに関する時系列データを指定する予測要求を受け付ける。制御装置100は、予測要求を受け付けると、レイテンシに関する時系列データと、レイテンシとは異なる他のメトリックに関する時系列データとの相関係数を計算する。制御装置100は、例えば、上記式(1)のCPU使用率をレイテンシに置き換えて、レイテンシに関する時系列データと、送受信データ量に関する時系列データとの相関係数を計算する。
制御装置100は、算出した相関係数が大きい順に、複数のメトリックをソートする。制御装置100は、ソートした複数のメトリックのうち、順位が10位までのメトリックを、レイテンシの予測値を求めるためのJITモデリングに使用するメトリックに設定する。これにより、制御装置100は、JITモデリングの精度の低下を抑制しつつ、JITモデリングにかかる時間の低減化を図ることができる。次に、図17の説明に移行する。
図17において、制御装置100は、選択したそれぞれのメトリックに関する時系列データにおいて、最新の時点の性能値の集合である最新データセットとの間でのL2ノルムが所定の閾値以下になる過去の時点の性能値の集合である近傍データセットを検索する。制御装置100は、例えば、上記式(2)を用いて、最新データセットと、過去のそれぞれの時点の性能値の集合である過去データセットとのL2ノルムを計算する。
そして、制御装置100は、過去データセットのうち、計算したL2ノルムが小さい方から10個の過去データセットを、近傍データセットとして特定する。制御装置100は、過去データセットのうち、計算したL2ノルムが所定の閾値以下である過去データセットを、近傍データセットとして特定してもよい。
次に、制御装置100は、上記式(3)のCPU使用率をレイテンシに置き換えて、特定した近傍データセットごとに、レイテンシの予測値を計算する。制御装置100は、例えば、n個の近傍データセットのうち、j番目の近傍データセットを用いてレイテンシの予測値を計算する。
次に、制御装置100は、上記式(4)のCPU使用率をレイテンシに置き換えて、計算したレイテンシの予測値の統計値を計算する。制御装置100は、例えば、統計値として平均値を計算する。制御装置100は、統計値として、中央値やパーセンタイルを計算してもよい。
その後、制御装置100は、図11と同様に、計算したレイテンシの予測値に基づいて、情報処理装置201の計算資源の制御を行う。計算資源は、例えば、CPUリソースである。制御は、情報処理装置201によって実行されるVMへの計算資源の割り当ての変更である。制御は、情報処理装置201の計算資源への電源供給の変更であってもよい。
図17の例では、制御装置100は、具体的には、SLAとしてレイテンシが0.5msecを下回ることが要求されていれば、レイテンシの予測値が0.45msecを超えている場合にVMに割り当てるCPUリソースを増加させる。換言すれば、制御装置100は、レイテンシがSLAを満たさなくなる可能性が比較的大きい場合に、VMに割り当てるCPUリソースを増加させることができる。これにより、制御装置100は、SLAを満たさない期間が発生してしまう可能性を低減することができる。
また、制御装置100は、具体的には、レイテンシの予測値が0.25msecを下回っている場合、VMに割り当てるCPUリソースを、SLAを満たすようにしつつも、減少させてもよい。換言すれば、制御装置100は、レイテンシがSLAを満たさなくなる可能性が比較的小さい場合に、VMに割り当てるCPUリソースを減少させることができる。これにより、制御装置100は、SLAを満たしつつデータセンターの消費電力を効率よく低減することができる。
このように、制御装置100は、データセンターの消費電力を低減することができる。さらに、制御装置100は、消費電力を低減しても、SLAを満たさない期間が発生してしまう可能性を低減することができる。制御装置100は、例えば、JITモデリングを用いることにより、レイテンシの予測値のうち98%程度の予測値については、実測値との差分が±10%未満になるようにすることができる。さらに、制御装置100は、例えば、レイテンシの予測値のうち2%程度の予測値についても、実測値との差分が±20%未満になるようにすることができる。
ここで、制御装置100は、上述したように、レイテンシの予測値が0.45msecを超えている場合、VMに割り当てるCPUリソースを増加させる。このため、制御装置100は、レイテンシが0.5msecを超えてしまう可能性を、2%程度に抑制することができる。また、制御装置100は、レイテンシの予測値が0.40msecを超えている場合、VMに割り当てるCPUリソースを増加させるようにしてもよい。これにより、制御装置100は、レイテンシが0.5msecを超えてしまう可能性をさらに低減することができる。
(実施例2における予測処理手順の一例)
次に、図18を用いて、実施例2における予測処理手順の一例について説明する。
図18は、実施例2における予測処理手順の一例を示すフローチャートである。図18において、制御装置100は、それぞれの物理マシンおよびそれぞれの仮想マシンについて、複数のメトリックのそれぞれのメトリックの値を取得する(ステップS1801)。
次に、制御装置100は、予測対象のメトリックとなるレイテンシと、複数のメトリックのうち予測対象のメトリックとなるレイテンシを除いた他のメトリックのそれぞれのメトリックとの相関係数を計算する(ステップS1802)。そして、制御装置100は、相関係数が大きい順に、複数のメトリックをソートする(ステップS1803)。
次に、制御装置100は、相関係数の大きい方から所定の順位までのメトリックを、相関係数の大きい変数として記憶する(ステップS1804)。そして、制御装置100は、モデルの作成要求を受け付けると、記憶した相関係数の大きい変数を、モデル作成に用いる変数として設定する(ステップS1805)。
次に、制御装置100は、予測値の計算要求を受け付けると、最新データセットとの間でのL2ノルムが所定の閾値以下になる近傍データセットを検索する(ステップS1806)。そして、制御装置100は、検索した近傍データセットと、設定したモデル作成に用いる変数とに基づいて、モデルを作成する(ステップS1807)。
次に、制御装置100は、作成したモデルに基づいて、それぞれの物理マシンおよびそれぞれの仮想マシンについて、予測対象のメトリックとなるレイテンシの予測値を計算する(ステップS1808)。そして、制御装置100は、予測処理を終了する。これにより、制御装置100は、JITモデリングによって、VMのCPU使用率の予測値を計算し、データセンターの情報処理装置201の負荷を予測することができる。
(実施例2における制御処理手順の一例)
次に、図19を用いて、実施例2における制御処理手順の一例について説明する。
図19は、実施例2における制御処理手順の一例を示すフローチャートである。図19において、制御装置100は、VMのレイテンシの予測値が、0.45msecを超えたか否かを判定する(ステップS1901)。ここで、超えていない場合(ステップS1901:No)、制御装置100は、ステップS1903の処理に移行する。
一方で、超えた場合(ステップS1901:Yes)、制御装置100は、超えたと判定したVMに割り当てるCPUの数を増加させる(ステップS1902)。制御装置100は、例えば、超えたと判定したVMに割り当てるCPUの数を1増加させる。
次に、制御装置100は、VMのレイテンシの予測値が、0.25msecを下回るか否かを判定する(ステップS1903)。ここで、下回らない場合(ステップS1903:No)、制御装置100は、図15のステップS1501の処理に移行する。
一方で、下回る場合(ステップS1903:Yes)、制御装置100は、下回ると判定したVMに割り当てるCPUの数を減少させる(ステップS1904)。制御装置100は、例えば、下回ると判定したVMに割り当てるCPUの数を1減少させる。そして、制御装置100は、図15のステップS1501の処理に移行する。これにより、制御装置100は、SLAを満たしつつデータセンターの消費電力を効率よく低減することができる。
(実施例3における制御装置100の動作例)
次に、図20および図21を用いて、実施例3における制御装置100の動作例について説明する。
図20および図21は、実施例3における制御装置100の動作例を示す説明図である。制御装置100は、図7と同様に、JIT予測ソフトウェア600によって、一定時間ごとに、情報処理装置201から運用データを取得し、DB400に記憶している。
図20において、制御装置100は、予測対象である予測対象基準データとして、スループットに関する時系列データを指定する予測要求を受け付ける。制御装置100は、予測要求を受け付けると、スループットに関する時系列データと、スループットとは異なる他のメトリックに関する時系列データとの相関係数を計算する。制御装置100は、例えば、上記式(1)のCPU使用率をスループットに置き換えて、スループットに関する時系列データと、送受信データ量に関する時系列データとの相関係数を計算する。
制御装置100は、算出した相関係数が大きい順に、複数のメトリックをソートする。制御装置100は、ソートした複数のメトリックのうち、順位が10位までのメトリックを、スループットの予測値を求めるためのJITモデリングに使用するメトリックに設定する。これにより、制御装置100は、JITモデリングの精度の低下を抑制しつつ、JITモデリングにかかる時間の低減化を図ることができる。次に、図21の説明に移行する。
図21において、制御装置100は、選択したそれぞれのメトリックに関する時系列データにおいて、最新の時点の性能値の集合である最新データセットとの間でのL2ノルムが所定の閾値以下になる過去の時点の性能値の集合である近傍データセットを検索する。制御装置100は、例えば、上記式(2)を用いて、最新データセットと、過去のそれぞれの時点の性能値の集合である過去データセットとのL2ノルムを計算する。
そして、制御装置100は、過去データセットのうち、計算したL2ノルムが小さい方から10個の過去データセットを、近傍データセットとして特定する。制御装置100は、過去データセットのうち、計算したL2ノルムが所定の閾値以下である過去データセットを、近傍データセットとして特定してもよい。
次に、制御装置100は、上記式(3)のCPU使用率をスループットに置き換えて、特定した近傍データセットごとに、スループットの予測値を計算する。制御装置100は、例えば、n個の近傍データセットのうち、j番目の近傍データセットを用いてスループットの予測値を計算する。
次に、制御装置100は、上記式(4)のCPU使用率をスループットに置き換えて、計算したスループットの予測値の統計値を計算する。制御装置100は、例えば、統計値として平均値を計算する。制御装置100は、統計値として、中央値やパーセンタイルを計算してもよい。
その後、制御装置100は、図11と同様に、計算したスループットの予測値に基づいて、情報処理装置201の計算資源の制御を行う。計算資源は、例えば、CPUリソースである。制御は、情報処理装置201によって実行されるVMへの計算資源の割り当ての変更である。制御は、情報処理装置201の計算資源への電源供給の変更であってもよい。
図21の例では、制御装置100は、具体的には、SLAとしてスループットが500ops/secを超えることが要求されていれば、スループットの予測値が550ops/secを下回っている場合にVMに割り当てるCPUリソースを増加させる。換言すれば、制御装置100は、スループットがSLAを満たさなくなる可能性が比較的大きい場合に、VMに割り当てるCPUリソースを増加させることができる。これにより、制御装置100は、SLAを満たさない期間が発生してしまう可能性を低減することができる。
また、制御装置100は、具体的には、スループットの予測値が1000ops/secを超えている場合、VMに割り当てるCPUリソースを、SLAを満たすようにしつつも、減少させてもよい。換言すれば、制御装置100は、スループットがSLAを満たさなくなる可能性が比較的小さい場合に、VMに割り当てるCPUリソースを減少させることができる。これにより、制御装置100は、SLAを満たしつつデータセンターの消費電力を効率よく低減することができる。
このように、制御装置100は、データセンターの消費電力を低減することができる。さらに、制御装置100は、消費電力を低減しても、SLAを満たさない期間が発生してしまう可能性を低減することができる。制御装置100は、例えば、JITモデリングを用いることにより、スループットの予測値のうち98%程度の予測値については、実測値との差分が±10%未満になるようにすることができる。さらに、制御装置100は、例えば、スループットの予測値のうち2%程度の予測値についても、実測値との差分が±20%未満になるようにすることができる。
ここで、制御装置100は、上述したように、スループットの予測値が550ops/secを下回っている場合、VMに割り当てるCPUリソースを増加させる。このため、制御装置100は、スループットが500ops/secを下回ってしまう可能性を、2%程度に抑制することができる。また、制御装置100は、スループットの予測値が600ops/secを下回っている場合、VMに割り当てるCPUリソースを増加させるようにしてもよい。これにより、制御装置100は、スループットが500ops/secを下回ってしまう可能性をさらに低減することができる。
(実施例3における予測処理手順の一例)
次に、図22を用いて、実施例3における予測処理手順の一例について説明する。
図22は、実施例3における予測処理手順の一例を示すフローチャートである。図22において、制御装置100は、それぞれの物理マシンおよびそれぞれの仮想マシンについて、複数のメトリックのそれぞれのメトリックの値を取得する(ステップS2201)。
次に、制御装置100は、予測対象のメトリックとなるスループットと、複数のメトリックのうち予測対象のメトリックとなるスループットを除いた他のメトリックのそれぞれのメトリックとの相関係数を計算する(ステップS2202)。そして、制御装置100は、相関係数が大きい順に、複数のメトリックをソートする(ステップS2203)。
次に、制御装置100は、相関係数の大きい方から所定の順位までのメトリックを、相関係数の大きい変数として記憶する(ステップS2204)。そして、制御装置100は、モデルの作成要求を受け付けると、記憶した相関係数の大きい変数を、モデル作成に用いる変数として設定する(ステップS2205)。
次に、制御装置100は、予測値の計算要求を受け付けると、最新データセットとの間でのL2ノルムが所定の閾値以下になる近傍データセットを検索する(ステップS2206)。そして、制御装置100は、検索した近傍データセットと、設定したモデル作成に用いる変数とに基づいて、モデルを作成する(ステップS2207)。
次に、制御装置100は、作成したモデルに基づいて、それぞれの物理マシンおよびそれぞれの仮想マシンについて、予測対象のメトリックとなるスループットの予測値を計算する(ステップS2208)。そして、制御装置100は、予測処理を終了する。これにより、制御装置100は、JITモデリングによって、VMのCPU使用率の予測値を計算し、データセンターの情報処理装置201の負荷を予測することができる。
(実施例3における制御処理手順の一例)
次に、図23を用いて、実施例3における制御処理手順の一例について説明する。
図23は、実施例3における制御処理手順の一例を示すフローチャートである。図23において、制御装置100は、VMのスループットの予測値が、550ops/secを下回るか否かを判定する(ステップS2301)。ここで、下回らない場合(ステップS2301:No)、制御装置100は、ステップS2303の処理に移行する。
一方で、下回る場合(ステップS2301:Yes)、制御装置100は、下回ると判定したVMに割り当てるCPUの数を増加させる(ステップS2302)。制御装置100は、例えば、超えたと判定したVMに割り当てるCPUの数を1増加させる。
次に、制御装置100は、VMのスループットの予測値が、1000ops/secを超えるか否かを判定する(ステップS2303)。ここで、超えない場合(ステップS2303:No)、制御装置100は、図15のステップS1501の処理に移行する。
一方で、超える場合(ステップS2303:Yes)、制御装置100は、超えると判定したVMに割り当てるCPUの数を減少させる(ステップS2304)。制御装置100は、例えば、超えると判定したVMに割り当てるCPUの数を1減少させる。そして、制御装置100は、図15のステップS1501の処理に移行する。これにより、制御装置100は、SLAを満たしつつデータセンターの消費電力を効率よく低減することができる。
以上説明したように、制御装置100によれば、情報処理装置201が実行するホストOSから入力した運用データに基づき選定された複数の基準データを記憶することができる。また、制御装置100によれば、入力された予測要求に基づいて算出された、予測対象である予測対象基準データと他の基準データとの間の相関をそれぞれ表す複数の相関係数に基づき、複数の基準データから一又は複数の選択基準データを選択することができる。また、制御装置100によれば、選択した一又は複数の選択基準データに基づき、予測対象基準データの予測値を計算することができる。また、制御装置100によれば、計算した予測対象基準データの予測値と予め定められた基準値に基づき、情報処理装置201の計算資源を制御することができる。
これにより、制御装置100は、予測対象である予測対象基準データの予測値を計算し、計算した予測値に基づいてデータセンターの情報処理装置201の計算資源についての負荷を予測することができる。このため、制御装置100は、SLAを満たしつつデータセンターの消費電力を効率よく低減することができるように、情報処理装置201の計算資源を制御することができる。
さらに、制御装置100は、相関係数に基づいて、複数の基準データのうち予測値を計算する際に使用する基準データを選択し、予測値を計算する際にかかる時間を低減することができる。このため、制御装置100は、予測値を計算する際に時間がかかり、データセンターの計算資源についての負荷の変動のタイミングまでに、計算資源の制御が間に合わなくなることを抑制することができる。結果として、制御装置100は、SLAを満たさない期間が発生してしまう可能性を低減することができる。
制御装置100によれば、一又は複数の選択基準データのそれぞれの選択基準データについて、所定の時点の性能値との間でのL2ノルムが所定の閾値以下になる所定の時点より前の時点の性能値を特定することができる。また、制御装置100によれば、特定した性能値に基づいて予測対象基準データの予測値の統計値を計算することができる。これにより、制御装置100は、JITモデリングによって効率よく、予測対象基準データの予測値の統計値を計算することができる。
制御装置100によれば、それぞれの選択基準データについて所定の時点の性能値との間でL2ノルムが所定の閾値以下になる所定の時点より前の時点の性能値を特定することができる。また、制御装置100によれば、特定した性能値に基づいて予測対象基準データの予測値の統計値を計算することができる。これにより、制御装置100は、JITモデリングによって効率よく、予測対象基準データの予測値の統計値を計算することができる。
制御装置100によれば、基準値として、利用者が求める性能値、又は利用者が求める性能値より性能が高いことを示すようにマージンを加えた性能値を採用することができる。また、制御装置100によれば、計算した予測対象基準データの予測値が、基準値よりも性能が低いことを示す性能値である場合、VMに割り当てる情報処理装置201の計算資源を増加させることができる。これにより、制御装置100は、予測値に基づいて、利用者が求める性能値を確保することが難しくなる可能性が比較的大きくなった場合に、VMに割り当てる情報処理装置201の計算資源を増加させ、SLAを満たしやすくすることができる。
制御装置100によれば、基準値として、利用者が求める性能値よりも性能が高いことを示し、かつ現在割り当て中である計算資源のうち一定以上の計算資源を使用しなくても確保することができる性能値を採用することができる。また、制御装置100によれば、計算した予測対象基準データの予測値が、基準値よりも性能が高いことを示す性能値である場合、VMに割り当てる情報処理装置201の計算資源を減少させることができる。これにより、制御装置100は、データセンターの消費電力の低減化を図ることができる。
制御装置100によれば、情報処理装置201の計算資源の制御を行った結果、情報処理装置201の計算資源が割り当てられたVMがなければ、情報処理装置201への電源供給の停止を行うことができる。これにより、制御装置100は、データセンターの消費電力の低減化を図ることができる。
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)複数の計算資源を有する情報処理装置を管理する制御装置において、
前記情報処理装置が実行するホストOSから入力した運用データに基づき選定された複数の基準データを記憶する記憶部と、
入力された予測要求に基づいて算出された、予測対象である予測対象基準データと他の基準データとの間の相関をそれぞれ表す複数の相関係数に基づき、前記複数の基準データから一又は複数の選択基準データを選択する選択部と、
前記選択部が選択した前記一又は複数の選択基準データに基づき、前記予測対象基準データの予測値を計算する計算部と、
前記計算部が計算した前記予測対象基準データの予測値と予め定められた基準値に基づき、前記情報処理装置の計算資源を制御する制御部と、
を有することを特徴とする制御装置。
(付記2)前記基準データは複数の時点の各々における性能値を含み、
前記計算部は、
前記一又は複数の選択基準データのそれぞれの選択基準データについて所定の時点の性能値との間でのL2ノルムが所定の閾値以下になる前記所定の時点より前の時点の性能値を特定し、特定した前記性能値に基づいて前記予測対象基準データの予測値の統計値を計算する、ことを特徴とする付記1に記載の制御装置。
(付記3)前記計算部は、
前記それぞれの選択基準データについて所定の時点の性能値との間でL2ノルムが所定の閾値以下になる前記所定の時点より前の時点の性能値を特定し、特定した前記性能値に基づいて前記予測対象基準データの予測値の統計値を計算する、ことを特徴とする付記2に記載の制御装置。
(付記4)前記情報処理装置の計算資源は仮想マシンに割り当て可能な計算資源であり、
前記基準値は予め定められた情報処理装置の、前記仮想マシンに関する状態を示す性能値であり、
前記制御部は、
前記計算部が計算した前記予測対象基準データの予測値が、前記基準値よりも性能が低いことを示す性能値である場合、前記仮想マシンに割り当てる情報処理装置の計算資源を増加させる、ことを特徴とする付記1〜3のいずれか一つに記載の制御装置。
(付記5)前記情報処理装置の計算資源は仮想マシンに割り当て可能な計算資源であり、
前記基準値は予め定められた情報処理装置の、前記仮想マシンに関する状態を示す性能値であり、
前記制御部は、
前記計算部が計算した前記予測対象基準データの予測値が、前記基準値よりも性能が高いことを示す性能値である場合、前記仮想マシンに割り当てる情報処理装置の計算資源を減少させる、ことを特徴とする付記1〜4のいずれか一つに記載の制御装置。
(付記6)前記制御部は、
前記情報処理装置の計算資源の制御を行った結果、前記情報処理装置の計算資源が割り当てられた仮想マシンがなければ、前記情報処理装置への電源供給の停止を行う、ことを特徴とする付記4又は5に記載の制御装置。
(付記7)複数の計算資源を有する情報処理装置の制御方法において、
前記情報処理装置が実行するホストOSから入力した運用データに基づき選定された複数の基準データを記憶する記憶部を有する制御装置が、
入力された予測要求に基づいて算出された、予測対象である予測対象基準データと他の基準データとの間の相関をそれぞれ表す複数の相関係数に基づき、前記複数の基準データから一又は複数の選択基準データを選択し、
選択した前記一又は複数の選択基準データに基づき、前記予測対象基準データの予測値を計算し、
計算した前記予測対象基準データの予測値と予め定められた基準値に基づき、前記情報処理装置の計算資源を制御する、
処理を実行することを特徴とする情報処理装置の制御方法。
(付記8)複数の計算資源を有する情報処理装置の制御プログラムにおいて、
前記情報処理装置が実行するホストOSから入力した運用データに基づき選定された複数の基準データを記憶する記憶部を有する制御装置に、
入力された予測要求に基づいて算出された、予測対象である予測対象基準データと他の基準データとの間の相関をそれぞれ表す複数の相関係数に基づき、前記複数の基準データから一又は複数の選択基準データを選択し、
選択した前記一又は複数の選択基準データに基づき、前記予測対象基準データの予測値を計算し、
計算した前記予測対象基準データの予測値と予め定められた基準値に基づき、前記情報処理装置の計算資源を制御する、
処理を実行させることを特徴とする情報処理装置の制御プログラム。