(57)【要約】      （修正有）【課題】これまでより少ないオーバヘッドにより、ウェブ・サーバ等の応答時間を目標値に近づける。【解決手段】情報処理装置が処理要求を受けてから当該処理要求に応答するまでの平均応答時間を制御する制御装置２５であって、平均応答時間の目標値である目標応答時間を取得する目標応答時間取得部２００と、処理性能の互いに異なる複数の動作モードの何れかを情報処理装置に設定した場合について、当該動作モードを情報処理装置に設定してから予め定められた基準期間が経過した時点における平均応答時間の予測値である予測応答時間を算出する予測応答時間算出部２３０と、予測応答時間算出部により算出された予測応答時間が目標応答時間未満である場合に、当該動作モードを情報処理装置に設定する動作モード設定部２４０とを備える制御装置を提供する。【選択図】図２
2006155525.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置が処理要求を受けてから当該処理要求に応答するまでの平均応答時間を制御する制御装置であって、
前記平均応答時間の目標値である目標応答時間を取得する目標応答時間取得部と、
処理性能の互いに異なる複数の動作モードの何れかを前記情報処理装置に設定した場合について、当該動作モードを前記情報処理装置に設定してから予め定められた基準期間が経過した時点における前記平均応答時間の予測値である予測応答時間を算出する予測応答時間算出部と、
前記予測応答時間算出部により算出された前記予測応答時間が前記目標応答時間未満である場合に、当該動作モードを前記情報処理装置に設定する動作モード設定部と
を備える制御装置。
【請求項２】
前記基準期間が経過する毎に前記平均応答時間を前記情報処理装置から取得する平均応答時間取得部を更に備え、
前記平均応答時間取得部により取得された平均応答時間が時間の経過に応じて予め定められた基準範囲を超えて同一方向に変化する過渡状態の場合において、
前記予測応答時間算出部は、前記基準期間が経過する毎に、各々の前記動作モードを設定した各々の場合について前記予測応答時間を算出し、
前記動作モード設定部は、前記予測応答時間算出部により動作モード毎の前記予測応答時間が算出される毎に、前記予測応答時間が前記目標応答時間未満である何れかの動作モードを選択して前記情報処理装置に設定する
請求項１記載の制御装置。
【請求項３】
前記動作モード設定部は、前記平均応答時間取得部により取得された平均応答時間が時間の経過に応じて前記基準範囲内で変化する安定状態の場合には、前記情報処理装置の応答時間を前記目標応答時間未満とする動作モードを前記情報処理装置に設定することにより、前記情報処理装置を前記過渡状態に遷移させる
請求項２記載の制御装置。
【請求項４】
前記動作モード設定部は、前記平均応答時間取得部により取得された平均応答時間が時間の経過に応じて前記基準範囲の上限を超える値又は下限未満の値の間で変化する不安定状態の場合には、過去の予め定められた期間に前記平均応答時間取得部により取得された平均応答時間の最大値を求め、当該最大値と同一の応答時間を前記目標応答時間未満とする動作モードを前記情報処理装置に設定する
請求項３記載の制御装置。
【請求項５】
前記情報処理装置が単位時間当たりに受信した処理要求の数、及び、前記情報処理装置が受信した累積の処理要求の数を取得する処理要求数取得部を更に備え、
前記予測応答時間算出部は、前記複数の動作モードの各々について、当該動作モードを前記情報処理装置に設定した場合の応答時間、及び、前記安定状態における平均応答時間の差分値をゲインとし、単位時間当たりの前記処理要求の数及び累積の前記処理要求の数に基づく値を時定数とし、時間の経過に応じた前記情報処理装置の平均応答時間の変化を一次遅れ要素でモデル化した関数により、前記予測応答時間を算出する
請求項３記載の制御装置。
【請求項６】
前記予測応答時間算出部は、前記複数の動作モードの各々について、当該動作モードを前記情報処理装置に設定した場合の応答時間として、当該動作モードの処理性能の高さに反比例する値を用いて、前記予測応答時間を算出する
請求項５記載の制御装置。
【請求項７】
前記予測応答時間算出部は、単位時間当たりの前記処理要求の数の増加に応じて変化率を上昇させ、かつ、累積の前記処理要求の数の増加に応じて変化率を低下させる前記関数により、前記予測応答時間を算出する
請求項５記載の制御装置。
【請求項８】
前記処理要求数取得部は、前記情報処理装置が受信した累積の処理要求の数を前記基準期間が経過する毎に前記情報処理装置から取得し、今回取得した累積の処理要求の数から前回取得した累積の処理要求の数を差し引いた差分値を前記基準期間で除した値と、今回取得した累積の処理要求の数を累積の経過時間で除した値との平均を、前記情報処理装置が単位時間当たりに受信した処理要求の数として取得する
請求項５記載の制御装置。
【請求項９】
情報処理装置と、前記情報処理装置が処理要求を受けてから当該処理要求に応答するまでの平均応答時間を制御する制御装置とを備える情報処理システムであって、
前記情報処理装置は、外部から受けた処理要求に対して応答し、
前記制御装置は、
前記平均応答時間の目標値である目標応答時間を取得する目標応答時間取得部と、
処理性能の互いに異なる複数の動作モードの何れかを前記情報処理装置に設定した場合について、当該動作モードを前記情報処理装置に設定してから予め定められた基準期間が経過した時点における前記平均応答時間の予測値である予測応答時間を算出する予測応答時間算出部と、
前記予測応答時間算出部により算出された前記予測応答時間が前記目標応答時間未満である場合に、当該動作モードを前記情報処理装置に設定する動作モード設定部と
を有する情報処理システム。
【請求項１０】
前記情報処理装置は、複数のアプリケーションプログラムの各々を実行し、
前記目標応答時間取得部は、各々の前記アプリケーションプログラムについて前記目標応答時間を取得し、
各々の前記アプリケーションプログラムについて、前記情報処理装置が当該アプリケーションプログラムを実行している間の応答時間の平均値を前記平均応答時間として取得する平均応答時間取得部を更に備え、
前記予測応答時間算出部は、何れかのアプリケーションプログラムについて前記平均応答時間が前記目標応答時間を超える場合に、当該アプリケーションプログラムに対して前記複数の動作モードの何れかを設定した場合の前記予測応答時間を算出し、
前記動作モード設定部は、前記予測応答時間算出部により算出された前記予測応答時間が前記目標応答時間未満の場合に、当該動作モードを前記情報処理装置に設定する
請求項９記載の情報処理システム。
【請求項１１】
前記予測応答時間算出部は、複数の前記アプリケーションプログラムの各々について、当該アプリケーションプログラムの平均応答時間が目標応答時間を超える場合に、当該複数のアプリケーションプログラムのうち平均応答時間及び目標応答時間の差分値が最も大きいアプリケーションプログラムを選択し、前記情報処理装置に当該動作モードを設定した場合の当該アプリケーションプログラムについての予測応答時間を算出し、
前記動作モード設定部は、前記予測応答時間算出部により算出された前記予測応答時間が当該アプリケーションプログラムの目標応答時間未満の場合に、当該動作モードを前記情報処理装置に設定する
請求項１０記載の情報処理システム。
【請求項１２】
前記予測応答時間算出部は、何れのアプリケーションプログラムについても平均応答時間が目標応答時間未満である場合に、平均応答時間及び目標応答時間の差分値が最も小さいアプリケーションプログラムを選択し、前記情報処理装置に当該動作モードを設定した場合の当該アプリケーションプログラムについての予測応答時間を算出し、
前記動作モード設定部は、前記予測応答時間算出部により算出された前記予測応答時間が当該アプリケーションプログラムの目標応答時間未満の場合に、当該動作モードを前記情報処理装置に設定する
請求項１０記載の情報処理システム。
【請求項１３】
情報処理装置が処理要求を受けてから当該処理要求に応答するまでの平均応答時間を制御する制御方法であって、
前記平均応答時間の目標値である目標応答時間を取得する目標応答時間取得段階と、
処理性能の互いに異なる複数の動作モードの何れかを前記情報処理装置に設定した場合について、当該動作モードを前記情報処理装置に設定してから予め定められた基準期間が経過した時点における前記平均応答時間の予測値である予測応答時間を算出する予測応答時間算出段階と、
前記予測応答時間算出段階において算出された前記予測応答時間が前記目標応答時間未満である場合に、当該動作モードを前記情報処理装置に設定する動作モード設定段階と
を備える制御方法。
【請求項１４】
情報処理装置が処理要求を受けてから当該処理要求に応答するまでの平均応答時間を制御する制御装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
前記平均応答時間の目標値である目標応答時間を取得する目標応答時間取得部と、
処理性能の互いに異なる複数の動作モードの何れかを前記情報処理装置に設定した場合について、当該動作モードを前記情報処理装置に設定してから予め定められた基準期間が経過した時点における前記平均応答時間の予測値である予測応答時間を算出する予測応答時間算出部と、
前記予測応答時間算出部により算出された前記予測応答時間が前記目標応答時間未満である場合に、当該動作モードを前記情報処理装置に設定する動作モード設定部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、情報処理システム、制御方法、及びプログラムに関する。特に、本発明は、情報処理装置が処理要求を受けてから当該処理要求に応答するまでの平均応答時間を制御する制御装置、情報処理システム、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、情報処理装置の発熱対策等を目的とした省電力技術が注目されており、例えば、従来、中央処理装置の動作周波数や電圧を変更する技術が用いられている（例えば、非特許文献１参照。）。また、この技術によりウェブ・サーバの消費エネルギーを削減することを目的として、ウェブ・サーバの９０％応答時間に基づいて、そのウェブ・サーバの動作周波数を制御する技術が提案されている（非特許文献２参照。）。
【０００３】
この文献において、９０％応答時間とは、そのウェブ・サーバに対して送信した処理要求の９０％が応答するまでに要する時間であり、ウェブ・サーバの処理の迅速性を判断する基準として用いられている。そして、この技術においては、９０％応答時間を一定の間隔で測定し、測定した値が目標値未満であれば動作周波数を低下させ、測定した値が目標値を超えていれば動作周波数を上昇させる。これにより、目標を達成しつつ、かつ、必要以上に大きな電力が消費されることを防ぐことができる。
【０００４】
また、従来、ウェブ・サーバに対する処理要求の数に基づいて、そのウェブ・サーバの動作周波数を制御する技術が提案されている（非特許文献３参照。）。この技術によると、まず、過去に測定した処理要求の到着割合と、現在測定した処理要求の到着割合との差分から、最近の到着割合が変動する傾向を求め、その傾向に基づいて将来の平均応答時間の予測値を算出する。そして、求めた平均応答時間が目標値を超えない範囲内で最小の動作周波数を設定する。これにより、処理要求の変動が所定の傾向を有する場合には、適切な制御が可能となる。
【０００５】
【非特許文献１】Intel(R) Pentium(R) Processor Enhanced Intel SpeedStep Technology. ホームページＵＲＬ「http://support.intel.com/support/processors/mobile/pm/sb/CS-007981.htm」
【非特許文献２】M. Elnozahy, M. Kistler, and R. Rajamony. Energy Conservation Policies for Web Servers. USITS 2003.
【非特許文献３】N. Kandasamy, S. A. Abdelwahed, and J. P. Hayes. Self-Optimization in Computer Systems via Online Control: Application to Power Management. In Proceedings of the International Conference on Autonomic Computing, 2004.
【非特許文献４】WebSphere Extended Deployment Edition、ホワイトペーパー。ホームページＵＲＬ「http://www-6.ibm.com/jp/software/websphere/ft/was/xd/pdf/whitepaper.pdf」
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ここで、９０％応答時間は、過去の予め定められた時点から現在までの応答時間に基づいて定められるため、９０％応答時間の変化は動作周波数の変更に対して遅れて観測される。このため、非特許文献１の技術においては、９０％応答時間が目標値付近で振動する場合がある。但し、非特許文献１の技術においては、TCP/IP パケットを監視し９０％応答時間を計測する機能、及び動作周波数を制御する機能をOS のカーネル内に組み込むことにより、非常に短い時間間隔での動作周波数制御を可能にしている。このため、応答時間の変動幅は比較的小さい。
【０００７】
しかしながら、TCP/IP パケットのレベルでは、処理要求の種類を見分けることが困難であるため、ウェブ・サーバ上の全てのアプリケーションプログラムについて１つの応答時間目標値しか扱うことができない。これは現実的ではなく、アプリケーションプログラム毎に応答時間の目標値を設定することが望ましい。実際、非特許文献４に記載の技術においては、アプリケーションプログラム毎に応答時間の目標を設定することができる。
【０００８】
複数の目標値を処理対象とするためには、HTTP のようなTCP/IP よりも上位のレベルで処理要求を監視する必要がある。HTTP リクエストの監視はユーザ空間で行われる。ユーザ空間での応答時間計測、及び動作周波数制御は、カーネル空間で行う場合に比べてオーバヘッドが大きく、短い時間間隔で頻繁に動作周波数制御を行うと、Web アプリケーションの実行性能が大きく低下する。
【０００９】
また、非特許文献４の技術のように、ウェブ・サーバの外部に存在するワークロードマネージャに対して応答時間目標値を与える場合、ウェブ・サーバ外部からネットワークを通して動作周波数を制御する必要がある。このため、オーバヘッドは更に大きくなる。従って、動作周波数の時間間隔を数十ミリ秒といった小さい値に設定することは困難であり、より長い時間隔で動作周波数を行わなければない。
【００１０】
このようなシステムに非特許文献２の技術をそのまま適用すると、９０％応答時間の測定間隔は非常に大きくなってしまう。その結果、９０％応答時間は目標値からかなり乖離した範囲で振動してしまうおそれがある。非特許文献３についても同様であり、動作周波数制御の時間間隔が長い場合には、平均応答時間が振動してしまう場合がある。
【００１１】
そこで本発明は、上記の課題を解決することのできる制御装置、情報処理システム、制御方法、及びプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の第１の形態においては、情報処理装置が処理要求を受けてから当該処理要求に応答するまでの平均応答時間を制御する制御装置であって、平均応答時間の目標値である目標応答時間を取得する目標応答時間取得部と、処理性能の互いに異なる複数の動作モードの何れかを情報処理装置に設定した場合について、当該動作モードを情報処理装置に設定してから予め定められた基準期間が経過した時点における平均応答時間の予測値である予測応答時間を算出する予測応答時間算出部と、予測応答時間算出部により算出された予測応答時間が目標応答時間未満である場合に、当該動作モードを情報処理装置に設定する動作モード設定部とを備える制御装置を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【００１３】
本発明によれば、これまでより少ないオーバヘッドにより、ウェブ・サーバ等の応答時間を目標値に近づけることができる。
【発明を実施するための最良の形態】
【００１４】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１５】
図１は、情報処理システム１０の全体構成を示す。情報処理システム１０は、外部から受けた処理要求に対して応答するシステムであり、例えば、電子商取引を行う企業内に設けられたウェブ・システムである。そして、情報処理システム１０は、本発明に係る情報処理装置の一例であるウェブ・サーバ３０と、ウェブ・サーバ３０に対して各種の制御・管理を行うエッジ・サーバ２０とを備える。
【００１６】
エッジ・サーバ２０は、外部から受けた処理要求をウェブ・サーバ３０に転送する。例えば、情報処理システム１０が複数のウェブ・サーバ３０を有している場合には、エッジ・サーバ２０は、各々のウェブ・サーバ３０における処理負荷に基づいて、処理要求を転送する転送先のウェブ・サーバ３０を選択し、選択したそのウェブ・サーバ３０に処理要求を転送してもよい。そして、ウェブ・サーバ３０は、外部から受けたその処理要求に対する応答を、その処理要求の送信元に対して送信する。
【００１７】
また、エッジ・サーバ２０は、ウェブ・サーバ３０が処理要求を受けてからその処理要求に応答するまでの平均応答時間を制御する制御装置２５を有する。具体的には、制御装置２５は、ウェブ・サーバ３０の平均応答時間をウェブ・サーバ３０から取得し、その平均応答時間が目標値を超えている場合には、処理性能のより高い動作モードをウェブ・サーバ３０に設定する。一方、平均応答時間が目標値未満の場合には、処理性能のより低い動作モードをウェブ・サーバ３０に設定する。
【００１８】
この際、制御装置２５は、動作モードを変更してから所定の期間が経過した時点における平均応答時間の予測値を算出し、その予測値が目標値未満となる動作モードを設定する。これにより、処理性能を制御する時間間隔が比較的長い場合であっても処理性能を変更し過ぎることを防ぎ、平均応答時間を目標値付近で安定的に推移させることを目的とする。
【００１９】
図２は、制御装置２５の機能を機能ブロックに分類して示す。制御装置２５は、目標応答時間取得部２００と、平均応答時間取得部２１０と、処理要求数取得部２２０と、予測応答時間算出部２３０と、動作モード設定部２４０とを有する。目標応答時間取得部２００は、平均応答時間の目標値である目標応答時間を取得する。平均応答時間取得部２１０は、予め定められた基準期間（例えば５分）が経過する毎に、過去の予め定められた時点から現在までの平均応答時間をウェブ・サーバ３０から取得する。処理要求数取得部２２０は、ウェブ・サーバ３０が受信した累積の処理要求の数をウェブ・サーバ３０から取得する。また、処理要求数取得部２２０は、ウェブ・サーバ３０が単位時間当たりに受信した処理要求の数を取得する。
【００２０】
動作モード設定部２４０は、平均応答時間が予め定められた基準範囲内で安定的に変動している場合には、予測応答時間に関わらず、応答時間を目標応答時間とする動作モードを設定する。そして、応答時間が基準範囲を超えて同一方向に変化している場合には、予測応答時間算出部２３０は、処理性能の互いに異なる複数の動作モードの何れかをウェブ・サーバ３０に設定した場合について、その動作モードをウェブ・サーバ３０に設定してから予め定められた基準期間が経過した時点における平均応答時間の予測値である予測応答時間を算出する。そして、動作モード設定部２４０は、予測応答時間算出部２３０により算出された予測応答時間が目標応答時間未満である場合に、その動作モードをウェブ・サーバ３０に設定する。これにより、平均応答時間を目標応答時間に迅速に近づけることができる。
【００２１】
図３は、ウェブ・サーバ３０が安定状態、過渡状態、及び不安定状態の間を状態遷移する遷移図である。安定状態とは、平均応答時間取得部２１０により取得された平均応答時間が時間の経過に応じて予め定められた基準範囲で変化する状態をいう。例えば、過去の充分に長い期間に渡ってウェブ・サーバ３０の処理性能が一定である場合には、この状態に遷移する（Ｓ３１０、Ｓ３３０）。
【００２２】
また、過渡状態とは、平均応答時間取得部２１０により取得された平均応答時間が時間の経過に応じて当該基準範囲を超えて同一方向に変化している状態をいう。例えば、ウェブ・サーバ３０の処理性能を最近に変更した場合には、この状態に遷移する（Ｓ３００）。また、不安定状態とは、平均応答時間取得部２１０により取得された平均応答時間が時間の経過に応じて当該基準範囲の上限を超える値又は下限未満の値の間で変化する状態をいう。例えば、処理性能を最近向上させたにも関わらず応答時間が増加しているような場合には、この状態に遷移する場合が多い（Ｓ３２０、Ｓ３４０）。
【００２３】
図４は、制御装置２５が情報処理システム１０の処理性能を設定する処理の一例を示す。制御装置２５は、予め定められた基準期間が経過する毎に、以下の処理を繰返し行う。まず、平均応答時間取得部２１０は、過去の予め定められた時点から現在までの平均応答時間をウェブ・サーバ３０から取得する（Ｓ４００）。そして、動作モード設定部２４０は、平均応答時間の変動が予め定められた基準範囲内であるか否かを判断する（Ｓ４１０）。例えば、動作モード設定部２４０は、Ｓ４００において平均応答時間が取得される毎にその平均応答時間を記録し、前回記録した平均応答時間と今回取得した平均応答時間とを比較することにより、変動が基準範囲内か否かを判断してもよい。
【００２４】
平均応答時間が時間の経過に応じて基準範囲（例えば０．１秒）内で変化する場合に（Ｓ４１０：基準範囲内）、動作モード設定部２４０は、安定状態における処理を行う（４２０）。具体的には、動作モード設定部２４０は、ウェブ・サーバ３０の応答時間を目標応答時間未満とする動作モードをウェブ・サーバ３０に設定する。一例として、平均応答時間が１．５秒程度で遷移し、目標応答時間が３秒である場合には、動作モード設定部２４０は、動作モード変更直後の応答時間を３秒とするべく、処理性能を１／２に変更する。これにより、ウェブ・サーバ３０は、平均応答時間が基準範囲を超えて同一方向に変化する過渡状態に遷移し、充分に長い時間が経過した場合には平均応答時間が目標応答時間に漸近する。
【００２５】
平均応答時間が時間の経過に応じて基準範囲を超えて同一方向に変化する場合に（Ｓ４１０：同一方向に変化）、動作モード設定部２４０は、過渡状態における処理を行う（Ｓ４３０）。詳しくは後述する。また、平均応答時間が時間の経過に応じて基準範囲の上限を超える値又は下限未満の値の間で変化する場合に（Ｓ４１０：双方向に変化）、動作モード設定部２４０は、不安定状態における処理を行う（Ｓ４４０）。
【００２６】
具体的には、動作モード設定部２４０は、まず、過去の予め定められた期間に平均応答時間取得部２１０により取得された平均応答時間の最大値を求める。そして、動作モード設定部２４０は、その最大値が目標応答時間を超えている場合に、その最大値と同一の応答時間を目標応答時間未満とする動作モードをウェブ・サーバ３０に設定する。一例として、その最大値が４秒であり、目標応答時間が３秒である場合には、動作モード設定部２４０は、処理性能を４／３とする動作モードをウェブ・サーバ３０に設定する。この結果、処理要求の受信頻度の傾向が変化しない場合には、平均応答時間を目標応答時間未満とすることができる。
【００２７】
図５は、図４のＳ４３０における処理の詳細を示す。目標応答時間取得部２００は、目標応答時間を取得する（Ｓ５００）。処理要求数取得部２２０は、ウェブ・サーバ３０が受信した累積の処理要求の数をウェブ・サーバ３０から取得する（Ｓ５１０）。本図の処理時点における時間をｔｃとし、取得した累積の処理要求の数をｎ（ｔｃ）とする。そして、処理要求数取得部２２０は、累積の処理要求の数に基づいて、ウェブ・サーバ３０が単位時間当たりに受信した処理要求の数を算出する（Ｓ５２０）。
【００２８】
具体的には、処理要求数取得部２２０は、まず、今回取得した累積の処理要求の数から前回取得した累積の処理要求の数を差し引いた差分値を求める。この値をｎｐｒｅｖ（ｔｃ）とする。そして、処理要求数取得部２２０は、求めたその値を基準期間（ｔｃ−ｔｐｒｅｖ）で除した値と、今回取得した累積の処理要求の数を累積の経過時間で除した値との平均を求め、その平均を、ウェブ・サーバ３０が単位時間当たりに受信した処理要求の数として取得する。当該処理要求の数をｍ（ｔｃ）として、上記処理は、以下の式（１）で表される。
【数１】
2006155525.tif 000003
【００２９】
続いて、予測応答時間算出部２３０及び動作モード設定部２４０は、ウェブ・サーバ３０に設定可能な複数の動作モードの各々について、以下の処理を繰り返す（Ｓ５３０）。予測応答時間算出部２３０は、当該動作モードをウェブ・サーバ３０に設定した場合について、当該動作モードをウェブ・サーバ３０に設定してから基準期間が経過した時点における平均応答時間の予測値である予測応答時間を算出する（Ｓ５４０）。
【００３０】
より詳細には、予測応答時間算出部２３０は、時間の経過に応じた平均応答時間（（ｒａｖｇ（ｔ））の変化を一次遅れ要素でモデル化した関数により、予測応答時間を算出する。この関数は、当該動作モードをウェブ・サーバ３０に設定した場合の応答時間（Ｒｇｏａｌ±）、及び、前回の安定状態における平均の応答時間（ｒａｖｇ（ｔ０））の差分をゲインとし、単位時間当たりの処理要求の数及び累積の処理要求の数に基づく値を時定数Ｔとし、以下の式（２）により表される。
【数２】
2006155525.tif 000004
【００３１】
ここで、予測応答時間算出部２３０は、当該動作モードをウェブ・サーバ３０に設定した場合の応答時間（Ｒｇｏａｌ±）として、当該動作モードの処理性能の高さに反比例する値を用いる。例えば、予測応答時間算出部２３０は、応答時間を目標応答時間とするための処理性能の高さ（ｐｇｏａｌ）、目標応答時間（Ｒｇｏａｌ）、及び当該動作モードの処理性能の高さ（Ｐｐｇｏａｌ±）を用いて、以下の式（３）により応答時間（Ｒｇｏａｌ±）を求める。
【数３】
2006155525.tif 000005
【００３２】
そして、予測応答時間算出部２３０は、単位時間当たりの処理要求の数の増加に応じて平均応答時間の変化率を上昇させ、かつ、累積の処理要求の数に増加に応じて変化率を低下させるように、関数（２）の時定数Ｔを定める。例えば、時定数Ｔは、所定の微小量Δｒを用いて、以下の式（４）により算出される。
【数４】
2006155525.tif 000006
【００３３】
図６を用いてこの式が導かれる過程を説明する。図６は、平均応答時間の時間経過に応じた変化を１時遅れ要素でモデル化した概念図である。時定数Ｔは、図６に示すように、１次遅れ要素を示す曲線の原点における接線が目標値に達するまでの時間として表される。接線の傾きをｋとすると、時定数は以下の式（５）で表される。
【数５】
2006155525.tif 000007
【００３４】
また、ｋは、平均応答時間がΔr だけ微増するまでの時間Δｔを用いて、以下の式（６）で表される。
【数６】
2006155525.tif 000008
【００３５】
従って、Δｒのある値（例えば0.01msec）に対するΔｔを求めることにより、時定数Ｔを求めることができる。
時刻ｔｃ＋Δｔにおける平均応答時間ｒａｖｇ（ｔｃ＋Δｔ）は以下の式（７）で表される。
【数７】
2006155525.tif 000009
【００３６】
また、平均応答時間ｒａｖｇ（ｔｃ）は、統計量として式（８）のように表されるため、時刻ｔｃ+Δｔにおける平均応答時間ｒａｖｇ（ｔｃ＋Δｔ）は式（９）のようにも表すことができる。
【数８】
2006155525.tif 000010
【数９】
2006155525.tif 000011
【００３７】
ここで、ｒｉは各処理要求に対する応答時間である。時刻ｔｃ＋Δｔまでの処理要求の累積回数ｎ（ｔｃ＋Δｔ）は、単位時間当たりの処理要求の累積回数ｍ（ｔｃ）を用いて、以下の式（１０）で近似可能である。
【数１０】
2006155525.tif 000012
式（７）、式（９）、及び式（１０）より、以下の式（１１）が導かれる。
【数１１】
2006155525.tif 000013
Δｔ 間の応答時間の平均値はＲｇｏａｌ± であるため、以下の式（１２）が成り立つ。
【数１２】
2006155525.tif 000014
式（８）、式（１１）、及び式（１２）から以下の式（１３）が導かれる。
【数１３】
2006155525.tif 000015
この式（１３）をΔｔについて解くと式（１４）が導かれる。
【数１４】
2006155525.tif 000016
この式（１４）及び式（５）により、式（４）が導かれる。
【００３８】
図５に戻る。
動作モード設定部２４０は、予測応答時間算出部２３０により予測応答時間が算出される毎に、その予測応答時間が目標応答時間を超えるか否かを判断する（Ｓ５５０）。予測応答時間が目標応答時間以下の場合に（Ｓ５５０：ＮＯ）、動作モード設定部２４０は、当該動作モードを、設定対象の候補として選択する（Ｓ５６０）。以上の処理を、各々の動作モードについて繰り返す（Ｓ５７０）。
【００３９】
最後に、動作モード設定部２４０は、平均応答時間が目標応答時間以下である動作モードの何れかを選択して、ウェブ・サーバ３０に対して設定する（Ｓ５８０）。例えば最も処理性能の低い動作モードを設定してもよい。これにより、次回に処理性能を制御するまでの間においては平均応答時間を目標応答時間以下とする範囲内において、できるだけ消費エネルギーを節約することができる。
【００４０】
ここで、処理性能とは、例えば、中央処理装置の動作周波数である。即ちこの場合、処理性能のより低い動作モードが設定された場合には、処理性能のより高い動作モードが設定された場合と比較して、中央処理装置の動作周波数が低下する。これにより、中央処理装置における演算処理の頻度が低下して消費電力が低下すると共に、中央処理装置の電圧を低下させることが可能となる。
【００４１】
なお、処理性能とは、中央処理装置の動作周波数に限定されず、例えば、ウェブ・アプリケーションプログラムに割当てる中央処理装置の数であってもよい。即ちこの場合、ウェブ・サーバ３０は複数の中央処理装置を有しており、処理性能のより低い動作モードが設定された場合には、処理性能のより高い動作モードが設定された場合と比較して、ウェブ・アプリケーションプログラムに割当てる中央処理装置の数が低下する。これにより、中央処理装置により実行される他のプログラムの実行効率を向上させることができ、中央処理装置により提供される計算資源を無駄なく有効利用できる。
【００４２】
更に他の例として、処理性能とは、中央処理装置の演算時間をウェブ・アプリケーションプログラムに割当てるタイムスライスの長さであってもよいし、ウェブ・アプリケーションプログラムを実行するスレッドをスケジューリングする優先度であってもよい。これらの場合においても、処理性能を適切に制御することにより、中央処理装置により提供される計算資源を無駄なく有効利用できる。
【００４３】
図７は、平均応答時間の制御例を示す。（ａ）は、安定状態から過渡状態に遷移する場合の平均応答時間及び処理性能の高さの推移を示す。（ａ）に示すように、動作モードを変更して処理性能を低下させると、平均応答時間は徐々に増加して目標応答時間に漸近する。
【００４４】
（ｂ）は、過渡状態における平均応答時間及び処理性能の高さの推移を示す。過渡状態においては、基準期間後の平均応答時間が目標応答時間を超えない範囲内において、できるだけ低い処理性能の動作モードを設定する。このため、ウェブ・サーバ３０は、（ａ）と比較してより低い処理性能の動作モードとなる。この結果、平均応答時間は、（ａ）と比較してより急激に増加する。これにより、（ａ）に図示した制御よりも、消費エネルギーを削減できる。
【００４５】
過渡状態において、制御装置２５は、基準期間が経過する毎に平均応答時間を取得し、予測応答時間を求める。予測応答時間は、時間の経過に応じて徐々に増大して目標応答時間を超える。この場合、制御装置２５は、これまでより高い処理性能を有する動作モードをウェブ・サーバ３０に対して設定する（図中の点線部分）。これにより、平均応答時間は目標応答時間を超えることなく目標応答時間に漸近する。
【００４６】
以上、図１から図７に示したように、本実施例に示す情報処理システム１０によれば、基準期間が経過する毎に、動作モードを変更した場合してから更に基準期間が経過した時点における平均応答時間の予測値を算出し、その予測値が目標値未満となる動作モードを設定する。これにより、処理性能を制御する時間間隔が比較的長い場合であっても処理性能を変更し過ぎることを防ぎ、平均応答時間を目標値付近で安定的に推移させることができる。
【００４７】
また、本実施例の効果を実証した実験によれば、常に最大の動作周波数でウェブ・サーバ３０を動作させた場合と比較して、５０％以上の消費エネルギーを削減することが確かめられた。また、予め分かっている最適な動作周波数でウェブ・サーバ３０を動作させた場合と比較しても、消費エネルギーがほとんど変わらないことが確かめられた。なお、実験においては、ベンチマークプログラムとしてSPECjAppServer2002を用い、処理要求の頻度の設定値であるIRを４０又は５０に設定した。また、ウェブ・サーバ３０としてPentiumM 1.6Ghz(Pentiumは登録商標)を搭載するＰＣを使用し、そのＰＣにおいてWebSphereアプリケーションサーバを動作させた(WebSphereは登録商標)。
【００４８】
図８は、本実施例の変形例における制御装置２５の機能を機能ブロックに分類して示す。本変形例において、ウェブ・サーバ３０は、複数のアプリケーションプログラムの各々を実行し、これら複数のアプリケーションプログラムの各々について、目標応答時間が定められている。即ち例えば、あるアプリケーションが処理要求を受けてから応答するまでの応答時間の目標値が定められており、他のアプリケーションプログラムが処理要求を受けてから応答するまでの応答時間の目標値が定められており、これらの目標値は異なってもよい。
【００４９】
目標応答時間取得部２００は、各々のアプリケーションプログラムについて目標応答時間を取得する。平均応答時間取得部２１０は、各々のアプリケーションプログラムについて、ウェブ・サーバ３０がそのアプリケーションプログラムを実行している間の応答時間の平均値を平均応答時間として取得する。処理要求数取得部２２０は、各々のアプリケーションプログラムについて、ウェブ・サーバ３０が受信した累積の処理要求の数をウェブ・サーバ３０から取得する。そして、予測応答時間算出部２３０は、何れかのアプリケーションプログラムについて平均応答時間が目標応答時間を超える場合に、そのアプリケーションプログラムを制御対象として選択する。そして、予測応答時間算出部２３０は、ウェブ・サーバ３０に複数の動作モードの各々を設定した場合における、そのアプリケーションプログラムの予測応答時間を算出する。動作モード設定部２４０は、ウェブ・サーバ３０が過渡状態の場合においては、その予測応答時間が目標応答時間未満となる動作モードのうち消費エネルギーが最小の動作モードを選択して、ウェブ・サーバ３０に設定する。動作モード設定部２４０のその他の処理は図２の動作モード設定部２４０の処理と略同一であるので説明を省略する。
【００５０】
図９は、本実施例の変形例において制御装置２５が情報処理システム１０の処理性能を設定する処理の一例を示す。平均応答時間取得部２１０は、各々のアプリケーションプログラムについて平均応答時間を取得し（Ｓ８００）、目標応答時間取得部２００は、各々のアプリケーションプログラムについて目標応答時間を取得する（Ｓ８１０）。
【００５１】
そして、予測応答時間算出部２３０は、全てのアプリケーションプログラムについて、平均応答時間が目標等時間未満であるか否かを判断する（Ｓ８２０）。予測応答時間算出部２３０は、何れかのアプリケーションプログラムについて平均応答時間が目標応答時間を超える場合に（Ｓ８２０：ＮＯ）、平均応答時間が目標応答時間を超えるアプリケーションプログラムの各々について、平均応答時間及び目標応答時間の差分値を算出する（Ｓ８３０）。そして、算出したその差分値が最も大きいアプリケーションプログラムを、制御対象のアプリケーションプログラムとして選択する。
【００５２】
一方、何れのアプリケーションプログラムについても平均応答時間が目標応答時間未満である場合に（Ｓ８２０：ＹＥＳ）、予測応答時間算出部２３０は、平均応答時間及び目標応答時間の差分値が最も小さいアプリケーションプログラムを、制御対象のアプリケーションプログラムとして選択する（Ｓ８４０）。
【００５３】
制御装置２５は、制御対象として選択したアプリケーションプログラムについて、その平均応答時間及び目標応答時間を用いて、Ｓ８５０からＳ８８０の処理を行う。即ち例えば、Ｓ８３０を処理した場合においては、平均応答時間が目標応答時間と最も乖離したアプリケーションプログラムを基準として動作モードを制御する。また、Ｓ８４０を処理した場合においては、平均応答時間が目標応答時間を超えそうなアプリケーションプログラムを基準として動作モードを制御する。より詳細には、ウェブ・サーバ３０が過渡状態の場合においては、予測応答時間算出部２３０は、各々の動作モードをウェブ・サーバ３０に設定した場合における、当該基準とするアプリケーションプログラムの予測応答時間を測定する。そして、動作モード設定部２４０は、予測応答時間を目標応答時間未満とする動作モードをウェブ・サーバ３０に設定する。その他Ｓ８５０からＳ８８０までの処理は、図４に示したＳ４１０からＳ４４０までの処理と略同一であるので説明を省略する。
【００５４】
以上、本変形例に示すように、制御装置２５は、比較的長い時間間隔で動作モードを制御しても平均応答時間を目標応答時間未満とすることができるので、平均応答時間等をアプリケーションプログラム毎に取得することができる。これにより、制御装置２５は、アプリケーションプログラム毎の平均応答時間及び目標応答時間に基づいて、ウェブ・サーバ３０を制御することができる。
【００５５】
図１０は、本実施例又はその変形例に係るエッジ・サーバ２０のハードウェア構成の一例を示す。エッジ・サーバ２０は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００５６】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００５７】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、エッジ・サーバ２０が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。
【００５８】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、エッジ・サーバ２０の起動時にＣＰＵ１０００が実行するブートプログラムや、エッジ・サーバ２０のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００５９】
エッジ・サーバ２０に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出されエッジ・サーバ２０にインストールされて実行される。プログラムがエッジ・サーバ２０等に働きかけて行わせる動作は、図１から図９において説明したエッジ・サーバ２０における動作と同一であるから、説明を省略する。
【００６０】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをエッジ・サーバ２０に提供してもよい。
【００６１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００６２】
【図１】図１は、情報処理システム１０の全体構成を示す。
【図２】図２は、制御装置２５の機能を機能ブロックに分類して示す。
【図３】図３は、ウェブ・サーバ３０が安定状態、過渡状態、及び不安定状態の間を状態遷移する遷移図である。
【図４】図４は、制御装置２５が情報処理システム１０の処理性能を設定する処理の一例を示す。
【図５】図５は、図４のＳ４３０における処理の詳細を示す。
【図６】図６は、平均応答時間の時間経過に応じた変化を１時遅れ要素でモデル化した概念図である。
【図７】図７は、平均応答時間の制御例を示す。
【図８】図８は、本実施例の変形例における制御装置２５の機能を機能ブロックに分類して示す。
【図９】図９は、本実施例の変形例において制御装置２５が情報処理システム１０の処理性能を設定する処理の一例を示す。
【図１０】図１０は、本実施例又はその変形例に係るエッジ・サーバ２０のハードウェア構成の一例を示す。
【符号の説明】
【００６３】
１０  情報処理システム
２０  エッジ・サーバ
２５  制御装置
３０  ウェブ・サーバ
２００  目標応答時間取得部
２１０  平均応答時間取得部
２２０  処理要求数取得部
２３０  予測応答時間算出部
２４０  動作モード設定部
【図１】
2006155525.tif 000017
【図２】
2006155525.tif 000018
【図３】
2006155525.tif 000019
【図４】
2006155525.tif 000020
【図５】
2006155525.tif 000021
【図６】
2006155525.tif 000022
【図７】
2006155525.tif 000023
【図８】
2006155525.tif 000024
【図９】
2006155525.tif 000025
【図１０】
2006155525.tif 000026