(57)【要約】【課題】仮想サーバがユーザからのサービス要求に応じて提供するサービスに悪影響や無駄が生じないように、仮想サーバの増設及び減設を行う。【解決手段】仮想サーバの増設及び減設を行うオートスケール処理装置１０が、学習期間において、仮想サーバがサービス要求に応じた処理時のサービス負荷を計測した時系列データを用い、この時系列データの時刻毎のサービス負荷に対する最小二乗法による傾きと切片を有する１次関数のモデルパラメータを求めるモデルパラメータ学習部３３と、モデルパラメータの傾き及び切片に基づき、計測の時刻を過ぎた将来のサービス負荷である予測負荷データを求める負荷予測部３４と、予測負荷データが仮想サーバ当りの処理可能負荷の最大値を超えて増加する際に、予測負荷データが当該最大値となる時刻から、仮想サーバの増設に掛かる増設処理時間を減算して仮想サーバの増設開始時刻を求める増減設判断部３５とを備える。【選択図】図３
2019028538.tif 000002
【特許請求の範囲】
【請求項１】
クラウドコンピューティング環境上に構築される仮想サーバの増設及び減設を行うオートスケール処理装置であって、
予め定められた学習期間において、稼働中の仮想サーバが外部からのサービス要求に応じた処理を行う際のサービス負荷を所定の時刻毎に計測した時系列データを用い、この時系列データの時刻毎のサービス負荷を将来予測するためのモデルパラメータを算出する学習部と、
前記モデルパラメータに基づき、前記計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求める負荷予測部と、
前記負荷予測部で求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を超えて増加する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの増設に掛かる増設処理時間を減算して、仮想サーバの増設開始時刻を求める増減設判断部と
を備えることを特徴とするオートスケール処理装置。
【請求項２】
前記学習部は、前記仮想サーバのサービス負荷の計測終了の自己回帰による第１日前までの学習データの値と、過去の影響が残るかを示す移動平均による第２日前までの所定の成分と、の影響により予測する将来の値である負荷の推定値を自己回帰移動平均モデルを用いて求め、
前記負荷予測部は、前記求められた推定値に基づき、前記計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求める
ことを特徴とする請求項１に記載のオートスケール処理装置。
【請求項３】
前記学習部が用いる前記時系列データの時刻毎のサービス負荷に係る、仮想サーバのＣＰＵ使用率又はメモリ使用率に対応するＶＭ負荷と、１秒当りに遣り取りしたパケット数又はバイト数に対応するＮＷ負荷と、仮想サーバの記憶媒体の単位時間当たりの入出力負荷に対応するＤＩＳＫ負荷とについての各負荷を正規化又は対数化するデータ前処理部
を更に備えることを特徴とする請求項１又は２に記載のオートスケール処理装置。
【請求項４】
前記増減設判断部は、前記負荷予測部で求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を下回って減少する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの減設に掛かる減設処理時間を減算して、仮想サーバの減設開始時刻を求める
ことを特徴とする請求項１〜３の何れか１項に記載のオートスケール処理装置。
【請求項５】
前記仮想サーバ当りの処理可能負荷に、当該処理可能負荷を大きくする係数を乗算し、この乗算で得られた仮想サーバ当りの処理可能負荷を保存部に保存する算出部を更に備え、
前記増減設判断部は、前記増設開始時刻又は前記減設開始時刻を求める際に、前記保存された仮想サーバ当りの処理可能負荷を用いる
ことを特徴とする請求項４に記載のオートスケール処理装置。
【請求項６】
前記増設開始時刻又は前記減設開始時刻となった時に、前記仮想サーバの増設又は減設を開始する制御を行う増減設処理部
を更に備えることを特徴とする請求項４又は５に記載のオートスケール処理装置。
【請求項７】
クラウドコンピューティング環境上に構築される仮想サーバの増設及び減設を行うオートスケール処理装置のオートスケール処理方法であって、
前記オートスケール処理装置は、
予め定められた学習期間において、稼働中の仮想サーバが外部からのサービス要求に応じた処理を行う際のサービス負荷を所定の時刻毎に計測した時系列データを用い、この時系列データの時刻毎のサービス負荷に対する最小二乗法による傾きと切片を有する１次関数のモデルパラメータを求めるステップと、
前記モデルパラメータの傾き及び切片に基づき、前記計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求めるステップと、
前記予測して求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を超えて増加する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの増設に掛かる増設処理時間を減算して、仮想サーバの増設開始時刻を求めるステップと、
前記予測して求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を下回って減少する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの減設に掛かる減設処理時間を減算して、仮想サーバの減設開始時刻を求めるステップと
を実行することを特徴とするオートスケール処理方法。
【請求項８】
クラウドコンピューティング環境上に構築される仮想サーバの増設及び減設を行うオートスケール処理装置としてのコンピュータを、
予め定められた学習期間において、稼働中の仮想サーバが外部からのサービス要求に応じた処理を行う際のサービス負荷を所定の時刻毎に計測した時系列データを用い、この時系列データの時刻毎のサービス負荷に対する最小二乗法による傾きと切片を有する１次関数のモデルパラメータを求める手段、
前記モデルパラメータの傾き及び切片に基づき、前記計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求める手段、
前記予測して求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を超えて増加する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの増設に掛かる増設処理時間を減算して、仮想サーバの増設開始時刻を求める手段、
前記予測して求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を下回って減少する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの減設に掛かる減設処理時間を減算して、仮想サーバの減設開始時刻を求める手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウドコンピューティング環境上に構築されるリソースとしての仮想サーバの増設及び減設を行うオートスケール処理装置、オートスケール方法及びプログラムに関する。
【背景技術】
【０００２】
従来、ユーザがネットワーク（ＮＷ）経由で上記の仮想サーバ（図示せず）が実行するサービスを利用する場合について、図１３（ａ）及び（ｂ）を参照して説明する。但し、仮想サーバが行うサービスは、ユーザのサービス要求に応じた計算等の処理である。
【０００３】
図１３（ａ）及び（ｂ）の縦軸は、サービス要求に応じたサービスを仮想サーバが実行する際に掛かる負荷（サービス負荷という）の量を表すサービス負荷量Ｌである。横軸は時刻ｔである。縦軸方向の双方向矢印Ｌａは、１台分の仮想サーバがサービス要求に応じたサービスを処理可能な負荷量（処理可能負荷量）である。縦軸方向の双方向矢印Ｌｂは、２台分の仮想サーバの処理可能負荷量である。処理可能負荷量Ｌａの最大値がＬ１であり、これに処理可能負荷量Ｌｂの最大値がＬ２である。曲線ｋ１，ｋ２は、仮想サーバのサービス負荷を表す。
【０００４】
図１３（ａ）に示すように、時刻ｔ１と時刻ｔ２間の時間幅ｔｍ１において、サービス負荷ｋ１が仮想サーバの処理可能負荷量Ｌａを超えた場合、その時間幅ｔｍ１では１台の仮想サーバでサービスを処理できなくなる。このため、サービス品質の劣化が生じる。
【０００５】
図１３（ｂ）に示すように、２台の仮想サーバが稼働している場合に、サービス負荷ｋ２が２台分の処理可能負荷量の最大値Ｌ２よりも低いとする。この場合、サービス負荷ｋ２の最大値Ｌ０．７と２台分の処理可能負荷量の最大値Ｌ２との差分Ｓ１が、仮想サーバの無駄な処理能力量となる。これが過剰なリソースとなるので、費用対効果が悪くなる。
【０００６】
そこで、サービス品質の向上と費用対効果の向上とを両立させるために、仮想サーバのサービス負荷を監視し、この監視結果に応じて仮想サーバの増設又は減設を自動的に実行するオートスケール処理が行われている。このオートスケール処理について、図１４を参照して説明する。なお、サービス負荷の監視は、仮想サーバの仮想ＣＰＵ(Central Processing Unit)の使用率等を検知して行う。
【０００７】
図１４において、曲線ｋ３は１台分又は２台分の仮想サーバのサービス負荷である。なお、１台目を第１仮想サーバ、２台目を第２仮想サーバという。Ｌｃ，Ｌｃは、各々、１台分の仮想サーバの処理可能負荷量である。サービス負荷ｋ３は、立ち上がり途中の時刻ｔ３で第１仮想サーバの処理可能負荷量Ｌｃの最大値Ｌ１１と交差する。この交差する点を交点Ｐ１とする。この後、サービス負荷ｋ３は、更に立ち上がったのち立ち下がり、この立ち下がり途中の時刻ｔ４で最大値Ｌ１１と交差する。この交差する点を交点Ｐ２とする。この後、サービス負荷ｋ３は、立ち下がったのち立ち上がり、この立ち上がり途中の時刻ｔ５で最大値Ｌ１１と交差する。この交差する点を交点Ｐ３とする。
【０００８】
このようにサービス負荷ｋ３が変化する場合、時刻ｔ０からｔ３間の時間幅ｔｍ２では、サービス負荷ｋ３が第１仮想サーバの処理可能負荷量Ｌｃの最大値Ｌ１１を超えないので、１台の仮想サーバでサービスを提供できる。その後、サービス負荷ｋ３が交点Ｐ１を超えると、第２仮想サーバが増設されて稼働する。この第２仮想サーバの稼働により、交点Ｐ１を超えるサービス負荷ｋ３に対して対応可能となる。
【０００９】
交点Ｐ１を超えた時刻から交点Ｐ２の時刻までの時間幅ｔｍ３では、第１及び第２仮想サーバが稼働する。その後、サービス負荷ｋ３が立ち下がって交点Ｐ２に達すると第２仮想サーバが減設され、１台の第１仮想サーバでサービスを提供する。この１台でのサービス提供は、時刻ｔ４とｔ５間の時間幅ｔｍ４において実行される。その後、サービス負荷ｋ３が交点Ｐ３を超えると、第２仮想サーバが増設されて稼働し、この稼働により交点Ｐ３を超えたサービス負荷ｋ３に対して対応可能となる。このようにオンデマンドで仮想サーバの増設及び減設が行われて、ユーザの変化するサービス要求に対して所定のサービスが提供されている。この種の技術として、例えば非特許文献１のものがある。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】“Amazon web services AWS Documentation Auto Scaling ユーザーガイド Auto Scaling”,[online],[平成29年7月10日検索],インターネット<URL:http://docs.aws.amazon.com/ja_jp/autoscaling/latest/userguide/WhatIsAutoScaling.html>
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述したオートスケール処理において、仮想サーバを増設する場合、仮想サーバの立ち上げやアプリケーションの構築等の増設処理時間が必要となる。この増設処理時間の間は増設対象の仮想サーバがサービスを提供できないので、図１５（ａ）に示すように、第１仮想サーバの処理可能負荷量Ｌｃの最大値Ｌ１１の９０％〜９５％付近にオートスケール閾値（閾値ともいう）ｔｈ１を設定する。そして、サービス負荷ｋ３が、時刻ｔ２ａにおいて、閾値ｔｈ１となった時に、第２仮想サーバの増設を開始するようになっている。この増設開始点をＰａとする。また、増設処理時間を双方向矢印ｔａで示す。
【００１２】
増設開始点Ｐａから増設処理時間ｔａを経過した増設完了時刻ｔ３ｂにおいて、第２仮想サーバが設定されて稼働する。その増設処理時間ｔａの間に、稼働中の第１仮想サーバがサービス負荷ｋ３に応じたサービスを提供する。しかし、サービス負荷ｋ３が最大値Ｌ１１となる時刻を越えた時刻ｔ３ａから増設完了時刻ｔ３ｂの時間幅（サービス悪影響時間という）ｔｂにおいて、第２仮想サーバが稼働していないので、サービス提供に悪影響が生じる問題がある。
【００１３】
そこで、閾値ｔｈ１を、図１５（ｂ）に線ｔｈ２で示すように更に下げて増設開始点Ｐａを早めることも行われている。この場合、サービス負荷ｋ３が、時刻ｔ１ａにおいて閾値ｔｈ２となった増設開始点Ｐａから増設処理時間ｔａを経過した時刻ｔ１ｂになると、第２仮想サーバが増設されて稼働する。この後、サービス負荷ｋ３が最大値Ｌ１１を超えない状態で立ち下がり、時刻ｔ１ｃで閾値ｔｈ２を下回ったとすると、第２仮想サーバの減設が開始される。この減設開始点をＰｂとする。この際、時刻ｔ１ｂからｔ１ｃの間の時間幅（無駄処理時間という）ｔｃでは、サービス負荷ｋ３が１台分の仮想サーバの最大値Ｌ１１を超えていないにも拘らず、２台の仮想サーバが稼働してしまうので、１台の仮想サーバが無駄となる問題がある。
【００１４】
本発明は、このような事情に鑑みてなされたものであり、仮想サーバがユーザからのサービス要求に応じて提供するサービスに悪影響や無駄が生じないように、仮想サーバの増設及び減設を行うことができるオートスケール処理装置、オートスケール方法及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するための手段として、請求項１に係る発明は、クラウドコンピューティング環境上に構築される仮想サーバの増設及び減設を行うオートスケール処理装置であって、予め定められた学習期間において、稼働中の仮想サーバが外部からのサービス要求に応じた処理を行う際のサービス負荷を所定の時刻毎に計測した時系列データを用い、この時系列データの時刻毎のサービス負荷を将来予測するためのモデルパラメータを算出する学習部と、前記モデルパラメータに基づき、前記計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求める負荷予測部と、前記負荷予測部で求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を超えて増加する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの増設に掛かる増設処理時間を減算して、仮想サーバの増設開始時刻を求める増減設判断部とを備えることを特徴とするオートスケール処理装置である。
【００１６】
この構成によれば、例えば１台目の第１仮想サーバが所定の学習期間において稼働した際のサービス負荷から将来予測のモデルパラメータが求められ、このモデルパラメータから将来のサービス負荷である予測負荷データが求められ、この予測負荷データから第２仮想サーバの増設開始時刻が求められる。この増設開始時刻で２台目の第２仮想サーバの増設が開始されると、増設処理時間を経過して第１仮想サーバの処理可能負荷の最大値となった時刻に、第２仮想サーバの増設が完了する。
【００１７】
従って、第２仮想サーバの増設完了時刻以降にサービス要求が増加して行く場合、第２仮想サーバは増設済みなので、第１及び第２仮想サーバによって、増加するサービス要求を無駄なく処理することができる。また、第２仮想サーバの増設完了時刻は、第１仮想サーバのサービス負荷が処理可能負荷の最大値となったタイミングなので、このタイミングで第２仮想サーバの増設が完了すれば、第１仮想サーバのサービス負荷が最大値を超えたにも拘らず、第２仮想サーバが未稼働であるといったことを防止することができる。従って、仮想サーバがユーザからのサービス要求に応じて提供するサービスに悪影響や無駄が生じないように、仮想サーバの増設を行うことができる。
【００１８】
請求項２に係る発明は、前記学習部は、前記仮想サーバのサービス負荷の計測終了の自己回帰による第１日前までの学習データの値と、過去の影響が残るかを示す移動平均による第２日前までの所定の成分と、の影響により予測する将来の値である負荷の推定値を自己回帰移動平均モデルを用いて求め、前記負荷予測部は、前記求められた推定値に基づき、前記計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求めることを特徴とする請求項１に記載のオートスケール処理装置である。
【００１９】
この構成によれば、学習部は、自己回帰移動平均モデルを用いて負荷の推定値を求め、負荷予測部は、その求められた推定値に基づき、将来のサービス負荷である予測負荷データを求めることができる。
【００２０】
請求項３に係る発明は、前記学習部が用いる前記時系列データの時刻毎のサービス負荷に係る、仮想サーバのＣＰＵ使用率又はメモリ使用率に対応するＶＭ負荷と、１秒当りに遣り取りしたパケット数又はバイト数に対応するＮＷ負荷と、仮想サーバの記憶媒体の単位時間当たりの入出力負荷に対応するＤＩＳＫ負荷とについての各負荷を正規化又は対数化するデータ前処理部を更に備えることを特徴とする請求項１又は２に記載のオートスケール処理装置である。
【００２１】
この構成によれば、ＶＭ負荷、ＮＷ負荷及びＤＩＳＫ負荷の各負荷の各々異なる単位のスケールを、同じスケールに揃えることができる。
【００２２】
請求項４に係る発明は、前記増減設判断部は、前記負荷予測部で求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を下回って減少する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの減設に掛かる減設処理時間を減算して、仮想サーバの減設開始時刻を求めることを特徴とする請求項１〜３の何れか１項に記載のオートスケール処理装置である。
【００２３】
この構成によれば、例えば２台の第１及び第２仮想サーバが所定の学習期間において稼働した際のサービス負荷から１次関数のモデルパラメータが求められ、このモデルパラメータから将来のサービス負荷である予測負荷データが求められ、この予測負荷データから第２仮想サーバの減設開始時刻が求められる。この減設開始時刻で第２仮想サーバの減設が開始されると、減設処理時間を経過して第１仮想サーバの処理可能負荷の最大値となった時刻に、第２仮想サーバの減設が完了する。つまり、サービス要求に対応するサービス負荷が１台の仮想サーバのみの負荷となっているにも拘らず、２台の仮想サーバが稼働しているといった無駄を防止することができる。従って、仮想サーバがユーザからのサービス要求に応じて提供するサービスに無駄が生じないように、仮想サーバの減設を行うことができる。
【００２４】
請求項５に係る発明は、前記仮想サーバ当りの処理可能負荷に、当該処理可能負荷を大きくする係数を乗算し、この乗算で得られた仮想サーバ当りの処理可能負荷を保存部に保存する算出部を更に備え、前記増減設判断部は、前記増設開始時刻又は前記減設開始時刻を求める際に、前記保存された仮想サーバ当りの処理可能負荷を用いることを特徴とする請求項４に記載のオートスケール処理装置である。
【００２５】
この構成によれば、増減設判断部が、元の値よりも大きくなった仮想サーバ当りの処理可能負荷を用いて、仮想サーバの増設開始時刻又は減設開始時刻を求めるようになる。この際、仮想サーバ当りの処理可能負荷が大きくなるので、仮想サーバのサービス負荷が、元の処理可能負荷付近で増減しても、この増減を吸収できる。言い換えれば、増設又は減設の処理開始が遅くなるので、細かい品質劣化に対して敏感に増設又は減設しなくなる。このため、仮想サーバの増設又は減設の動作を安定させることができる。よって、処理完了時間の変動が吸収される。
【００２６】
請求項６に係る発明は、前記増設開始時刻又は前記減設開始時刻となった時に、前記仮想サーバの増設又は減設を開始する制御を行う増減設処理部を更に備えることを特徴とする請求項４又は５に記載のオートスケール処理装置である。
【００２７】
この構成によれば、増減設判断部で増設開始時刻又は減設開始時刻が求められた後、増設開始時刻又は減設開始時刻となった時に、増減設処理部の制御により、仮想サーバの増設又は減設を実行することができる。
【００２８】
請求項７に係る発明は、クラウドコンピューティング環境上に構築される仮想サーバの増設及び減設を行うオートスケール処理装置のオートスケール処理方法であって、前記オートスケール処理装置は、予め定められた学習期間において、稼働中の仮想サーバが外部からのサービス要求に応じた処理を行う際のサービス負荷を所定の時刻毎に計測した時系列データを用い、この時系列データの時刻毎のサービス負荷に対する最小二乗法による傾きと切片を有する１次関数のモデルパラメータを求めるステップと、前記モデルパラメータの傾き及び切片に基づき、前記計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求めるステップと、前記予測して求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を超えて増加する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの増設に掛かる増設処理時間を減算して、仮想サーバの増設開始時刻を求めるステップと、前記予測して求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を下回って減少する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの減設に掛かる減設処理時間を減算して、仮想サーバの減設開始時刻を求めるステップとを実行することを特徴とするオートスケール処理方法である。
【００２９】
請求項８に係る発明は、クラウドコンピューティング環境上に構築される仮想サーバの増設及び減設を行うオートスケール処理装置としてのコンピュータを、予め定められた学習期間において、稼働中の仮想サーバが外部からのサービス要求に応じた処理を行う際のサービス負荷を所定の時刻毎に計測した時系列データを用い、この時系列データの時刻毎のサービス負荷に対する最小二乗法による傾きと切片を有する１次関数のモデルパラメータを求める手段、前記モデルパラメータの傾き及び切片に基づき、前記計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求める手段、前記予測して求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を超えて増加する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの増設に掛かる増設処理時間を減算して、仮想サーバの増設開始時刻を求める手段、前記予測して求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を下回って減少する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの減設に掛かる減設処理時間を減算して、仮想サーバの減設開始時刻を求める手段として機能させるためのプログラムである。
【００３０】
上記方法及び上記プログラムによれば、例えば１台目の第１仮想サーバが所定の学習期間において稼働した際のサービス負荷から１次関数のモデルパラメータが求められ、このモデルパラメータから将来のサービス負荷である予測負荷データが求められ、この予測負荷データから第２仮想サーバの増設開始時刻が求められる。この増設開始時刻で２台目の第２仮想サーバの増設が開始されると、増設処理時間を経過して第１仮想サーバの処理可能負荷の最大値となった時刻に、第２仮想サーバの増設が完了する。
【００３１】
従って、第２仮想サーバの増設完了時刻以降にサービス要求が増加して行く場合、第２仮想サーバは増設済みなので、第１及び第２仮想サーバによって、増加するサービス要求を無駄なく処理することができる。また、第２仮想サーバの増設完了時刻は、第１仮想サーバのサービス負荷が処理可能負荷の最大値となったタイミングなので、このタイミングで第２仮想サーバの増設が完了すれば、第１仮想サーバのサービス負荷が最大値を超えたにも拘らず、第２仮想サーバが未稼働であるといったことを防止することができる。従って、仮想サーバがユーザからのサービス要求に応じて提供するサービスに悪影響や無駄が生じないように、仮想サーバの増設を行うことができる。
【００３２】
また、例えば２台の第１及び第２仮想サーバが所定の学習期間において稼働した際のサービス負荷から１次関数のモデルパラメータが求められ、このモデルパラメータから将来のサービス負荷である予測負荷データが求められ、この予測負荷データから第２仮想サーバの減設開始時刻が求められる。この減設開始時刻で第２仮想サーバの減設が開始されると、減設処理時間を経過して第１仮想サーバの処理可能負荷の最大値となった時刻に、第２仮想サーバの減設が完了する。つまり、サービス要求に対応するサービス負荷が１台の仮想サーバのみの負荷となっているにも拘らず、２台の仮想サーバが稼働しているといった無駄を防止することができる。従って、仮想サーバがユーザからのサービス要求に応じて提供するサービスに無駄が生じないように、仮想サーバの減設を行うことができる。
【発明の効果】
【００３３】
本発明によれば、仮想サーバがユーザからのサービス要求に応じて提供するサービスに悪影響や無駄が生じないように、仮想サーバの増設及び減設を行うオートスケール処理装置、オートスケール方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明のオートスケール処理装置における仮想サーバの増設時の特徴を説明するためのグラフである。
【図２】本発明のオートスケール処理装置における仮想サーバの減設時の特徴を説明するためのグラフである。
【図３】本発明の実施形態に係るオートスケール処理装置の構成を示すブロック図である。
【図４】（ａ）サービス負荷の時系列データＤ１の一例を示す図、（ｂ）増減設処理時間Ｄ２の一例を示す図、（ｃ）仮想サーバ当りの処理可能負荷データの一例を示す図、（ｄ）モデル学習期間Ｄ４の一例を示す図、（ｅ）モデル更新フラグＤ５の一例を示す図である。
【図５】処理可能負荷算出部の処理完了時間のブレ（変動）を吸収する計算を説明するための図である。
【図６】（ａ）サービス負荷の時系列データＤ１の各時刻ｔにおけるＶＭ負荷、ＮＷ負荷及びＤＩＳＫ負荷の各負荷の値の一例を示す図、（ｂ）時刻に対するサービス負荷の変化を示すグラフ、（ｃ）（ａ）に示す各負荷を正規化した値を示す図、（ｄ）時刻に対応する（ｃ）に示すサービス負荷の変化を示すグラフである。
【図７】計測されたサービス負荷である学習データから求めたモデルパラメータｙを示すグラフである。
【図８】モデルパラメータｙから予測して求めた、増加する予測負荷データｙ１ｊを示すグラフである。
【図９】モデルパラメータｙから予測して求めた、減少する予測負荷データｙ２ｊを示すグラフである。
【図１０】第２仮想サーバの増設の制御動作を説明するフローチャートである。
【図１１】第２仮想サーバの減設の制御動作を説明するフローチャートである。
【図１２】モデルパラメータ学習部によるモデルパラメータ学習の他の例を説明するための図である。
【図１３】（ａ）従来のサービス要求に応じたサービスを仮想サーバが実行する際に掛かるサービス負荷の量を表す第１グラフ、（ｂ）第２グラフである。
【図１４】オートスケール処理の説明図である。
【図１５】（ａ）オートスケール処理により仮想サーバを増設する際のサービスの悪影響を示す図、（ｂ）オートスケール処理により仮想サーバを減設する際のサービスの無駄を示す図である。
【発明を実施するための形態】
【００３５】
以下、本発明の実施形態を、図面を参照して説明する。
最初に、本発明のオートスケール処理装置（処理装置ともいう）の特徴を、図１及び図２を参照して説明する。図１及び図２の縦軸は、ユーザのサービス要求に応じたサービスを、図示せぬ第１及び第２仮想サーバの双方又は一方（第１仮想サーバ）が実行する際に掛かる負荷（サービス負荷）を表すサービス負荷量Ｌである。横軸は時刻ｔである。但し、仮想サーバが行うサービスは、ユーザのサービス要求に応じた計算等の処理である。また、仮想サーバがユーザのサービス要求に応じたサービスを実行することを、仮想サーバがサービスを実行するとも表現する。
【００３６】
縦軸方向の双方向矢印Ｌｃ１は、第１仮想サーバがサービスを処理可能な負荷量（処理可能負荷量）である。この処理可能負荷量Ｌｃ１の最大値はＬ１１である。双方向矢印Ｌｃ２は、第２仮想サーバの処理可能負荷量であり、第１仮想サーバと同じである。第１及び第２仮想サーバを併せた処理可能負荷量Ｌｃ１，Ｌｃ２の最大値はＬ２２となる。図１に示す実線曲線ｈ１は仮想サーバがサービスを実際に行っている際のサービス実負荷（実負荷ともいう）であり、破線曲線ｊ１は実負荷を基に負荷を予測したサービス予測負荷（予測負荷ともいう）である。図２に示す実線曲線ｈ２は実負荷であり、破線曲線ｊ２は予測負荷である。
【００３７】
オートスケール処理装置は、図１に示す時刻ｔ１１〜ｔ１２間において、第１仮想サーバがサービスを実行中に発生する実負荷ｈ１を計測する。次に、処理装置は、その計測された実負荷ｈ１に基づき、実負荷ｈ１を計測した時刻よりも先の時刻の負荷（将来の負荷）である予測負荷ｊ１を予測して求める。次に、処理装置は、実負荷ｈ１が終端する時刻ｔ１２よりも将来において、予測負荷ｊ１が第１仮想サーバの処理可能負荷量Ｌｃ１の最大値Ｌ１１を超える場合に、予測負荷ｊ１と最大値Ｌ１１とが交差する時刻ｔ１４を求める。
【００３８】
次に、処理装置は、仮想サーバの増設に掛かる増設処理時間ｔａを、先に求めた時刻ｔ１４から差し引き、時刻ｔ１３を求める。この時刻ｔ１３上の予測負荷ｊ１の位置が第２仮想サーバの増設を開始する増設開始点Ｐ４となる。この増設開始点Ｐ４から増設処理時間ｔａが経過した時刻ｔ１４が増設完了点Ｐ５となる。この増設完了点Ｐ５は、第１仮想サーバの処理可能負荷量Ｌｃ１の最大値Ｌ１１であり、言い換えれば、第２仮想サーバの稼働可能位置との境界となる。
【００３９】
処理装置は、ユーザのサービス要求に応じてサービスを実行する際に、時刻ｔ１３の増設開始点Ｐ４で、第２仮想サーバの増設を開始する。この開始以降、増設処理時間ｔａが経過した増設完了点Ｐ５で第２仮想サーバが増設されて稼働する。この際、時刻ｔ１１〜ｔ１４間の時間幅ｔｍ５では、第１仮想サーバのみが稼働する。時刻ｔ１４以降で予測負荷ｊ１が最大値Ｌ１１以下とならない状態の時間幅ｔｍ６では、第２仮想サーバも稼働して２台の仮想サーバでサービスを実行する。また、増設完了点Ｐ５は、第１仮想サーバのサービス負荷が処理可能負荷量Ｌｃ１の最大値Ｌ１１となったタイミングなので、このタイミングで第２仮想サーバの増設が完了すれば、第１仮想サーバのサービス負荷が最大値Ｌ１１を超えたにも拘らず、第２仮想サーバが未稼働であるといったことを防止可能となる。
【００４０】
次に、処理装置は、図２に示す時刻ｔ２１〜ｔ２２間において、ユーザのサービス要求に応じたサービスを２台の仮想サーバで実行中に掛かる実負荷ｈ２を計測する。次に、処理装置は、その計測した実負荷ｈ２に基づき、実負荷ｈ２を計測した時刻よりも将来の負荷である予測負荷ｊ２を予測して求める。次に、処理装置は、実負荷ｈ２が無くなる時刻ｔ２２よりも将来において、予測負荷ｊ２が第１仮想サーバの処理可能負荷量Ｌｃ１の最大値Ｌ１１以下となる時に、予測負荷ｊ２と最大値Ｌ１１とが交差する時刻ｔ２４を求める。
【００４１】
次に、処理装置は、第２仮想サーバの減設に掛かる時間である減設処理時間ｔｃを、先に求めた時刻ｔ２４から差し引き、時刻ｔ２３を求める。この時刻ｔ２３上の予測負荷ｊ２の位置が第２仮想サーバの減設を開始する減設開始点Ｐ７となる。この減設開始点Ｐ７から減設処理時間ｔｃが経過した時刻ｔ２４が減設完了点Ｐ８となる。
【００４２】
この後、処理装置は、ユーザのサービス要求に応じてサービスを実行する際に、実負荷ｈ２が無くなる時刻ｔ２２よりも将来の時刻ｔ２３の減設開始点Ｐ７で、第２仮想サーバの減設を開始する。この開始以降、減設処理時間ｔｃが経過した減設完了点Ｐ８で第２仮想サーバが減設される。つまり、時刻ｔ２１〜ｔ２４間の時間幅ｔｍ７では、２台の仮想サーバが稼働する。時刻ｔ２４以降で予測負荷ｊ２が最大値Ｌ１１を超えない状態の時間幅ｔｍ８では、第１仮想サーバのみが稼働してサービスを実行する。また、減設完了点Ｐ８は、予測負荷ｊ２が第１仮想サーバの処理可能負荷量Ｌｃ１の最大値Ｌ１１以下となったタイミングなので、このタイミングで第２仮想サーバの減設が完了すれば、無駄なく第２仮想サーバの減設が可能となる。つまり、予測負荷ｊ２が第１仮想サーバのみの負荷となっているにも拘らず、２台の仮想サーバが稼働している無駄を防止可能となる。
【００４３】
＜実施形態の構成＞
次に、図３を参照して、本発明の実施形態に係るオートスケール処理装置について説明する。図３は本実施形態のオートスケール処理装置１０の構成を示すブロック図である。この処理装置１０は、クラウドコンピューティング環境６０に構築される第１仮想サーバ６１及び第２仮想サーバ６２の増設及び減設を自動的に行うものであり、入出力部２０と、処理部３０と、記憶部４０とを備えて構成されている。
【００４４】
入出力部２０は、外部の入力装置５１が接続された入力部２１と、外部の図示せぬコンピュータ等へログ情報５２を出力する出力部２２とを備える。
【００４５】
処理部３０は、処理可能負荷算出部３１と、データ前処理部３２と、モデルパラメータ学習部３３と、負荷予測部３４と、増減設判断部３５と、増減設処理部３６とを備える。
【００４６】
記憶部４０は、負荷データ保存部４１と、学習結果保存部４２と、予測負荷データ保存部４３と、処理可能負荷データ保存部４４と、増減設処理時間保存部４５とを備える。なお、これらを単に保存部４１〜４５とも称す。また、保存部４１〜４５は、請求項記載の保存部を構成する。
【００４７】
入力装置５１は、第１仮想サーバ６１及び第２仮想サーバ６２が稼働中に、そのサービス負荷を監視（計測）し、入力部２１へ入力する。また、入力装置５１は、後述する増減設処理時間、仮想サーバ当りの処理可能負荷データ、モデル学習期間及びモデル更新フラグを、入力部２１へ入力する。
【００４８】
入力部２１は、入力装置５１で監視されるサービス負荷（上記実負荷に対応）の時系列データＤ１を、データ前処理部３２へ出力する。また、入力部２１は、増減設処理時間Ｄ２を増減設処理時間保存部４５へ出力し、仮想サーバ当りの処理可能負荷データＤ３を処理可能負荷算出部３１へ、モデル学習期間Ｄ４及びモデル更新フラグＤ５をモデルパラメータ学習部３３へ出力する。
【００４９】
サービス負荷の時系列データＤ１は、一例を図４（ａ）に示すように、サービス負荷のサンプリングの時刻ｔに、ＶＭ(Virtual Machine)負荷、ＮＷ(Network)負荷、ＤＩＳＫ(ディスク)負荷が対応付けられて構成されている。
ＶＭ負荷は、仮想サーバのＣＰＵ使用率（又はメモリ使用率）であり、例えば図４（ａ）の１行目に記載のように１５％である。
ＮＷ負荷は、１秒当りに遣り取りしたパケット数やバイト数である、ここでは通信料に換算してあり、例えば１行目の２０００円である。
ＤＩＳＫ負荷は、仮想サーバの記憶媒体の単位時間当たりの入出力負荷であり、記憶媒体としてのディスクに対する単位時間当りのアクセス回数である。例えば１行目の７．７回／秒である。
【００５０】
増減設処理時間Ｄ２は、仮想サーバの増設及び減設時に必要な各種増減設の予測時間を示し、増減設処理時間保存部４５に保存される。図４（ｂ）の例では、ＶＭ増設に３００ｓ（秒）掛かり、ＮＷ帯域増設に１０ｓ、ＤＩＳＫ増設に１５０ｓ、ＶＭ減設に２０ｓ、ＮＷ帯域減設に１０ｓ、ＤＩＳＫ減設に６０ｓ掛かるといった増減設処理時間Ｄ２が記載されている。
【００５１】
仮想サーバ当りの処理可能負荷データＤ３は、一例を図４（ｃ）に示すように、仮想サーバの処理としての各種の処理内容と、処理可能負荷とが対応付けられて構成されている。図４（ｃ）の例では、ＶＭの処理可能負荷が３００［サービスオーダ／秒］、ＮＷの処理可能負荷が１０［Ｇｂｐｓ］、ＤＩＳＫの処理可能負荷が１５０［ＩＯＰＳ］となっている。
【００５２】
モデル学習期間Ｄ４は、予測負荷を予測するために予測前の実負荷を計測して予測負荷のモデルを学習（モデル学習）する学習期間を示すものである。図４（ｄ）の例では、実負荷の計測の開始時間が２０１７年５月２４日の１０時であり、計測の終了時間が２０１７年５月３１日の９時５５分である。この学習期間の例は１週間分である。
【００５３】
モデル更新フラグＤ５は、モデル学習を行うか否かを示し、図４（ｅ）の例では、モデル学習を行う有効を「１」、無効を「０」で示してある。
【００５４】
図３に示す処理可能負荷算出部（算出部ともいう）３１は、仮想サーバ当りの処理可能負荷データＤ３に対して、増設及び減設（増減設）時の処理完了時間のブレ（変動）を吸収するための計算処理を行い、この計算後の処理可能負荷データＤ３ａを保存部４４に保存する。
【００５５】
例えば図５に示すように、算出部３１は、処理完了時間のブレ（変動）を吸収するために、バッファとしての係数Ｃ＝１．１を処理可能負荷データＤ３に乗算する。この乗算により得られる処理可能負荷データＤ３ａは、ＶＭの処理可能負荷が３３０、ＮＷの処理可能負荷が１１、ＤＩＳＫの処理可能負荷が１６５となって、多めに見積もられることになる。これによって、仮想サーバの処理可能負荷が大きくなるので、サービス負荷が、上記乗算前の処理可能負荷付近で増減しても、その増減を吸収できる。言い換えれば、増減設の処理開始が遅くなるので、細かい品質劣化に対して敏感に増減設しないため、増減設の動作を安定させることができる。よって、処理完了時間のブレが吸収される。
【００５６】
図３に示すデータ前処理部３２は、サービス負荷の時系列データＤ１に対して、ＶＭ負荷、ＮＷ負荷及びＤＩＳＫ負荷の各負荷を正規化する前処理を行い、この処理後の時系列データＤ１ａを保存部４１に保存する。
【００５７】
例えば、入力部２１からデータ前処理部３２に入力されたサービス負荷の時系列データＤ１としての各時刻ｔにおけるＶＭ負荷、ＮＷ負荷及びＤＩＳＫ負荷の各負荷が、図６（ａ）に示す値であるとする。この場合の各負荷の単位のスケールは各々異なっておりバラバラである。例えば、２０１７．０５．２５１０：１０のＮＷ負荷は５０００であり、２０１７．０５．２５ １０：１５のＶＭ負荷は４０であり、２０１７．０５．２５ １０：２０のＤＩＳＫ負荷は１１．９である。この際の仮想サーバのサービス負荷は、図６（ｂ）に曲線ｈ３で示すサービス負荷量Ｌで表される。
【００５８】
データ前処理部３２は、時系列データＤ１に対して各負荷を正規化する。即ち、図６（ｄ）に示すように、縦軸のサービス負荷量Ｌを「０」〜「１」とするように、正規化する前処理を行う。これによって、各負荷が、図６（ｃ）に示す時系列データＤ１ａのような値となる。例えば、２０１７．０５．２５１０：１０のＮＷ負荷は１．０００となり、２０１７．０５．２５ １０：１５のＶＭ負荷は１．０００となり、２０１７．０５．２５ １０：２０のＤＩＳＫ負荷は１．０００となる。
【００５９】
また、データ前処理部３２は、図６（ｄ）に示す縦軸のサービス負荷量Ｌを、対数化する前処理を行うようにしてもよい。これによっても、図６（ａ）に示す各負荷のバラバラなスケールを揃えることができる。
【００６０】
図３に示すモデルパラメータ学習部（学習部ともいう）３３は、モデル更新フラグＤ５が有効を示す「１」の場合、保存部４２に保存されたモデル学習期間Ｄ４のサービス負荷の時系列データＤ１ａを用いて、モデルパラメータを学習し、この学習結果得られるモデルパラメータｙ（図７参照）を保存部４２に保存する。一方、学習部３３は、モデル更新フラグＤ５が無効を示す「０」の場合、モデルパラメータの学習をスキップし、以前の学習で求められているモデルパラメータｙを用いて後述の負荷予測部３４の予測処理に移行する。
【００６１】
モデルパラメータの学習について、図７を参照して具体的に説明する。図７の縦軸（ｙ軸）はサービス負荷量Ｌであり、横軸（ｘ軸）は学習データをサンプリングした時刻（学習データサンプリング時刻）ｔである。その学習データは、◆で示すデータであり、計測したサービス負荷のデータである。つまり、保存部４２に保存されたサービス負荷の時系列データＤ１ａである。学習データのサンプリング時刻が、７月７日の０時から５分置きであれば、時刻ｔ１が７月７日０時、ｔ２が７月７日０時５分、ｔ４が７月７日０時１０分、…、ｔ１０が７月７日０時４５分となる。
【００６２】
学習部３３は、図７にｘ軸で示すｔ１〜ｔ１０のモデル学習期間のサービス負荷である各学習データを最小二乗法により、１次関数である傾きと切片を有するモデルパラメータｙを求める。このモデルパラメータｙは、後述の増設に係る場合はｙ１とし、減設に係る場合はｙ２とする。従って、その求められたモデルパラメータｙが、増設に係る場合、例えば、ｙ１＝１．５３１１ｘ＋２．４０６７となり、これが保存部４２（図３）に保存される。
【００６３】
図３に示す負荷予測部３４は、保存部４２に保存されたサービス実負荷に係るモデルパラメータｙ１を用いて予測負荷データｙ１ｊ（図８参照）を予測し、保存部４３に保存する。但し、予測負荷データはｙ１ｊとｙ２ｊ（後述）があるため、図３では矢印ｙｊで表す。つまり、負荷予測部３４は、実際に計測したサービス負荷に対応する図８に示すモデルパラメータｙ１の傾き及び切片に基づき、サービス負荷を計測した時刻よりも将来の負荷である予測負荷データｙ１ｊを予測して求める。
【００６４】
図３に示す増減設判断部３５は、保存部４３に保存された予測負荷データｙ１ｊと、保存部４４に保存された仮想サーバ当りの処理可能負荷データＤ３ａと、保存部４５に保存された増減設処理時間Ｄ２とを用いて、増設開始時刻又は減設開始時刻を判断する。但し、増減設処理時間Ｄ２は、仮想サーバの増設に掛かる時間の増設処理時間ｔａと、仮想サーバの減設に掛かる時間の減設処理時間ｔｃとを含む。
【００６５】
図８に示すように、処理可能負荷データＤ３ａは、１台の仮想サーバ当りの処理可能負荷量Ｌｃ１又はＬｃ２に対応している。この例では、処理可能負荷量Ｌｃ１の最大値がＬ４０であるとする。
【００６６】
増減設判断部３５は、処理可能負荷データＤ３ａの最大値Ｌ４０と、予測負荷データｙ１ｊとが交差する時刻ｔ２６を求める。次に、増減設判断部３５は、増減設処理時間Ｄ２の内の増設処理時間ｔａを、先に求めた時刻ｔ２６から差し引き、時刻ｔ２１を求める。この時刻ｔ２１が第２仮想サーバ６２の増設開始時刻となる。この増設開始時刻ｔ２１から増設処理時間ｔａが経過した時刻ｔ２６が増設完了時刻となる。増減設判断部３５は、増設開始時刻ｔ２１を増減設処理部３６へ出力する。
【００６７】
増減設処理部３６は、増設開始時刻ｔ２１を保持し、この増設開始時刻ｔ２１となった時に第２仮想サーバ６２の増設を、出力部２２を介してクラウドコンピューティング環境６０に対して実行する。
【００６８】
一方、学習部３３において、図９に右肩下がりの線で示す減設に係るモデルパラメータｙ２＝−１．５３１１ｘ＋２．４０６７が求められて保存部４２に保存されたとする。この場合、２台の仮想サーバ６１，６２が稼働してサービス実行中に、サービス負荷が減少傾向にあることを示す。
【００６９】
負荷予測部３４は、そのサービス実負荷に係るモデルパラメータｙ２を用いて予測負荷データｙ２ｊを予測して求め、保存部４３に保存する。
【００７０】
増減設判断部３５は、処理可能負荷データＤ３の最大値Ｌ４０と、予測負荷データｙ２ｊとが交差する時刻ｔ２５を求める。次に、増減設判断部３５は、増減設処理時間Ｄ２の内の減設処理時間ｔｃを、先に求めた時刻ｔ２５から差し引き、時刻ｔ２０を求める。この時刻ｔ２０が第２仮想サーバ６２の減設開始時刻となる。この減設開始時刻ｔ２０から減設処理時間ｔｃが経過した時刻ｔ２５が減設完了時刻となる。増減設判断部３５は、減設開始時刻ｔ２０を増減設処理部３６へ出力する。
【００７１】
増減設処理部３６は、減設開始時刻ｔ２０を保持し、この減設開始時刻ｔ２０となった時に第２仮想サーバ６２の減設をクラウドコンピューティング環境６０に対して実行する。
【００７２】
＜実施形態の動作＞
オートスケール処理装置１０によるクラウドコンピューティング環境６０上に構築される第１及び第２仮想サーバ６１，６２の増設及び減設の制御動作を、図１０及び図１１に示すフローチャートを参照して説明する。図１０は第２仮想サーバ６２の増設の制御動作を説明するフローチャート、図１１は第２仮想サーバ６２の減設の制御動作を説明するフローチャートである。
【００７３】
但し、図３に示す入力装置５１が、第１及び第２仮想サーバ６１，６２の双方又は一方（第１仮想サーバ６１）が稼働中に、そのサービス負荷を監視（計測）し、サービス負荷の時系列データＤ１を入力部２１へ入力すると共に、増減設処理時間Ｄ２、処理可能負荷データＤ３、モデル学習期間Ｄ４及びモデル更新フラグＤ５を入力部２１へ入力している。また、入力部２１が、上記時系列データＤ１をデータ前処理部３２へ出力し、増減設処理時間Ｄ２を増減設処理時間保存部４５へ出力し、仮想サーバ当りの処理可能負荷データＤ３を処理可能負荷算出部３１へ出力し、モデル学習期間Ｄ４及びモデル更新フラグＤ５をモデルパラメータ学習部３３へ出力していることを前提条件とする。
【００７４】
＜仮想サーバ増設動作＞
図１０のステップＳ１において、算出部３１は、仮想サーバ当りの処理可能負荷データＤ３に対して、増設時の処理完了時間のブレ（変動）を吸収するための計算を行い、この計算による得られた処理可能負荷データＤ３ａを保存部４４に保存する。
【００７５】
ステップＳ２において、データ前処理部３２は、サービス負荷の時系列データＤ１に対して、ＶＭ負荷、ＮＷ負荷及びＤＩＳＫ負荷の各負荷を正規化する前処理を行い、この処理により得られた時系列データＤ１ａを保存部４１に保存する。
【００７６】
ステップＳ３において、学習部３３は、モデル更新フラグＤ５が有効「１」か、無効「０」かを判断する。
【００７７】
この判断結果が「１」の場合、学習部３３は、ステップＳ４において、モデル学習期間Ｄ４のサービス負荷の時系列データＤ１ａを用いて、モデルパラメータを学習し、例えばモデルパラメータｙ１＝１．５３１１ｘ＋２．４０６７（図７）を求めて、保存部４２に保存する。
【００７８】
次に、ステップＳ５において、負荷予測部３４は、上記ステップＳ４で保存されたモデルパラメータｙ１を用いて予測負荷データｙ１ｊ（図８）を予測して求め、保存部４３に保存する。
【００７９】
一方、上記ステップＳ３の判断結果が「０」の場合、ステップＳ６において、負荷予測部３４は以前の学習で求められ、保存部４２に保存されたモデルパラメータｙ１を用いて予測負荷データｙ１ｊを予測して求め、保存部４３に保存する。
【００８０】
次に、ステップＳ７において、増減設判断部３５は、上記ステップＳ５又はＳ６で保存された予測負荷データｙ１ｊと、上記ステップＳ１で保存された仮想サーバ当りの処理可能負荷データＤ３ａと、上記前提条件で既に保存されている増減設処理時間Ｄ２の内の増設処理時間ｔａとを用いて、増設開始時間を求める。
【００８１】
例えば、増減設判断部３５は、図８に示す処理可能負荷データＤ３ａの最大値Ｌ４０と、右上がりの予測負荷データｙ１ｊとが交差する時刻ｔ２６を求め、増設処理時間ｔａを、先に求めた時刻ｔ２６から差し引き、増設開始時刻ｔ２１を求める。
【００８２】
次に、ステップＳ８において、増減設処理部３６は、増設開始時刻ｔ２１を保持し、この増設開始時刻ｔ２１となった時に第２仮想サーバ６２の増設がクラウドコンピューティング環境６０において実行されるように増設開始制御を行う。この制御により第２仮想サーバ６２が図８に示す時刻ｔ２６において増設される。
【００８３】
＜仮想サーバ減設動作＞
次に、第２仮想サーバ６２の減設動作について図１１を参照して説明する。但し、減設動作において上記増設動作に対応する動作はその説明を適宜省略する。
【００８４】
図１１のステップＳ１１において、算出部３１は、仮想サーバ当りの処理可能負荷データＤ３に対して、減設時の処理完了時間のブレ（変動）を吸収するための計算を行い、この計算による得られた処理可能負荷データＤ３ａを保存部４４に保存する。
【００８５】
ステップＳ１２において、データ前処理部３２は、上記ステップＳ２と同様に各負荷を正規化する前処理を行い、この処理による時系列データＤ１ａを保存する。
【００８６】
ステップＳ１３において、学習部３３は、モデル更新フラグＤ５が有効「１」か、無効「０」かを判断する。
【００８７】
この判断結果が「１」の場合、学習部３３は、ステップＳ１４において、モデル学習期間Ｄ４のサービス負荷の時系列データＤ１ａを用いて、モデルパラメータを学習し、例えばモデルパラメータｙ２＝−１．５３１１ｘ＋２．４０６７（図９）を求めて保存する。
【００８８】
次に、ステップＳ１５において、負荷予測部３４は、上記ステップＳ１４で保存されたモデルパラメータｙ２を用いて予測負荷データｙ２ｊ（図９）を予測し保存する。
【００８９】
一方、上記ステップＳ１３の判断結果が「０」の場合、ステップＳ１６において、負荷予測部３４は以前の学習で求めたモデルパラメータｙ２を用いて予測負荷データｙ１ｊを予測し保存する。
【００９０】
次に、ステップＳ１７において、増減設判断部３５は、上記ステップＳ１５又はＳ１６で保存された予測負荷データｙ２ｊと、上記ステップＳ１１で保存された仮想サーバ当りの処理可能負荷データＤ３ａと、上記前提条件で既に保存されている増減設処理時間Ｄ２の内の減設処理時間ｔｃとを用いて、減設開始時刻を求める。
【００９１】
例えば、増減設判断部３５は、図９に示す処理可能負荷データＤ３ａの最大値Ｌ４０と、右下がりの予測負荷データｙ２ｊとが交差する時刻ｔ２５を求め、減設処理時間ｔｃを、先に求めた時刻ｔ２５から差し引き、増設開始時刻ｔ２０を求める。
【００９２】
次に、ステップＳ１８において、増減設処理部３６は、減設開始時刻ｔ２０を保持し、この減設開始時刻ｔ２０となった時に第２仮想サーバ６２の減設がクラウドコンピューティング環境６０において実行されるように減設開始制御を行う。この制御により第２仮想サーバ６２が図９に示す時刻ｔ２５において減設される。
【００９３】
＜モデルパラメータ学習の他例＞
次に、図３に示すモデルパラメータ学習部３３によるモデルパラメータ学習の他の例について図１２を参照して説明する。
【００９４】
図１２の縦軸（ｙ軸）は正規化したサービス負荷量であり、横軸（ｘ軸）は学習データをサンプリングした時刻（学習データサンプリング時刻）ｔである。学習データは、●で示すデータであり、計測したサービス負荷のデータである。つまり、保存部４２に保存されたサービス負荷の時系列データＤ１ａである。学習データのサンプリング時刻が、７月７日の０時から５分置きであれば、時刻ｔ０が７月７日０時であり、以降、５分置きにサービス負荷がサンプリングされる。
【００９５】
学習部３３が行うモデルパラメータ学習として、仮想サーバのサービス負荷の計測終了時点からｐ日前（第１日前）までの学習データの値と、ｑ日前（第２日前）までの所定の成分と、の影響により将来の値である予測負荷を予測するモデルとして、自己回帰移動平均モデル（ＡＲＭＡモデル）を用いた例について説明する。ＡＲＭＡモデルは、ＡＲモデル（自己回帰：ｐ日前）とＭＡモデル（移動平均）とを足算したモデルである。自己回帰とは、ある時刻での値を過去の値の変動を元に推測する方法である。
【００９６】
図１２の時刻ｔ−ｉまでの計測されたサービス負荷データｘ（ｔ−１）が与えられた時の負荷の推定値ｘ（ｔ）は、次式（１）で与えられる。推定値ｘ（ｔ）は、これから予測する例えば１週間後のサービス負荷データであり、前述した図７に示すモデルパラメータｙに該当する。
【数１】
2019028538.tif 000003
…（１）
2019028538.tif 000004
【００９７】
2019028538.tif 000005
【００９８】
上式（１）において、「θｉεｔ−ｉ」は、ＭＡモデルであり、例えば、時刻ｔ１では、ｙ（ｔ＋１）＝ａ＋ｂ、時刻ｔ２では、ｙ（ｔ）＝ｂ＋ｃのように、各時刻における値が共通成分を持っているとするモデルである。
【００９９】
更に説明すると、ＭＡモデルは、少し前の値である「ｙ（ｔ＋１）」はａ＋ｂで算出されており、次の値「ｙ（ｔ）」＝ｂ＋ｃはその影響が少し残っているだろう、つまりｙ（ｔ＋１）＝ａ＋ｂのｂ分が残っているだろうといったｂ（影響）に、新しく出てきたｃの値を足算すると、その次の値となる、といった考え方のモデルである。つまり、過去の影響がどれ位残るかといった値がｑ日前の「ｑ」の値となる。
【０１００】
2019028538.tif 000006
【０１０１】
【数２】
2019028538.tif 000007
…（２）
【０１０２】
2019028538.tif 000008
【０１０３】
例えば、７月１日〜７月７日までの１週間の期間で計測されたサービス負荷としての学習データが与えられたとする。ここで、仮定したパラメータでその期間の学習データを予測すると推定値ｘ（ｔ）が求められる。この推定値ｘ（ｔ）と学習データとの差分（誤差μ）が算出できる。この差分が最小となるようにパラメータを決めることで、最適に予測した推定値ｘ（ｔ）が得られる。
【０１０４】
負荷予測部３４は、上記で求められた推定値ｘ（ｔ）に基づき、サービス負荷の計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求める。
【０１０５】
＜実施形態の効果＞
以上説明したように、本実施形態のクラウドコンピューティング環境６０上に構築される仮想サーバ６２の増設及び減設を行うオートスケール処理装置１０を、次のような特徴構成とした。
【０１０６】
（１）予め定められた学習期間において、稼働中の仮想サーバが外部からのサービス要求に応じた処理を行う際のサービス負荷を所定の時刻毎に計測した時系列データを用い、この時系列データの時刻毎のサービス負荷を将来予測するためのモデルパラメータを算出する学習部３３を備える。更に、モデルパラメータに基づき、計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求める負荷予測部３４と、負荷予測部３４で求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を超えて増加する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの増設に掛かる増設処理時間を減算して、仮想サーバの増設開始時刻を求める増減設判断部３５とを備える構成とした。
【０１０７】
この構成によれば、例えば１台目の第１仮想サーバ６１が所定の学習期間において稼働した際のサービス負荷から将来予測のモデルパラメータが求められ、このモデルパラメータから将来のサービス負荷である予測負荷データが求められ、この予測負荷データから第２仮想サーバ６２の増設開始時刻が求められる。この増設開始時刻で２台目の第２仮想サーバ６２の増設が開始されると、増設処理時間を経過して第１仮想サーバ６１の処理可能負荷の最大値となった時刻に、第２仮想サーバ６２の増設が完了する。
【０１０８】
従って、第２仮想サーバ６２の増設完了時刻以降にサービス要求が増加して行く場合、第２仮想サーバ６２は増設済みなので、第１及び第２仮想サーバ６１，６２によって、増加するサービス要求を無駄なく処理することができる。また、第２仮想サーバ６２の増設完了時刻は、第１仮想サーバ６１のサービス負荷が処理可能負荷の最大値となったタイミングなので、このタイミングで第２仮想サーバ６２の増設が完了すれば、第１仮想サーバ６１のサービス負荷が最大値を超えたにも拘らず、第２仮想サーバ６２が未稼働であるといったことを防止することができる。従って、仮想サーバがユーザからのサービス要求に応じて提供するサービスに悪影響や無駄が生じないように、仮想サーバの増設を行うことができる。
【０１０９】
（２）増減設判断部３５が、負荷予測部３４で求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を下回って減少する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの減設に掛かる増設処理時間を減算して、仮想サーバの減設開始時刻を求めるようにした。
【０１１０】
これによって、例えば２台の第１及び第２仮想サーバ６１，６２が所定の学習期間において稼働した際のサービス負荷から１次関数のモデルパラメータが求められる。このモデルパラメータから将来のサービス負荷である予測負荷データが求められ、この予測負荷データから第２仮想サーバ６２の減設開始時刻が求められる。この減設開始時刻で第２仮想サーバ６２の減設が開始されると、減設処理時間を経過して第１仮想サーバ６１の処理可能負荷の最大値となった時刻に、第２仮想サーバ６２の減設が完了する。つまり、サービス要求に対応するサービス負荷が１台の仮想サーバのみの負荷となっているにも拘らず、２台の仮想サーバが稼働しているといった無駄を防止することができる。従って、仮想サーバがユーザからのサービス要求に応じて提供するサービスに無駄が生じないように、仮想サーバの減設を行うことができる。
【０１１１】
（３）学習部３３は、仮想サーバのサービス負荷の計測終了の自己回帰によるｐ日前までの学習データの値と、過去の影響が残るかを示す移動平均によるｑ日前までの所定の成分と、の影響により予測する将来の値である負荷の推定値を自己回帰移動平均モデルを用いて求める。負荷予測部３４は、その求められた推定値に基づき、計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求めるようにした。
【０１１２】
これによって、学習部３３は、自己回帰移動平均モデルを用いて負荷の推定値を求め、負荷予測部３４は、その求められた推定値に基づき、将来のサービス負荷である予測負荷データを求めることができる。
【０１１３】
（４）学習部３３が用いる時系列データの時刻毎のサービス負荷に係る、仮想サーバのＣＰＵ使用率又はメモリ使用率に対応するＶＭ負荷と、１秒当りに遣り取りしたパケット数又はバイト数に対応するＮＷ負荷と、仮想サーバの記憶媒体の単位時間当たりの入出力負荷に対応するＤＩＳＫ負荷との各負荷を正規化又は対数化するデータ前処理部３２を更に備える構成とした。
【０１１４】
この構成によれば、ＶＭ負荷、ＮＷ負荷及びＤＩＳＫ負荷の各負荷の各々異なる単位のスケールを、同じスケールに揃えることができる。
【０１１５】
（５）仮想サーバ当りの処理可能負荷に、当該処理可能負荷を大きくする係数を乗算し、この乗算で得られた仮想サーバ当りの処理可能負荷を保存部に保存する算出部３１を更に備える。増減設判断部３５は、増設開始時刻又は減設開始時刻を求める際に、上記保存された仮想サーバ当りの処理可能負荷を用いるようにした。
【０１１６】
この構成によれば、増減設判断部３５が、元の値よりも大きくなった仮想サーバ当りの処理可能負荷を用いて、仮想サーバの増設開始時刻又は減設開始時刻を求めるようになる。この際、仮想サーバ当りの処理可能負荷が大きくなるので、仮想サーバのサービス負荷が、乗算前の処理可能負荷付近で増減しても、この増減を吸収できる。言い換えれば、増設又は減設の処理開始が遅くなるので、細かい品質劣化に対して敏感に増設又は減設しなくなる。このため、仮想サーバの増設又は減設の動作を安定させることができる。よって、処理完了時間の変動が吸収される。
【０１１７】
＜プログラム＞
本実施形態のコンピュータで実行されるプログラムについて説明する。コンピュータは、上記のオートスケール処理装置１０である。
【０１１８】
このプログラムは、上記コンピュータを、予め定められた学習期間において、稼働中の仮想サーバが外部からのサービス要求に応じた処理を行う際のサービス負荷を所定の時刻毎に計測した時系列データを用い、この時系列データの時刻毎のサービス負荷に対する最小二乗法による傾きと切片を有する１次関数のモデルパラメータを求める手段として機能させる。
【０１１９】
また、前記モデルパラメータの傾き及び切片に基づき、前記計測の時刻を過ぎた将来のサービス負荷である予測負荷データを予測して求める手段として機能させる。
更に、前記予測して求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を超えて増加する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの増設に掛かる増設処理時間を減算して、仮想サーバの増設開始時刻を求める手段として機能させる。
【０１２０】
更には、前記予測して求められた予測負荷データが仮想サーバ当りの処理可能負荷の最大値を下回って減少する際に、当該予測負荷データが当該最大値となる時刻から、仮想サーバの減設に掛かる増設処理時間を減算して、仮想サーバの減設開始時刻を求める手段として機能させる。
このプログラムによれば、上述した実施形態のオートスケール処理装置１０と同様の効果を得ることができる。
【０１２１】
その他、具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【０１２２】
１０  オートスケール処理装置
２０  入出力部
２１  入力部
２２  出力部
３０  処理部
３１  処理可能負荷算出部
３２  データ前処理部
３３  モデルパラメータ学習部
３４  負荷予測部
３５  増減設判断部
３６  増減設処理部
４０  記憶部
４１  負荷データ保存部
４２  学習結果保存部
４３  予測負荷データ保存部
４４  処理可能負荷データ保存部
４５  増減設処理時間保存部
５１  入力装置
５２  ログ情報
６０  クラウドコンピューティング環境
６１  第１仮想サーバ
６２  第２仮想サーバ
【図１】
2019028538.tif 000009
【図２】
2019028538.tif 000010
【図３】
2019028538.tif 000011
【図４】
2019028538.tif 000012
【図５】
2019028538.tif 000013
【図６】
2019028538.tif 000014
【図７】
2019028538.tif 000015
【図８】
2019028538.tif 000016
【図９】
2019028538.tif 000017
【図１０】
2019028538.tif 000018
【図１１】
2019028538.tif 000019
【図１２】
2019028538.tif 000020
【図１３】
2019028538.tif 000021
【図１４】
2019028538.tif 000022
【図１５】
2019028538.tif 000023