(57)【特許請求の範囲】
【請求項１】
負荷状況に応じて稼働台数を決定する構成である複数のサーバ装置に関する需要予測結果の通知をコンピュータに実現させるための需要予測通知プログラムであって、
前記コンピュータに、
前記複数のサーバ装置の実際の稼働状況を稼働履歴情報として記録する稼働履歴記録機能と、
前記稼働履歴情報を参照して、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得する稼働履歴情報取得機能と、
複数のサーバ装置に関する需要予測について予め学習を行った学習済モデルに対して、取得した所定範囲の前記稼働履歴情報を入力して、予測対象時間についての需要予測結果を出力させる需要予測機能と、
前記需要予測結果に基づいて、前記予測対象時間における前記複数のサーバ装置の稼働台数を決定して、予測対象時間において、決定された稼働台数のサーバ装置を稼働させる制御を実行するサーバ稼働制御機能と、
直前の稼働状況に比較して前記需要予測結果が所定の基準以上に需要が変化している場合に、需要の変化を予め設定した利用者側の通知対象者に対して通知するとともに、利用時間の変更を促す通知を行う需要変化通知機能と
を実現させる需要予測通知プログラム。
【請求項２】
複数のサーバ装置の運営主体において、需要が高い時間帯は料金を上げ需要が低い時間帯は料金を下げる運用を行うものとし、
前記需要変化通知機能では、需要が変化する状況であると需要予測結果が示している場合に、利用者に対して需要予測結果を通知するとともに料金の変更を通知する
請求項１に記載の需要予測通知プログラム。
【請求項３】
負荷状況に応じて稼働台数を決定する構成である複数のサーバ装置に関する需要予測結果の通知を行うための需要予測通知装置であって、
前記複数のサーバ装置の実際の稼働状況を稼働履歴情報として記録する稼働履歴記録部と、
前記稼働履歴情報を参照して、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得する稼働履歴情報取得部と、
複数のサーバ装置に関する需要予測について予め学習を行った学習済モデルに対して、取得した所定範囲の前記稼働履歴情報を入力して、予測対象時間についての需要予測結果を出力させる需要予測部と、
前記需要予測結果に基づいて、前記予測対象時間における前記複数のサーバ装置の稼働台数を決定して、予測対象時間において、決定された稼働台数のサーバ装置を稼働させる制御を実行するサーバ稼働制御部と、
直前の稼働状況に比較して前記需要予測結果が所定の基準以上に需要が変化している場合に、需要の変化を予め設定した利用者側の通知対象者に対して通知するとともに、利用時間の変更を促す通知を行う需要変化通知部と
を備える需要予測通知装置。
【請求項４】
負荷状況に応じて稼働台数を決定する構成である複数のサーバ装置に関する需要予測結果の通知をコンピュータに実現させるための需要予測通知方法であって、
前記複数のサーバ装置の実際の稼働状況を稼働履歴情報として記録する稼働履歴記録処理と、
前記稼働履歴情報を参照して、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得する稼働履歴情報取得処理と、
複数のサーバ装置に関する需要予測について予め学習を行った学習済モデルに対して、取得した所定範囲の前記稼働履歴情報を入力して、予測対象時間についての需要予測結果を出力させる需要予測処理と、
前記需要予測結果に基づいて、前記予測対象時間における前記複数のサーバ装置の稼働台数を決定して、予測対象時間において、決定された稼働台数のサーバ装置を稼働させる制御を実行するサーバ稼働制御処理と、
直前の稼働状況に比較して前記需要予測結果が所定の基準以上に需要が変化している場合に、需要の変化を予め設定した利用者側の通知対象者に対して通知するとともに、利用時間の変更を促す通知を行う需要変化通知処理と
を含む需要予測通知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷状況に応じて稼働台数を決定する構成である複数のサーバ装置に関する需要予測を行うための需要予測プログラム、需要予測装置、需要予測方法、需要予測通知プログラム、需要予測通知装置及び需要予測通知方法に関するものである。
【背景技術】
【０００２】
従来、複数のサーバ装置によって構成されたシステムにおいて、クライアントからのサービス要求の増加や減少に対応するために、稼働させるサーバ装置の台数を変更する処理が行われてきた。
【０００３】
例えば、特許文献１には、複数のサーバを疎結合させて見かけ上単一のサーバシステムとするサーバ結合体を構成するサーバ台数を動的に再構成することにより、需要変動に応じた適切な資源配置を可能としたクライアントサーバシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１６３２４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１におけるクライアントサーバシステムによれば、熟練オペレータによる煩雑な手作業を介さずに、サーバへの需要変動に応じて速やかにサーバ結合体を構成するサーバ台数を動的に変更することが可能となるが、サーバ台数の変更のトリガーは実際の需要の増加又は減少が判明した段階であるため、特に需要増大時にはサーバ台数を増加させる処理が完了するまではサーバーリソースが枯渇してしまうため、サービス提供が開始されるまでクライアントに待機させるか、少ないサーバ台数で多数の要求に応えようとするためビジー状態となって処理速度が低下した状態でのサービス提供を行うことになってしまうなどの問題があった。
【０００６】
本発明は、上記問題点に鑑みなされたものであり、予め予測対象時間における需要予測を行って事前にサーバ稼働台数を決定してサーバ稼働制御を実行可能な需要予測プログラム、需要予測装置、需要予測方法、需要予測通知プログラム、需要予測通知装置及び需要予測通知方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る需要予測プログラムは、負荷状況に応じて稼働台数を決定する構成である複数のサーバ装置に関する需要予測をコンピュータに実現させるための需要予測プログラムであって、前記コンピュータに、前記複数のサーバ装置の実際の稼働状況を稼働履歴情報として記録する稼働履歴記録機能と、前記稼働履歴情報を参照して、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得する稼働履歴情報取得機能と、複数のサーバ装置に関する需要予測について予め学習を行った学習済モデルに対して、取得した所定範囲の前記可動履歴情報を入力して、予測対象時間についての需要予測結果を出力させる需要予測機能と、前記需要予測結果に基づいて、前記予測対象時間における前記複数のサーバ装置の稼働台数を決定して、予測対象時間において、決定された稼働台数のサーバ装置を稼働させる制御を実行するサーバ稼働制御機能とを実現させることを特徴とする。
【０００８】
また、本発明に係る需要予測プログラムは、前記コンピュータに、前記需要予測結果とその予測対象時間の実際の稼働状況とを比較して、前記需要予測結果と実際の稼働状況との間に所定以上の誤差が生じた場合、前記学習済モデルに対して自動的に追加学習を実行して追加学習済モデルを取得する追加学習機能をさらに実現させることを特徴とする。
【０００９】
また、本発明に係る需要予測プログラムは、前記コンピュータに、採用中の前記学習済モデルと追加学習によって得られた前記追加学習済モデルとの精度の検証を自動で実行し、検証結果が所定条件を充足する場合には、需要予測に用いるモデルを前記追加学習済モデルに切り替えるモデル切替機能をさらに実現させることを特徴とする。
【００１０】
本発明に係る需要予測装置は、負荷状況に応じて稼働台数を決定する構成である複数のサーバ装置に関する需要予測を行うための需要予測装置あって、前記複数のサーバ装置の実際の稼働状況を稼働履歴情報として記録する稼働履歴記録部と、前記稼働履歴情報を参照して、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得する稼働履歴情報取得部と、複数のサーバ装置に関する需要予測について予め学習を行った学習済モデルに対して、取得した所定範囲の前記可動履歴情報を入力して、予測対象時間についての需要予測結果を出力させる需要予測部と、前記需要予測結果に基づいて、前記予測対象時間における前記複数のサーバ装置の稼働台数を決定して、予測対象時間において、決定された稼働台数のサーバ装置を稼働させる制御を実行するサーバ稼働制御部とを備えることを特徴とする。
【００１１】
本発明に係る需要予測方法は、負荷状況に応じて稼働台数を決定する構成である複数のサーバ装置に関する需要予測をコンピュータに実現させるための需要予測方法であって、前記複数のサーバ装置の実際の稼働状況を稼働履歴情報として記録する稼働履歴記録処理と、前記稼働履歴情報を参照して、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得する稼働履歴情報取得処理と、複数のサーバ装置に関する需要予測について予め学習を行った学習済モデルに対して、取得した所定範囲の前記可動履歴情報を入力して、予測対象時間についての需要予測結果を出力させる需要予測処理と、前記需要予測結果に基づいて、前記予測対象時間における前記複数のサーバ装置の稼働台数を決定して、予測対象時間において、決定された稼働台数のサーバ装置を稼働させる制御を実行するサーバ稼働制御処理とを含むことを特徴とする。
【００１２】
本発明に係る需要予測通知プログラムは、負荷状況に応じて稼働台数を決定する構成である複数のサーバ装置に関する需要予測結果の通知をコンピュータに実現させるための需要予測通知プログラムであって、前記コンピュータに、前記複数のサーバ装置の実際の稼働状況を稼働履歴情報として記録する稼働履歴記録機能と、前記稼働履歴情報を参照して、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得する稼働履歴情報取得機能と、複数のサーバ装置に関する需要予測について予め学習を行った学習済モデルに対して、取得した所定範囲の前記可動履歴情報を入力して、予測対象時間についての需要予測結果を出力させる需要予測機能と、前記需要予測結果に基づいて、前記予測対象時間における前記複数のサーバ装置の稼働台数を決定して、予測対象時間において、決定された稼働台数のサーバ装置を稼働させる制御を実行するサーバ稼働制御機能と、直前の稼働状況に比較して前記需要予測結果が所定の基準以上に需要が変化している場合に、需要の変化を予め設定した通知対象者に対して通知する需要変化通知機能とを実現させることを特徴とする。
【００１３】
また、本発明に係る需要予測通知プログラムは、前記コンピュータに、前記需要予測結果とその予測対象時間の実際の稼働状況とを比較して、前記需要予測結果と実際の稼働状況との間に所定以上の誤差が生じた場合、予め設定した通知対象者に対して通知する検証結果通知機能をさらに実現させることを特徴とする。
【００１４】
本発明に係る需要予測通知装置は、負荷状況に応じて稼働台数を決定する構成である複数のサーバ装置に関する需要予測結果の通知を行うための需要予測通知装置であって、前記複数のサーバ装置の実際の稼働状況を稼働履歴情報として記録する稼働履歴記録部と、前記稼働履歴情報を参照して、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得する稼働履歴情報取得部と、複数のサーバ装置に関する需要予測について予め学習を行った学習済モデルに対して、取得した所定範囲の前記可動履歴情報を入力して、予測対象時間についての需要予測結果を出力させる需要予測部と、前記需要予測結果に基づいて、前記予測対象時間における前記複数のサーバ装置の稼働台数を決定して、予測対象時間において、決定された稼働台数のサーバ装置を稼働させる制御を実行するサーバ稼働制御部と、直前の稼働状況に比較して前記需要予測結果が所定の基準以上に需要が変化している場合に、需要の変化を予め設定した通知対象者に対して通知する需要変化通知部とを備えることを特徴とする。
【００１５】
本発明に係る需要予測通知方法は、負荷状況に応じて稼働台数を決定する構成である複数のサーバ装置に関する需要予測結果の通知をコンピュータに実現させるための需要予測通知方法であって、前記複数のサーバ装置の実際の稼働状況を稼働履歴情報として記録する稼働履歴記録処理と、前記稼働履歴情報を参照して、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得する稼働履歴情報取得処理と、複数のサーバ装置に関する需要予測について予め学習を行った学習済モデルに対して、取得した所定範囲の前記可動履歴情報を入力して、予測対象時間についての需要予測結果を出力させる需要予測処理と、前記需要予測結果に基づいて、前記予測対象時間における前記複数のサーバ装置の稼働台数を決定して、予測対象時間において、決定された稼働台数のサーバ装置を稼働させる制御を実行するサーバ稼働制御処理と、直前の稼働状況に比較して前記需要予測結果が所定の基準以上に需要が変化している場合に、需要の変化を予め設定した通知対象者に対して通知する需要変化通知処理とを含むことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得し、その稼働履歴情報に基づいて学習済モデルを用いて予測対象時間についてのサーバ装置に関する需要予測を実行して、その需要予測結果から必要なサーバ稼働台数を決定し、決定した実際の時刻が予測対象時間に到達する前の段階で決定したサーバ稼働台数となるようにサーバ稼働台数を制御するようにしたので、実際に需要が変化する前に事前にその需要に対応するためのサーバ稼働台数を稼働させることが可能となり、サーバ装置の立ち上がりを待つストレスを利用者に与えてしまう可能性を低減することが可能となる。また、需要予測結果と実際の稼働状況との間に所定以上の誤差が生じた場合には自動で追加学習を行って追加学習済モデルを得ることができるので、より精度の高いモデルを取得し得る。また、採用中の学習済モデルと追加学習済モデルとの精度の検証を自動で実行して、予測精度の向上が見込まれる場合には追加学習済モデルに切り替えるようにしたので、常に予測精度の高いモデルに自動で切り替えることが可能となる。
【００１７】
また、本発明によれば、需要が大きく変化したことを通知するようにしたので、サーバ装置自体は自動で需要に対応できるが、管理者が需要変化に応じて提供する他のサービス（例えば、電話によるサポートサービスなど）に対応することが可能となる。また、需要予測結果と実際の稼働状況との間に所定以上の誤差が生じた場合、予め設定した通知対象者に対して通知するようにしたので、サーバ装置の管理者等は状況を把握することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明に係る需要予測装置１０の構成を表したブロック図である。
【図２】本発明に係る需要予測装置１０を含むシステム全体の構成の一例を表したブロック図である。
【図３】本発明に係る需要予測装置１０における需要予測処理の概念の一例を表した説明図である。
【図４】本発明に係る需要予測装置１０における学習処理の流れを表したフローチャート図である。
【図５】本発明に係る需要予測装置１０における需要予測処理の流れを表したフローチャート図である。
【図６】本発明に係る需要予測装置１０における需要変化通知処理の流れを表したフローチャート図である。
【図７】本発明に係る需要予測装置１０における追加学習処理の流れを表したフローチャート図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照しながら、第１の実施の形態に係る需要予測装置の例について説明する。図１は、本発明に係る需要予測装置１０の構成を表したブロック図である。図１に示すように、需要予測装置１０は、稼働履歴記録部１１と、稼働履歴情報取得部１２と、需要予測部１３と、サーバ稼働制御部１４と、需要変化通知部１５と、追加学習部１６と、モデル切替部１７と、検証結果通知部１８と、記憶部１９とを少なくとも備えている。
【００２０】
なお、需要予測装置１０は、専用マシンとして設計した装置であってもよいが、一般的なコンピュータ、サーバ装置等によって実現可能なものであるものとする。この場合に、需要予測装置１０は、一般的なコンピュータ、サーバ装置等が通常備えているであろうＣＰＵ（Central Processing Unit：中央演算処理装置）、メモリ、ハードディスクドライブ等のストレージを具備しているものとする（図示省略）。また、必要に応じてＧＰＵ（Graphics Processing Unit：画像処理装置）を備えるようにしてもよい。また、これらの一般的なコンピュータを本例の需要予測装置１０として機能させるためにプログラムよって各種処理が実行されることは言うまでもない。
【００２１】
図２は、本発明に係る需要予測装置１０をサーバ装置で実現する場合のシステム全体の構成を表したブロック図である。図２に示すように、システム全体の構成は、サーバ装置によって実現した需要予測装置１０と、制御対象であるサーバ装置１０１〜１０ｍ（ｍは任意の整数。）と、システムを利用する複数の端末装置２０１〜２０ｎ（ｎは任意の整数。以下、これらを代表して単に端末装置２０と表現する場合がある。）とを含む。需要予測装置１０と、サーバ装置１０１〜１０ｍと、複数の端末装置２０１〜２０ｎは、それぞれインターネットなどの通信ネットワーク３０に接続されている。需要予測装置１０は、需要予測装置としての機能に特化して他のサーバ装置１０１〜１０ｍと役割を異ならせてもよいし、他のサーバ装置１０１〜１０ｍとともに複数のサーバ装置群を構成してコード実行要求に対処するものであってもよい。なお、システムの構成は図２の例に限定されるものではない。
【００２２】
稼働履歴記録部１１は、複数のサーバ装置の実際の稼働状況を稼働履歴情報として記録する機能を有する。ここで、稼働履歴情報とは、単位時間毎にサーバ装置の稼働状況を記録した情報のこという。本例では需要に応じて複数のサーバ装置の稼働を切り替える制御を行うことを前提としており、サーバ装置の稼働状況は都度変化していくことになるため、単位時間毎に稼働状況を記録する。稼働状況の記録方法の一例としては、サーバ装置毎のコード実行回数を集計して複数のサーバ装置全体での単位時間毎のコード実行回数を日時情報とともに記録する。
【００２３】
稼働履歴情報取得部１２は、記録された稼働履歴情報を参照して、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得する機能を有する。この稼働履歴情報取得部１２においては、需要予測に用いるための稼働履歴情報を取得する。取得のための所定規則は、例えば、取得するタイミング、取得する範囲などを規定することが考えられる。取得する範囲は、需要予測を行うための学習済モデルがどのような範囲の稼働履歴情報を入力として扱うかによって決定されるものである。一例としては、過去２４時間分の稼働履歴情報を取得する構成とすることが考えられる。
【００２４】
需要予測部１３は、複数のサーバ装置に関する需要予測について予め学習を行った学習済モデルに対して、取得した所定範囲の可動履歴情報を入力して、予測対象時間についての需要予測結果を出力させる機能を有する。ここで、学習済モデルは、所定範囲の可動履歴情報に基づいて予測対象時間についての需要予測を実行するモデルであればどのようなモデルであってもよい。一例としては、ニューラルネットワークで構成されたモデルが考えられ、より具体的には、ディープラーニングを用いたＬＳＴＭ（Long Short Term Memory）を含むＲＮＮ（Recurrent Neural Network）などの時系列解析に適したモデルを採用することが考えられる。モデルに対する学習処理は、例えば、実際の稼働状況の情報を既に取得している過去の時点での予測対象時間について需要予測結果を取得し、需要予測結果と実際の稼働状況の情報との間の誤差が小さくなるようにモデルのパラメータを更新することで行う。また、需要予測結果は、予測対象時間における需要予測の結果を表す様々なデータが採用し得るが、例えば、予測対象時間において予想されるコード実行回数の値を需要予測結果とすることが考えられる。需要予測結果が得られる構成であれば、需要予測用のモデルに対して稼働履歴情報以外のデータを入力として用いてもよいし、需要予測用のモデルの出力として予測対象時間におけるコード実行回数の予想値以外の情報を出力させる構成としてもよい。学習処理によって得られた学習済モデルは、例えば、後述する記憶部１９に記憶させて保持する。
【００２５】
なお、この需要予測部１３における需要予測処理は、定時実行設定とすることが考えられる。例えば、毎時０分からスタートする６０分間を予測対象時間とする場合、毎時30分に、次の時間帯の需要（コード実行回数）を予測するように定時実行設定を行うことが考えられる。もちろん、定時実行設定の他、管理者が実行要求を出したタイミングで需要予測処理を実行できる設定としてもよい。また、予測対象時間についても適宜設定可能であり、１時間単位で予測を行う設定のほか、３０分単位や２時間単位など、どのように設定してもよい。
【００２６】
また、需要予測部１３におけるデータの扱い方は様々に設定可能であるが、例えば、稼働履歴情報を表す数値データに対して、対数変換を行った後で正規化処理を行うという前処理を施すことが考えられる。仮に、過去２４時間分の稼働履歴情報を入力データとする場合、１時間毎のコード実行回数に前処理を行って、過去24時間分の稼働履歴情報を表す24次元のベクトルデータをニューラルネットワークに対する入力データとしてもよい。
【００２７】
また、需要予測部１３におけるニューラルネットワークに対する入力データとして、コード実行回数以外の他のデータを採用するようにしてもよい。例えば、前日ユーザ増加数、前日売り上げ、ユーザ数、アクティブユーザ数、ユーザの滞在時間、サーバ装置を利用する企業におけるコード実行回数の増加に寄与するイベントの実施状況などを入力データとして採用してもよい。また、コード実行回数の情報についても、コード実行に関する詳細な情報、例えば、実行するニューラルネットワークのモデルを識別する情報を、コード実行回数の情報と併せて利用するようにしてもよい。一例として、サーバ装置においてＡＩについての学習支援プログラムを提供する場合に、学習支援において提供するクイズ問題、コード入力問題、動画問題などのエクササイズの種類ごとコード実行回数や、「Python入門」、「機械学習概論」などの講座毎のコード実行回数は、ある程度同じ数値に収まる可能性が高いため、使用するモデルを識別する情報を併せて利用することで、予測精度を向上させることが可能となる。
【００２８】
サーバ稼働制御部１４は、需要予測結果に基づいて、予測対象時間における複数のサーバ装置の稼働台数を決定して、予測対象時間において、決定された稼働台数のサーバ装置を稼働させる制御を実行する機能を有する。一例として、需要予測結果が予測対象時間におけるコード実行回数である場合には、予測されたコード実行回数とサーバの稼働台数の関係を予め設定しておき、その設定に関するテーブルを参照してサーバの稼働台数を決定することが考えられる。そして、決定したサーバ稼働台数となるように複数のサーバ装置の制御を実行する。現状のサーバ稼働台数と同じ台数が予測されている場合には制御内容に変更は生じないが、現状に比較してサーバ稼働台数を増加又は減少させる必要のある予測結果であった場合には、サーバ装置の稼働台数を変更する制御を実行する。このように、本例は、需要予測結果に基づいてサーバ稼働台数の変更も含めた複数のサーバ装置に対する直接制御を行うことを特徴とする。
【００２９】
需要変化通知部１５は、直前の稼働状況に比較して需要予測結果が所定の基準以上に需要が変化している場合に、需要の変化を予め設定した通知対象者に対して通知する機能を有する。この需要変化通知部１５においては、需要予測結果が得られた段階で直前の稼働状況との比較を実行する。ここでの直前の稼働状況とは、需要予測処理を実行する時点での複数のサーバ装置の稼働状況を表したデータのことをいう。具体的には、需要予測処理を実行する時点での複数のサーバ装置の稼働台数の情報とすることが考えられる。また、複数のサーバ装置において実際に処理したコード実行回数の情報を直前の稼働状況の情報とすることも可能であるが、予測対象時間の始期が毎時０分である状況において需要予測処理を毎時３０分に実行する（予測対象時間の３０分前に需要予測処理を実行する）とした場合、予測対象時間の直前の１時間についての正確なコード実行回数は把握することが困難であるため、比較する対象を直前の一時間ではない所定の時間（例えば、予測対象時間の１時間３０分前から３０分前までの１時間のコード実行回数と比較）としてもよい。このようにして比較を行った結果、予め設定した所定の基準以上に需要が変化していた場合には、予め設定した通知対象者に対して通知するようにする。
【００３０】
追加学習部１６は、需要予測結果とその予測対象時間の実際の稼働状況とを比較して、需要予測結果と実際の稼働状況との間に所定以上の誤差が生じた場合、学習済モデルに対して自動的に追加学習を実行して追加学習済モデルを取得する機能を有する。需要予測部１３において定時実行を行う設定とする場合、毎時毎に需要予測結果が得られ、予測対象時間についての実際の稼働状況の情報は時間経過後に必ず得られる。追加学習部１６においては、これらの需要予測結果と実際の稼働状況の情報との比較を行う。比較の結果、予め設定した所定値以上の誤差が生じた場合、学習済モデルに対して自動的に追加学習を実行する。追加学習に用いるデータは、誤差の生じた予測対象時間における実際の稼働状況の情報を用いてもよいし、追加学習を行うためのデータを一定量ストックしておく構成としてもよい。また、追加学習を行って得られる追加学習済モデルは、その時点で採用している学習済モデルとは別に保持するようにすることが好ましい。必ずしも追加学習によって予測精度が向上するとは限らないため、予測精度に関する検証を行ってから追加学習済モデルの採用、不採用を決定することが望ましく、そこで次のモデル切替部１７を設ける。
【００３１】
モデル切替部１７は、採用中の学習済モデルと追加学習によって得られた追加学習済モデルとの精度の検証を自動で実行し、検証結果が所定条件を充足する場合には、需要予測に用いるモデルを追加学習済モデルに切り替える機能を有する。精度の検証は、稼働履歴情報を取得済みの過去の時点について需要予測処理を実行することで需要予測結果と実際の稼働状況の情報を比較して精度を算出することが可能となる。このような検証処理を予め設定した所定回数だけ実行する。その結果として、追加学習済モデルの方が予め設定した基準値以上に精度が向上したなど、検証結果が所定条件を充足する場合には、需要予測に用いるモデルを追加学習済モデルに自動で切り替えるようにする。切替実行のための所定条件については、様々に設定可能であるが、例えば、精度が所定％以上向上することを条件とすることが考えられる。また、切替条件を充足しなかった追加学習済モデルについては破棄する構成であってもよいが、追加学習部１６における次回の追加学習処理の際に、切替条件を充足しなかった追加学習済モデルに対して続きの追加学習を実行する構成としてもよい。
【００３２】
検証結果通知部１８は、需要予測結果とその予測対象時間の実際の稼働状況とを比較して、需要予測結果と実際の稼働状況との間に所定以上の誤差が生じた場合、予め設定した通知対象者に対して通知する機能を有する。この検証結果通知部１８では、追加学習部１６と同様に、需要予測結果と実際の稼働状況の情報との比較を行う。需要予測結果と実際の稼働状況との間に所定以上の誤差が生じる状況は、サーバ装置によるサービス提供者にとって好ましくない状況であるので、このような状況が生じた場合に、予め設定した通知対象者に対して通知を行うようにする。
【００３３】
記憶部１９は、需要予測装置１０において行われる様々な処理で必要なデータ及び処理の結果として得られたデータを記憶させる機能を有する。
【００３４】
次に、本例における需要予測処理の概念の一例について説明を行う。図３は、本発明に係る需要予測装置１０における需要予測処理の概念の一例を表した説明図である。この図３に示すように、需要予測の予測対象時間（例えば、午前９時〜１０時の１時間）に対して、過去のサーバ装置の稼働履歴情報（例えば、過去２４時間についての１時間毎のコード実行回数）を取得し、稼働履歴情報を用いて学習済モデルに基づいて予想対象時間のコード実行回数を予測する。予測されたコード実行回数に対応するために必要なサーバ装置の稼働台数を決定する。なお、午前９時〜１０時の１時間を予測対象時間として設定して午前８時半の時点で需要予測処理を実行する場合、午前８時〜９時の１時間については実際の稼働状況の全容が判明していない状況であるため、午前８時〜９時の１時間については稼働履歴情報を取得せずに、前日の午前８時から当日の午前８時までの２４時間の稼働履歴情報を取得して利用する構成としてもよい。
【００３５】
次に、需要予測装置１０で用いられる学習済モデルの学習方法について説明する。図４は、本発明に係る需要予測装置１０における学習処理の流れを表したフローチャート図である。本例の需要予測装置１０における学習処理は、先ず、予め設定した所定範囲の稼働履歴情報を取得することで開始される（ステップＳ１０１）。次に、需要予測装置１０は、予測処理を実行するニューラルネットワークに稼働履歴情報を入力して、予測対象時間についての需要予測結果を出力させる（ステップＳ１０２）。そして、需要予測装置１０は、予測対象時間についての実際の稼働状況の情報を取得して、需要予測結果とを用いてニューラルネットワークのパラメータを更新して（ステップＳ１０３）、学習処理を終了する。なお、図３に示すフローチャートは１回の需要予測に基づく学習処理を説明したものであり、実際には、所望の予測精度が得られるまで、図３に示す学習処理を繰り返し実行することになる。
【００３６】
次に、需要予測装置１０における需要予測処理の流れについて説明する。図５は、本発明に係る需要予測装置１０における需要予測処理の流れを表したフローチャート図である。本例の需要予測装置１０における需要予測処理は、先ず、予め設定した所定範囲の稼働履歴情報を取得することで開始される（ステップＳ２０１）。次に、需要予測装置１０は、学習済みのニューラルネットワークに対して稼働履歴情報を入力して、予測対象時間についての需要予測結果を出力させる（ステップＳ２０２）。次に、需要予測装置１０は、需要予測結果に基づいて、サーバ装置の稼働台数を決定する（ステップＳ２０３）。そして、需要予測装置１０は、決定されたサーバ装置の稼働台数となるようにサーバ装置の稼働制御を実行して（ステップＳ２０４）、需要予測処理を終了する。
【００３７】
次に、需要予測装置１０における需要変化通知処理の流れについて説明する。図６は、本発明に係る需要予測装置１０における需要変化通知処理の流れを表したフローチャート図である。本例の需要予測装置１０における需要変化通知処理は、先ず、対象時間についての需要予測結果を取得することで開始される（ステップＳ３０１）。次に、需要予測装置１０は、対象時間の直前の稼働状況の情報を取得する（ステップＳ３０２）。次に、需要予測装置１０は、需要予測結果と直前の稼働状況の情報とを比較して、所定の規準値以上に需要が変化しているか否かを判定する（ステップＳ３０３）。需要変化量が所定の基準値以内である場合（Ｓ３０３−Ｎ）、需要予測装置１０は、通知を行うことなく需要変化通知処理を終了する。需要変化量が所定の基準値以上である場合（Ｓ３０３−Ｙ）、需要予測装置１０は、予め設定した通知対象者に通知を行って（ステップＳ３０４）、需要変化通知処理を終了する。
【００３８】
次に、需要予測装置１０における追加学習処理の流れについて説明する。図７は、本発明に係る需要予測装置１０における追加学習処理の流れを表したフローチャート図である。本例の需要予測装置１０における追加学習処理は、先ず、対象時間についての需要予測結果を取得することで開始される（ステップＳ４０１）。次に、需要予測装置１０は、対象時間の実際の稼働状況の情報を取得する（ステップＳ４０２）。次に、需要予測装置１０は、需要予測結果と実際の稼働状況の情報とを比較して、所定の規準値以上に誤差が発生しているか否かを判定する（ステップＳ４０３）。誤差が所定の基準値以内である場合（Ｓ４０３−Ｎ）、需要予測装置１０は、追加学習を行うことなく追加学習処理を終了する。誤差が所定の基準値以上である場合（Ｓ４０３−Ｙ）、需要予測装置１０は、学習済モデルに対して追加学習を実行して（ステップＳ４０４）、追加学習処理を終了する。
【００３９】
以上のように、本実施の形態に係る需要予測装置１０によれば、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得し、その稼働履歴情報に基づいて学習済モデルを用いて予測対象時間についてのサーバ装置に関する需要予測を実行して、その需要予測結果から必要なサーバ稼働台数を決定し、決定した実際の時刻が予測対象時間に到達する前の段階で決定したサーバ稼働台数となるようにサーバ稼働台数を制御するようにしたので、実際に需要が変化する前に事前にその需要に対応するためのサーバ稼働台数を稼働させることが可能となり、サーバ装置の立ち上がりを待つストレスを利用者に与えてしまう可能性を低減することが可能となる。
【００４０】
また、需要が大きく変化したことを通知するようにしたので、サーバ装置自体は自動で需要に対応できるが、管理者が需要変化に応じて提供する他のサービス（例えば、電話によるサポートサービスなど）に対応することが可能となる。
【００４１】
また、需要予測結果と実際の稼働状況との間に所定以上の誤差が生じた場合には自動で追加学習を行って追加学習済モデルを得ることができるので、より精度の高いモデルを取得し得る。
【００４２】
また、採用中の学習済モデルと追加学習済モデルとの精度の検証を自動で実行して、予測精度の向上が見込まれる場合には追加学習済モデルに切り替えるようにしたので、常に予測精度の高いモデルに自動で切り替えることが可能となる。
【００４３】
また、需要予測結果と実際の稼働状況との間に所定以上の誤差が生じた場合、予め設定した通知対象者に対して通知するようにしたので、サーバ装置の管理者等は状況を把握することが可能となる。
【００４４】
また、従来は、サーバ装置の稼働台数を動的に制御するためには、曜日、時間をはじめ様々な要因で条件分岐を書き下すという非常に複雑かつ煩雑な作業を行う必要があったが、本例によれば、条件分岐を書き下す必要がなくなるという効果がある。
【００４５】
上記の実施の形態においては、需要予測装置１０の検証結果通知部１８において、需要予測結果とその予測対象時間の実際の稼働状況との間に所定以上の誤差が生じた場合に予め設定した通知対象者に対して通知する構成として説明を行ったが、これに限定されるものではなく、常に需要予測結果とその予測対象時間の実際の稼働状況の情報を通知対象者に通知する構成としてもよい。また、通知対象者の使用するアプリケーションの表示画面上に、横軸を時間経過、縦軸をコード実行回数としたグラフを表示し、そのグラフ上に需要予測結果と実際の稼働状況の情報をプロットして折れ線グラフとして表示させる構成としてもよい。このような構成とすることで、需要予測精度が視覚的に把握し易くなる。
【００４６】
上記の実施の形態においては、需要予測装置１０の需要変化通知部１５において、直前の稼働状況に比較して需要予測結果が所定の基準以上に需要が変化している場合に、需要の変化を予め設定した通知対象者に対して通知する構成としているが、通知に加えて追加の提案を行うものであってもよい。例えば、需要予測結果の予想通りに需要が変化したとすると現状稼働中のサーバ装置のみではぎりぎり対応しきれずサーバ装置の稼働台数を増加させなければならないような状況において、実際の利用者がシステムを利用する時間帯を変更してくれればサーバ装置の稼働台数を変更せずに済む可能性がある。このような状況に該当する場合には、需要変化通知部１５において、システムの利用者に対して需要予測結果を通知するとともに利用時間の変更を促す通知を行うようにしてもよい。また、システム運用側においても、需要が高い時間帯は料金を上げ需要が低い時間帯は料金を下げる運用を行うようにして、需要が変化する状況であると需要予測結果が示している場合には、需要変化通知部１５において、システムの利用者に対して需要予測結果を通知するとともに料金の変更を通知するようにしてもよい。このような構成とすることで、利用者に利用時間帯の変更を促すことが可能となり、結果として、サーバ装置の稼働台数を節約することが可能となり、システム運用費用を節約することが可能となる。
【００４７】
上記の実施の形態においては、需要予測装置１０がクラウド型のシステムであるのかオンプレミス型のシステムであるのかについては言及していないが、何れのサービス提供の場合であっても本例の需要予測装置１０を適用することが可能である。しかし、オンプレミス型のシステムにおいて、予測された需要に耐えうるスペックを備えていない状況も起こりえる。そのような場合に、需要予測装置１０の需要変化通知部１５において、システム管理者に対して、オンプレミス型のシステムにクラウドサーバを追加で提供する案内を通知するようにしてもよい。オンプレミス型のシステムの管理者が、事前にクラウドサービス提供者との間でクラウドのシステムを追加で用意する契約を締結しておけば、オンプレミスのシステムで対応しきれない需要の増加が発生した場合に、速やかにクラウドサービスを提供することが可能となる。クラウド領域の追加にあたっても、実際にオンプレミスシステムが枯渇してからクラウド領域の追加を開始したのでは、利用者にストレスを与える原因となってしまうため、本例の需要予測装置１０をオンプレミス型のシステムに導入すれば、需要増大を予測した時点で事前にクラウド領域を追加することが可能となり、利用者の利便性が向上する。
【符号の説明】
【００４８】
１０            需要予測装置
１０１〜１０ｍ        サーバ装置
１１            稼働履歴記録部
１２            稼働履歴情報取得部
１３            需要予測部
１４            サーバ稼働制御部
１５            需要変化通知部
１６            追加学習部
１７            モデル切替部
１８            検証結果通知部
１９            記憶部
２０１〜２０ｎ        端末装置
３０            通信ネットワーク
【要約】
【課題】予め予測対象時間における需要予測を行って事前にサーバ稼働台数を決定してサーバ稼働制御を実行可能な需要予測プログラム、需要予測装置及び需要予測方法を提供すること。
【解決手段】複数のサーバ装置の実際の稼働状況を稼働履歴情報として記録する稼働履歴記録部と、稼働履歴情報を参照して、予め設定した所定規則に基づいて所定範囲の稼働履歴情報を取得する稼働履歴情報取得部と、複数のサーバ装置に関する需要予測について予め学習を行った学習済モデルに対して、取得した所定範囲の可動履歴情報を入力して、予測対象時間についての需要予測結果を出力させる需要予測部と、需要予測結果に基づいて、予測対象時間における複数のサーバ装置の稼働台数を決定して、予測対象時間において、決定された稼働台数のサーバ装置を稼働させる制御を実行するサーバ稼働制御部とを備える。
【選択図】図１【図１】
0006950911.tif 000002
【図２】
0006950911.tif 000003
【図３】
0006950911.tif 000004
【図４】
0006950911.tif 000005
【図５】
0006950911.tif 000006
【図６】
0006950911.tif 000007
【図７】
0006950911.tif 000008