(57)【要約】【課題】  稼動中のシステムにおける処理ユニットのサービス時間を導出する。【解決手段】  所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間を取得し、記憶装置に格納するステップと、サービス時間格納部に格納され且つ所定のルールに基づき設定される推定サービス時間に対応する待ち時間を待ち行列シミュレーションにより算出し、待ち行列格納部に格納するシミュレーション実施ステップと、推定サービス時間と待ち時間格納部に格納された待ち時間との和と記憶装置に格納された処理時間との差が許容誤差範囲内に収まるまで又は特定の条件が満たされるまで、推定サービス時間を所定のルールに基づき再設定してサービス時間格納部に格納し、シミュレーション実施ステップを実行する繰り返しステップとを含む。【選択図】図２
2005148799.tif 000002
【特許請求の範囲】
【請求項１】
所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間を取得し、記憶装置に格納するステップと、
サービス時間格納部に格納され且つ所定のルールに基づき設定される推定サービス時間に対応する待ち時間を待ち行列シミュレーションにより算出し、待ち行列格納部に格納するシミュレーション実施ステップと、
前記推定サービス時間と前記待ち時間格納部に格納された前記待ち時間との和と前記記憶装置に格納された前記処理時間との差が許容誤差範囲内に収まるまで又は特定の条件が満たされるまで、前記推定サービス時間を前記所定のルールに基づき再設定して前記サービス時間格納部に格納し、前記シミュレーション実施ステップを実行する繰り返しステップと、
を含み、コンピュータにより実行される情報処理方法。
【請求項２】
システムを構成する１又は複数のクラスタについて、当該クラスタを構成する処理ユニット数を調整する処理ユニット数調整方法であって、
前記システムの稼動中に計測された前記処理ユニットの処理時間を用いて第１の待ち行列シミュレーションを実施することにより前記処理ユニットのサービス時間を導出し、サービス時間格納部に格納するステップと、
前記サービス時間格納部に格納された前記処理ユニットのサービス時間に基づき前記クラスタ毎に第２の待ち行列シミュレーションを実施するステップと、
前記第２の待ち行列シミュレーションにより算出された前記クラスタ毎の処理時間を合計してシステム全体の処理時間を算出し、システム処理時間格納部に格納するステップと、
前記第２の待ち行列シミュレーションにより算出された前記処理ユニット毎の稼働率を稼働率格納部に格納するステップと、
前記システム処理時間格納部に格納された前記システム全体の処理時間と前記稼働率格納部に格納された稼働率とに基づき、前記クラスタを構成する処理ユニット数の適正値を決定し処理ユニット数格納部に格納する決定ステップと、
を含み、コンピュータにより実行される処理ユニット数調整方法。
【請求項３】
所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間を取得し、記憶装置に格納するステップと、
サービス時間格納部に格納され且つ所定のルールに基づき設定される推定サービス時間に対応する待ち時間を待ち行列シミュレーションにより算出し、待ち行列格納部に格納するシミュレーション実施ステップと、
前記推定サービス時間と前記待ち時間格納部に格納された前記待ち時間との和と前記記憶装置に格納された前記処理時間との差が許容誤差範囲内に収まるまで又は特定の条件が満たされるまで、前記推定サービス時間を前記所定のルールに基づき再設定して前記サービス時間格納部に格納し、前記シミュレーション実施ステップを実行する繰り返しステップと、
をコンピュータに実行させるプログラム。
【請求項４】
システムを構成する１又は複数のクラスタについて、当該クラスタを構成する処理ユニット数を調整する処理ユニット数調整プログラムであって、
前記システムの稼動中に計測された前記処理ユニットの処理時間を用いて第１の待ち行列シミュレーションを実施することにより前記処理ユニットのサービス時間を導出し、サービス時間格納部に格納するステップと、
前記サービス時間格納部に格納された前記処理ユニットのサービス時間に基づき前記クラスタ毎に第２の待ち行列シミュレーションを実施するステップと、
前記第２の待ち行列シミュレーションにより算出された前記クラスタ毎の処理時間を合計してシステム全体の処理時間を算出し、システム処理時間格納部に格納するステップと、
前記第２の待ち行列シミュレーションにより算出された前記処理ユニット毎の稼働率を稼働率格納部に格納するステップと、
前記システム処理時間格納部に格納された前記システム全体の処理時間と前記稼働率格納部に格納された稼働率とに基づき、前記クラスタを構成する処理ユニット数の適正値を決定し処理ユニット数格納部に格納する決定ステップと、
をコンピュータ実行させる処理ユニット数調整プログラム。
【請求項５】
所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間を取得し、記憶装置に格納する手段と、
サービス時間格納部に格納され且つ所定のルールに基づき設定される推定サービス時間に対応する待ち時間を待ち行列シミュレーションにより算出し、待ち行列格納部に格納するシミュレーション実施手段と、
前記推定サービス時間と前記待ち時間格納部に格納された前記待ち時間との和と前記記憶装置に格納された前記処理時間との差が許容誤差範囲内に収まるまで又は特定の条件が満たされるまで、前記推定サービス時間を前記所定のルールに基づき再設定して前記サービス時間格納部に格納し、前記シミュレーション実施手段を実行する繰り返し手段と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、稼動中のシステムにおける処理ユニットのサービス時間を導出するための技術及び導出されたサービス時間の利用技術に関する。なお、本願において、処理ユニットとは、クラスタを構成するサーバや、コンピュータに含まれるメモリ及びＣＰＵのセット、或いはプロセッサ等、所定の処理を実行するハードウェアの単位を指す。
【背景技術】
【０００２】
近年、インターネットによるサービスを提供するシステムにおいて、クラスタ構成を用いるケースが増加している。インターネットによるサービスを提供するシステムには、例えば、ユーザからのリクエストの受け付けや認証等を行うウェブ（Ｗｅｂ）フロント・サーバとアプリケーション処理を行うアプリケーション・サーバとデータベース（ＤＢ）へのアクセスを行うＤＢサーバとが含まれる。このようなシステムにクラスタ構成を適用すると、例えばＷｅｂフロント・サーバが同様の機能を持つ複数のサーバによって構成され、負荷を分散した形態で処理を実行するようになる。また例えばＷｅｂフロント・サーバに含まれる複数のサーバが処理系のグループと待機系のグループとに分かれている等、障害時の切り替えや高負荷時のサーバ追加を考慮したクラスタの構成となっている場合もある。また例えばＷｅｂフロント・サーバに含まれるサーバがアプリケーション処理機能をも有し、場合によってはアプリケーション・サーバを構成するサーバに切り替わるような場合もある。
【０００３】
このように多様な形態が含まれる、クラスタ構成を用いたシステムにおいて、処理効率を上げるための様々な技術が存在する。例えば、最も早く処理可能なサーバを選択して処理を実行させる技術が存在する（例えば特許文献１参照）。すなわち、複数のサーバとクライアントとを含む情報処理装置であって、処理に要する時間の予測を複数のサーバに対して要求する予測要求手段と、予測要求手段による要求に応じて予測される処理時間を評価する評価手段と、評価手段により予測された複数のサーバによる処理時間から最も処理時間の短いサーバを選択する手段と、選択手段により選択されたサーバに処理を送りつける手段とを備える。
【特許文献１】特開平７−１３４６８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一方、例えばサービス内容（実行するプログラム）の変更があった場合や取り扱うデータ量が増加した場合等、リソース量の決定に用いる待ち行列モデルのサービス時間を更新する必要がある。待ち行列モデルにおけるサービス時間は、処理時間から待ち時間を減じたものであり、従来、非負荷時の処理時間が値として用いられてきた。また、上で述べた従来技術（特許文献１）においても、予め測定されたハードウェアの処理能力に基づき計算したサービス時間、すなわち非負荷時の処理時間を用いて、待ち時間を含むサーバの処理時間を導出している。
【０００５】
図１に、待ち行列モデルにおける処理時間の概要図を示す。図１において、待ち行列モデルは、待ち行列１０２と処理中要素１０４とにより構成されている。トランザクション等の処理対象データ（処理内容や命令を含む）は、図の左から右に流れていくものとする。例えば先入先出法（ファーストイン・ファーストアウト）で処理を行う場合、トランザクションは、まず待ち行列１０２の最後尾に置かれる。図１の例では、待ち行列１０２には例えば５つのトランザクションが既に含まれているため、６つ目（図の一番左側）に並ぶことになる。そして、待ち行列１０２の先頭から順に処理がなされていき、例えば６つ目に並んだ時点から、前の５つのトランザクションが処理されて順番が回ってくるまでの時間が待ち時間１０６である。そして、実際の処理にかかる時間がサービス時間１０８である。処理時間１００は、トランザクションが投入されてから処理が終了するまでの時間であり、待ち時間１０６とサービス時間１０８との合計である。なお、非負荷時においては、待ち行列１０２が存在せず、処理時間１００はサービス時間１０８と等しくなる。そして、従来技術では、非負荷時の処理時間１００（＝サービス時間１０８）に基づき待ち時間１０６及び処理時間１００を導出する。
【０００６】
しかしながら、稼動中のシステムは負荷がかかっているのが普通であり、サービス時間、すなわち非負荷時の処理時間を計測するのが難しい。このため、待ち行列モデルのサービス時間を更新するためには、システムの稼動状況を一時的に非負荷の状態にする必要がある。一方で、２４時間稼動のシステム等、常に稼動し続けることが要求されているシステムを一旦停止し、非負荷時の処理時間を計測するのは現実的ではない。
【０００７】
そのため、本発明の目的は、稼動中のシステムにおける処理ユニットのサービス時間の導出を可能とするための技術を提供することである。
【０００８】
また、本発明の他の目的は、稼動中のシステムにおけるクラスタのリソース量を適切に設定するための技術を提供することである。
【課題を解決するための手段】
【０００９】
本発明の第１の態様に係る方法は、所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間を取得し、記憶装置に格納するステップと、サービス時間格納部に格納され且つ所定のルールに基づき設定される推定サービス時間に対応する待ち時間を待ち行列シミュレーションにより算出し、待ち行列格納部に格納するシミュレーション実施ステップと、推定サービス時間と待ち時間格納部に格納された待ち時間との和と記憶装置に格納された処理時間との差が許容誤差範囲内に収まるまで又は特定の条件が満たされるまで、推定サービス時間を所定のルールに基づき再設定してサービス時間格納部に格納し、シミュレーション実施ステップを実行する繰り返しステップとを含む。
【００１０】
このように、システムの稼動中に計測された（待ち時間を含む）実際の処理時間に基づき、推定サービス時間による待ち行列シミュレーションを繰り返すことにより、本来、システムの稼動中には計測困難であるサービス時間を導出することができる。すなわち、推定サービス時間を設定して待ち行列シミュレーションを実行した際に、推定サービス時間と、待ち行列シミュレーションの結果として得られる待ち時間との和（シミュレーション結果の処理時間）が、実際に計測された処理時間に十分近ければ、設定した推定サービス時間は実際のサービス時間に十分近いとみなすことができる。シミュレーション結果の処理時間が、実際に計測された処理時間と大きく異なる場合には、設定した推定サービス時間も実際のサービス時間（正解）と大きく異なるため、推定サービス時間を設定し直す。
【００１１】
本発明の第２の態様に係る方法は、システムを構成する１又は複数のクラスタについて、当該クラスタを構成する処理ユニット数を調整する処理ユニット数調整方法であって、システムの稼動中に計測された処理ユニットの処理時間を用いて第１の待ち行列シミュレーションを実施することにより処理ユニットのサービス時間を導出し、サービス時間格納部に格納するステップと、サービス時間格納部に格納された処理ユニットのサービス時間に基づきクラスタ毎に第２の待ち行列シミュレーションを実施するステップと、第２の待ち行列シミュレーションにより算出されたクラスタ毎の処理時間を合計してシステム全体の処理時間を算出し、システム処理時間格納部に格納するステップと、第２の待ち行列シミュレーションにより算出された処理ユニット毎の稼働率を稼働率格納部に格納するステップと、システム処理時間格納部に格納されたシステム全体の処理時間と稼働率格納部に格納された稼働率とに基づき、クラスタを構成する処理ユニット数の適正値を決定し処理ユニット数格納部に格納する決定ステップとを含む。
【００１２】
このように、システム稼動中に計測された実際の処理時間に基づき導出されたサービス時間を用いてさらに待ち行列シミュレーションを実行することにより、システムを構成するクラスタ毎の処理時間を算出し、各クラスタの処理時間に基づき（各クラスタを構成する）処理ユニット数を決定する。これにより、システム稼動中においてもサービス時間に基づき適切な処理ユニット数を決定することができる。
【００１３】
また、本発明の第２の態様において、上記決定ステップが、システム処理時間格納部に格納されたシステム全体の処理時間が所定の最短処理時間よりも短い場合、稼働率格納部に格納された稼働率に基づき、システムを構成するクラスタのうちで稼働率が最小の処理ユニットを含むクラスタを特定するステップと、特定されたクラスタから処理ユニットを１減らした状態で第２の待ち行列シミュレーションを実施するステップとを含むようにしてもよい。
【００１４】
また、本発明の第２の態様において、処理ユニット接続切替装置に、クラスタを構成する処理ユニットの数が処理ユニット数格納部に格納されたクラスタを構成する処理ユニット数の適正値と等しくなるように接続切替させるステップをさらに含むようにしてもよい。これにより、システム稼動中においても適切な処理ユニット数に動的に調整することができる。
【００１５】
本発明の第３の態様に係る方法は、所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間からサービス時間を導出するサービス時間導出方法であって、処理ユニットの稼動中に計測され且つ処理時間格納部に格納されている処理ユニットの処理時間を推定サービス時間としてサービス時間格納部に格納するステップと、サービス時間格納部に格納された推定サービス時間に基づき待ち行列シミュレーションを実施し、待ち行列シミュレーションにより算出された待ち時間を待ち時間格納部に格納するシミュレーション実施ステップと、待ち時間格納部に格納された待ち時間とサービス時間格納部に格納された推定サービス時間との和と、処理時間格納部に格納されている処理時間との差を計算し、第１の差として誤差格納部に格納する誤差計算ステップと、誤差格納部に格納された第１の差が所定の誤差許容範囲外である場合、推定サービス時間を再設定し、サービス時間格納部に格納する再設定ステップとを含む。そして、誤差格納部に格納された第１の差が所定の誤差許容範囲内である場合、サービス時間格納部に格納された推定サービス時間を当該処理ユニットのサービス時間とみなす。
【００１６】
このように、まず初めに実際の処理時間を推定サービス時間に設定して待ち行列シミュレーションを行うことにより、待ち行列の状況によっては、比較的近い値から推定サービス時間を再設定していくことができる。例えばトランザクションの発生率が低い等、待ち行列がない状態であれば、最初に設定した推定サービス時間は再設定するまでもなく実際のサービス時間と等しくなる。
【００１７】
また、本発明の第３の態様において、基準値格納部には、サービス時間の最大値以下の値を有する第１の基準値と当該第１の基準値より小さく且つサービス時間の最小値以上の値を有する第２の基準値とが格納されており、上記再設定ステップが、誤差格納部に格納された第１の差が所定の誤差許容範囲外であり且つ当該第１の差が正の値である場合には、第１の基準値を切り下げて基準値格納部に格納すると共に新たな第１の基準値と第２の基準値との間に新たな推定サービス時間を設定してサービス時間格納部に格納するステップと、誤差格納部に格納された第１の差が所定の誤差許容範囲外であり且つ当該第１の差が負の値である場合には、第２の基準値を切り上げて基準値格納部に格納すると共に新たな第２の基準値と第１の基準値との間に新たな推定サービス時間を設定してサービス時間格納部に格納するステップとを含むようにしてもよい。
【００１８】
このように、推定サービス時間の再設定範囲を次第に狭めていくことにより、推定サービス時間を実際のサービス時間（正解）に近づけることができる。すなわち、シミュレーション結果の処理時間が、実際に計測された処理時間よりも長かった場合には、第１の基準値を切り下げて推定サービス時間を短く再設定するようにし、シミュレーション結果の処理時間が、実際に計測された処理時間よりも短かった場合には、第２の基準値を切り上げて推定サービス時間を長く再設定するようにする。第１の基準値と第２の基準値との大小関係が逆転することはないため、推定サービス時間の再設定範囲が狭くなっていく。
【００１９】
また、本発明の第３の態様において、サービス時間最大値の初期値として処理ユニットの処理時間を最大値格納部に格納するステップと、サービス時間最小値の初期値としてゼロを最小値格納部に格納するステップとをさらに含み、上記再設定ステップが、誤差格納部に格納された第１の差が所定の誤差許容範囲外であり且つ当該第１の差が正の値である場合には、推定サービス時間を用いてサービス時間最大値を再設定し、最大値格納部に格納するステップと、推定サービス時間とサービス時間最小値との平均値を用いて推定サービス時間を再設定し、サービス時間格納部に格納するステップとを含むようにしてもよい。
【００２０】
また、本発明の第３の態様において、再設定され且つ最大値格納部に格納されたサービス時間最大値と、再設定され且つサービス時間格納部に格納された推定サービス時間との差である第２の差が、所定の近似範囲外である場合、推定サービス時間に基づきシミュレーション実施ステップ以降を再実行するようにしてもよい。
【００２１】
なお、本発明に係る方法をコンピュータに実行させるためのプログラムを作成することも可能であって、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークを介してデジタル信号として配信される場合もある。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
【発明の効果】
【００２２】
本発明によれば、システム稼動中においても処理ユニットのサービス時間を把握することができる。また、稼動中のシステムにおけるクラスタのリソース量（処理ユニット数）を適切に設定することができる。
【発明を実施するための最良の形態】
【００２３】
本発明の一実施の形態に係るシステム構成図を図２に示す。例えばインターネットであるネットワーク１には、サーバ切替装置５と例えばパーソナル・コンピュータである１又は複数のユーザ端末３とが、無線又は有線によって接続されている。ユーザ端末３は、図示していないウェブ（Ｗｅｂ）ブラウザ機能を有し、Ｗｅｂページの閲覧が可能となっている。なお、ユーザ端末３は、Ｗｅｂブラウザ機能を有する携帯電話機やその他の携帯情報端末等であってもよい。サーバ切替装置５には、クラスタ５０とクラスタ５４と処理時間格納部７と管理サーバ２１とが接続されている。この他にも「・・・」で示している１又は複数のクラスタが接続されている。クラスタ５０にはサーバ５１とサーバ５３とが含まれ、クラスタ５４にはサーバ５５が含まれている。各クラスタにはこの他にも１又は複数のサーバが含まれている場合もある。また、各サーバには処理時間ログ生成部が含まれている。サーバ５１には処理時間ログ生成部５１０が含まれており、サーバ５３には処理時間ログ生成部５３０が含まれており、サーバ５５には処理時間ログ生成部５５０が含まれている。これらの処理時間ログ生成部は、各サーバの処理時間ログを生成し、処理時間格納部７に格納する。
【００２４】
サービス時間決定装置９には、処理時間格納部７とサービス時間格納部１１とが接続されており、サービス時間決定装置９は、処理時間格納部７を参照して処理を実行し、処理結果をサービス時間格納部１１に格納する。また、性能評価装置１５には、サービス時間格納部１１とシステム要件ＤＢ１３とサーバ・サービス時間ＤＢ１７と評価結果格納部１９とが接続されている。性能評価装置１５は、サービス時間格納部１１とシステム要件ＤＢ１３とを参照して処理を実行し、処理結果をサーバ・サービス時間ＤＢ１７と評価結果格納部１９とに格納する。また、評価結果格納部１９は管理サーバ２１にも接続されており、管理サーバ２１は、評価結果格納部１９を参照して処理を行う。
【００２５】
また、各クラスタを構成するサーバは、各々サーバ切替装置５に接続されている又は接続可能な状態になっている。そして、クラスタのリソース（クラスタを構成するサーバの台数）は、管理サーバ２１によって管理されており、管理サーバ２１は、必要に応じてサーバ切替装置５に対しリソースの切替指示を出力する。例えばクラスタ５０に含まれるサーバの数を増やすように指示を出す。
【００２６】
図３を用いて、図２に示したサーバ側（クラスタ５０等）の処理の概要を説明する。図３のサーバ処理概要図には、Ｗｅｂフロント・サーバ３００とアプリケーション・サーバ３１０とＤＢサーバ３２０とが含まれている。これらは、サーバを機能的に分類したサーバ・グループである。そして、Ｗｅｂフロント・サーバ３００には、サーバＡ（３０２）とサーバＦ（３０４）とが含まれている。サーバＡ（３０２）及びサーバＦ（３０４）は各々複数のサーバ（処理ユニット）によって構成されており、丸数字で示されている。すなわち、サーバＡ（３０２）及びサーバＦ（３０４）は各々３台のサーバによって構成されているクラスタである。
【００２７】
アプリケーション・サーバ３１０には、サーバＢ（３１２）とサーバＤ（３１４）とサーバＥ（３１６）とが含まれている。各々２台のサーバによって構成されている。ＤＢサーバ３２０には、サーバＣ（３２２）が含まれている。サーバＣ（３２２）は１台のサーバによって構成されている。なお、各サーバ（サーバＡ（３０２）等）の左又は上に示されている縦線又は横線模様の四角は、待ち行列を表している。また、図２に示したクラスタ５０やクラスタ５４は、図３のサーバＡ（３０２）やサーバＢ（３１２）に相当し、リソース（サーバ台数）の増減は、サーバＡ（３０２）やサーバＢ（３１２）に含まれる丸数字の増減で示される。
【００２８】
トランザクション等の処理対象データ（処理内容や命令を含む）は、図の左上から投入され、まずサーバＡ（３０２）による処理が行われる。サーバＡ（３０２）は処理結果をサーバＢ（３１２）に出力し、サーバＢ（３１２）は処理結果をサーバＤ（３１４）とサーバＣ（３２２）との少なくともいずれかに出力する。サーバＤ（３１４）とサーバＣ（３２２）との少なくともいずれかは、処理結果をサーバＥ（３１６）に出力し、サーバＥ（３１６）は処理結果をサーバＦ（３０４）に出力する。サーバＦ（３０４）は処理結果を例えばネットワーク１を介してユーザ端末３（図２）に送信する。このようにして一連の処理が行われ、処理を行った全サーバにおける待ち時間を含めた処理時間の合計が、システム全体の処理時間（レスポンス時間）となる。
【００２９】
図４に、システム要件ＤＢ１３（図２）のテーブル構成及び格納されるデータの一例を示す。図４の例には要件項目の列４００と設定値の列４０２とが含まれている。このテーブルには、システム管理者等が予めデータを格納しておく。例えば１行目には、要件項目の列４００に「システム全体のレスポンス時間」と示されており、設定値の列４０２に「最大値２ｓｅｃ  最小値１ｓｅｃ」と示されている。すなわち、当該システムは、システム全体としての処理時間を、待ち時間も含めて１秒から２秒の間にする必要があるという設定がなされている。そして、システム全体の処理時間が例えば３秒であった場合、１秒短くするために、いずれかのクラスタのリソースを増やす等の対策を行う必要がある。また、図４の例では、２行目以降には各サーバの最大稼働率が登録されている。例えばこの値を越える稼働率のサーバがあった場合には、不具合が生じる危険があるため、当該サーバを含むクラスタのリソースを増やす等の対策を行う必要がある。なお、システム要件ＤＢ１３には、図示しないが、この他にも、クラスタを構成するサーバの識別データ及び機種種別や実行させるソフトウェア（プログラム）に関する設定データが格納されているテーブルが設けられている。
【００３０】
図５に、サーバ・サービス時間ＤＢ１７（図２）のテーブル構成及び格納されるデータの一例を示す。図５の例には、機種種別５００の列とソフト・ＯＳ（Operating System）の列５０２とサービス時間の列５０４とが含まれている。データは、性能評価装置１５（図２）の処理結果として格納される。サービス時間は、サーバの機種種別、実行するソフトウェア（プログラム）及びＯＳに主に依存するため、このようなデータを格納しておくことにより、新規のシステムを設計する際における処理時間シミュレーションに利用することが可能となる。
【００３１】
図６に、サービス時間決定装置９（図２）の機能ブロック図を示す。図６に示すサービス時間決定装置９には、初期設定部６００と待ち行列シミュレータ６１０と誤差算出部６２０と最大誤差抽出部６３０と第１比較部６４０と設定値調整部６５０と第２比較部６６０と処理サーバ制御部６７０とが含まれている。処理の詳細については後の処理フローの説明において述べる。また、図６には、処理時間格納部６００７とサービス時間格納部６０１１とが含まれているが、これらは各々図２に示した処理時間格納部７とサービス時間格納部１１とに等しい。
【００３２】
また、図２には図示していないが、サービス時間決定装置９はワーク・メモリ領域を有しており、ワーク・メモリ領域には、第１サーバ設定値格納部６０１、第２サーバ設定値格納部６０２、第３サーバ設定値格納部６０３、・・・、及び第ｎサーバ設定値格納部６０５と、第１サーバ待ち時間格納部６１１、第２サーバ待ち時間格納部６１２、第３サーバ待ち時間格納部６１３、・・・、及び第ｎサーバ待ち時間格納部６１５と、第１サーバ誤差格納部６２１、第２サーバ誤差格納部６２２、第３サーバ誤差格納部６２３、・・・、及び第ｎサーバ誤差格納部６２５と、特定番号格納部６３１と、再設定値格納部６５１とが含まれている。ここで、ｎはシステムに含まれるサーバの数であり、サーバ設定値格納部、サーバ待ち時間格納部及びサーバ誤差格納部は各々ｎ個存在する。
【００３３】
なお、第１サーバ設定値格納部６０１、第２サーバ設定値格納部６０２、第３サーバ設定値格納部６０３、・・・、及び第ｎサーバ設定値格納部６０５とには、各々、処理時間（Ti（iは例えば１からnまでの整数））とサービス時間最小値（smini）とサービス時間最大値（smaxi）と推定サービス時間（si）とを格納することができるようになっている。
【００３４】
さらにサービス時間決定装置９には、リクエスト頻度格納部６０８と第１近似パラメタ格納部６３８と第２近似パラメタ格納部６５８とが含まれている。これらには所定の値が予め格納されている。
【００３５】
初期設定部６００は、処理時間格納部６００７を参照し、処理結果（Ti、smini、smaxi及びsi）を第１サーバ設定値格納部６０１、第２サーバ設定値格納部６０２、第３サーバ設定値格納部６０３、・・・、及び第ｎサーバ設定値格納部６０５との対応する格納部に格納する。
【００３６】
待ち行列シミュレータ６１０は、第１サーバ設定値格納部６０１、第２サーバ設定値格納部６０２、第３サーバ設定値格納部６０３、・・・、及び第ｎサーバ設定値格納部６０５とリクエスト頻度格納部６０８とを参照し、各処理結果（wi）を第１サーバ待ち時間格納部６１１、第２サーバ待ち時間格納部６１２、第３サーバ待ち時間格納部６１３、・・・、及び第ｎサーバ待ち時間格納部６１５の対応する格納部に格納する。
【００３７】
誤差算出部６２０は、第１サーバ設定値格納部６０１、第２サーバ設定値格納部６０２、第３サーバ設定値格納部６０３、・・・、及び第ｎサーバ設定値格納部６０５と、第１サーバ待ち時間格納部６１１、第２サーバ待ち時間格納部６１２、第３サーバ待ち時間格納部６１３、・・・、及び第ｎサーバ待ち時間格納部６１５とを参照し、各処理結果（｜（si＋wi−Ti）／Ti｜）を第１サーバ誤差格納部６２１、第２サーバ誤差格納部６２２、第３サーバ誤差格納部６２３、・・・、及び第ｎサーバ誤差格納部６２５の対応する格納部に格納する。
【００３８】
最大誤差抽出部６３０は、第１サーバ誤差格納部６２１、第２サーバ誤差格納部６２２、第３サーバ誤差格納部６２３、・・・、及び第ｎサーバ誤差格納部６２５を参照し、処理結果（j）を特定番号格納部６３１に格納する。「j」は、特定のサーバに対応する番号である。
【００３９】
第１比較部６４０は、特定のサーバ番号「j」を格納する特定番号格納部６３１と、特定のサーバ番号「j」に対応する第ｊサーバ設定値格納部と、特定のサーバ番号「j」に対応する第ｊサーバ待ち時間格納部と、第１近似パラメタ格納部６３８とを参照し、処理結果に応じて設定値調整部６５０又は処理サーバ制御部６７０に処理を実行させる。
【００４０】
設定値調整部６５０は、特定のサーバ番号「j」を格納する特定番号格納部６３１と、特定のサーバ番号「j」に対応する第ｊサーバ設定値格納部とを参照し、処理結果（sj、及びsmaxj又はsminj）を再設定値格納部６５１に格納するとともに、特定のサーバ番号「j」に対応する第ｊサーバ設定値格納部に格納されているデータ（sj、及びsmaxj又はsminj）を更新する。
【００４１】
第２比較部６６０は、再設定値格納部６５１と第２近似パラメタ格納部６５８とを参照し、処理結果に応じて処理サーバ制御部６７０又は待ち行列シミュレータ６１０に処理を実行させる。処理サーバ制御部６７０は、処理結果に応じて、最大誤差抽出部６３０に処理を実行させるか、又は第１サーバ設定値格納部６０１、第２サーバ設定値格納部６０２、第３サーバ設定値格納部６０３、・・・、及び第ｎサーバ設定値格納部６０５を参照してサービス時間格納部６０１１にデータ（si）を格納する。
【００４２】
次に、図７を用いて、図６に示したサービス時間決定装置が実施する処理（サービス時間算出処理）の処理フローについて説明する。
【００４３】
まず、初期設定部６００は、処理時間格納部６００７から全サーバの各処理時間（Ti（iは例えば１からn（サーバ数）までの整数であり、個々のサーバに対応する番号である。））を読み込み、第１サーバ設定値格納部６０１、第２サーバ設定値格納部６０２、第３サーバ設定値格納部６０３、・・・、及び第ｎサーバ設定値格納部６０５の対応する格納部に格納する（ステップＳ１）。処理時間格納部６００７には、処理時間ログ生成部５１０乃至５５０（図２）によって生成された、各サーバの例えば１トランザクション当たりの平均処理時間が格納されており、この値を読み込む。なお、処理時間格納部６００７にログ・データのみが格納されている場合、初期設定部６００はログ・データに基づき各サーバの例えば１トランザクション当たりの平均処理時間を算出して上記各サーバ設定値格納部に格納する。
【００４４】
さらに、初期設定部６００は、全サーバについて、サービス時間最小値格納領域に「０」を格納し、推定サービス時間格納領域及びサービス時間最大値格納領域に上で読み込んだ処理時間を格納する（ステップＳ３）。すなわち、上記各サーバ設定値格納部において、sminiに「０」を設定し、si及びsmaxiにTiの値を設定する。
【００４５】
そして、待ち行列シミュレータ６１０は、全サーバにつき、推定サービス時間（si）と、リクエスト頻度格納部６０８に格納されている所定のリクエスト頻度であるλとを用いて待ち行列シミュレーションを実施し、待ち時間（wi）を算出して第１サーバ待ち時間格納部６１１、第２サーバ待ち時間格納部６１２、第３サーバ待ち時間格納部６１３、・・・、及び第ｎサーバ待ち時間格納部６１５の対応する格納部に格納する（ステップＳ５）。なお、待ち行列シミュレーションの具体的な方法については従来技術（例えば、「“待ち行列のシミュレーション”、インターネット＜URL：http://www.cis.nagasaki-u.ac.jp/labs/oguri/CompSimExm.pdf＞」参照。）を用いればよく、詳細な説明は省略する。
【００４６】
そして、誤差算出部６２０は、各サーバにつき、処理時間（Ti）、推定サービス時間（si）及び上記各サーバ待ち時間格納部に格納された待ち時間（wi）を用いて、｜（si＋wi−Ti）／Ti｜の値を算出し、第１サーバ誤差格納部６２１、第２サーバ誤差格納部６２２、第３サーバ誤差格納部６２３、・・・、及び第ｎサーバ誤差格納部６２５の対応する格納部に格納する。最大誤差抽出部６３０は、上記各サーバ誤差格納部を参照し、最も値の大きい｜（sj＋wj−Tj）／Tj｜を特定し、「j」を特定番号格納部６３１に格納する（ステップＳ７）。すなわち、最大誤差が生じているサーバ（j）を特定する。
【００４７】
そして、第１比較部６４０は、特定されたサーバ（j）の推定サービス時間（sj）、待ち時間（wj）及び処理時間（Tj）とを用いてsj＋wjとTjとを比較し（ステップＳ９）、さらに第１近似パラメタ格納部６３８に格納されている所定の近似パラメタであるε１とを用いて、sj＋wjがTjに十分近いか判定する（ステップＳ１１）。すなわち、推定サービス時間及び待ち時間の和と実際に測定された処理時間との差が、許容誤差範囲内に収まっているか判定する。具体的には、値の差の絶対値（例えば｜sj＋wj−Tj｜）が所定の近似パラメタであるε１より小さければ、十分に近いと判定する。十分に近いと判定された場合（ステップＳ１１：Ｙｅｓルート）、後に述べるステップＳ２５の処理に移行する。一方、十分に近いとはいえないと判定された場合（ステップＳ１１：Ｎｏルート）、第１比較部６４０により処理を指示された設定値調整部６５０は、sj＋wjがTjより大きいか判定する（ステップＳ１３）。
【００４８】
大きくないと判定された場合（ステップＳ１３：Ｎｏルート）、第１比較部６４０により処理を指示された設定値調整部６５０は、sminjにsjを設定し、sjにsjとsmaxjとの平均値（（sj＋smaxj）／２）を設定して再設定値格納部６５１に格納するとともに、当該再設定されたsminj及びsjを用いて、第１サーバ設定値格納部６０１、第２サーバ設定値格納部６０２、第３サーバ設定値格納部６０３、・・・、及び第ｎサーバ設定値格納部６０５の対応する格納部（サーバ（j））のデータを更新する（ステップＳ１５）。すなわち、シミュレーションの結果算出された処理時間が実際に測定された処理時間以下であるということは、今回シミュレーションで使用した推定サービス時間（sj）が実際の（求めようとしている）値よりも短く設定されていたと考えられるため、sminjを切り上げ且つ推定サービス時間を長く再設定する。sj及びsminjが再設定されると、第２比較部６６０は、再設定され且つ再設定値格納部６５１に格納されたsjとsminjとを比較する（ステップＳ１７）。そして、後に述べるステップＳ２３の処理に移行する。
【００４９】
一方、sj＋wjがTjより大きいと判定された場合（ステップＳ１３：Ｙｅｓルート）、設定値調整部６５０は、smaxjにsjを設定し、sjにsjとsminjとの平均値（（sj＋sminj）／２）を設定して再設定値格納部６５１に格納するとともに、当該再設定されたsmaxj及びsjを用いて、第１サーバ設定値格納部６０１、第２サーバ設定値格納部６０２、第３サーバ設定値格納部６０３、・・・、及び第ｎサーバ設定値格納部６０５のいずれか対応する格納部（サーバ（j））のデータを更新する（ステップＳ１９）。すなわち、シミュレーションの結果算出された処理時間が実際に測定された処理時間より長いということは、今回シミュレーションで使用した推定サービス時間（sj）が実際の（求めようとしている）値よりも長く設定されていたと考えられるため、smaxjを切り下げ且つ推定サービス時間を短く再設定する。sj及びsmaxjが再設定されると、第２比較部６６０は、再設定されたsjとsmaxjとを比較する（ステップＳ２１）。
【００５０】
そして、第２比較部６６０は、ステップＳ１７又はステップＳ２１の比較結果に基づき、sjとsminj、又はsjとsmaxjとが十分に近いか判定する（ステップＳ２３）。具体的には、値の差の絶対値（例えば｜sj−sminj｜）が所定の近似パラメタであるε２より小さければ、十分に近いと判定する。このような場合、これ以上処理を行っても所望の結果を得ることが難しいため、このサーバについての処理を終了するものである。十分に近いとはいえないと判定された場合（ステップＳ２３：Ｎｏルート）、ステップＳ５の処理に戻り、第２比較部６６０により処理を指示された待ち行列シミュレータ６１０は、ステップＳ１５又はステップＳ１９において再設定され且つ更新された値（sj）に基づき待ち行列シミュレーションを実行する。
【００５１】
一方、十分に近いと判定された場合（ステップＳ２３：Ｙｅｓルート）、第２比較部６６０により処理を指示された処理サーバ制御部６７０は、全サーバについての処理が終了したか判定する（ステップＳ２５）。全サーバについての処理が終了していないと判定された場合（ステップＳ２５：Ｎｏルート）、最大誤差抽出部６３０は、未だ処理がなされていないサーバのうち、｜（sj＋wj−Tj）／Tj｜の値が最大であるサーバ（j）を特定する（ステップＳ２７）。そして、ステップＳ９の処理に戻る。
【００５２】
一方、全サーバについての処理が終了したと判定された場合（ステップＳ２５：Ｙｅｓルート）、処理サーバ制御部６７０は、第１サーバ設定値格納部６０１、第２サーバ設定値格納部６０２、第３サーバ設定値格納部６０３、・・・、及び第ｎサーバ設定値格納部６０５に格納されている全サーバの推定サービス時間（si）を、サービス時間算出処理の結果データとしてサービス時間格納部６０１１に格納する（ステップＳ２９）。そしてサービス時間算出処理を終了する。
【００５３】
このように、推定サービス時間を設定し、シミュレーションの結果に基づき推定サービス時間の再設定範囲を次第に絞り込んでいくような方法で各サーバのサービス時間を算出する。これにより、システム稼動中においても（システムを非負荷状態にすることなく）各サーバのサービス時間を知ることができる。
【００５４】
次に、図８及び図９を用いて、性能評価装置１５（図２）が実施する処理（リソース量調整処理）の処理フローについて説明する。以下、処理の主体は性能評価装置１５（図２）であり、記載を省略する場合もある。まず、性能評価装置１５は、システム要件ＤＢ１３（図２）から、システムを構成する全クラスタについて、各クラスタのリソース量（クラスタを構成するサーバ台数）を読み込み、図示しないワーク・メモリ領域内の例えば「Ｘ」という格納部及び「Ｙ」という格納部に格納する（図８：ステップＳ４１）。なお、各クラスタのリソース量を、以下の説明においてRkiと表現する。kiは例えば１からkn（クラスタ数）までの整数であり、個々のクラスタに対応する番号である。
【００５５】
さらに、性能評価装置１５は、システム要件ＤＢ１３（図２）から、システム全体のレスポンス時間の最大値及び最小値と、各サーバの稼働率上限とを読み込み、ワーク・メモリ領域に格納する（ステップＳ４３）。なお、以下の説明において、システム全体のレスポンス時間最大値をRPmax、最小値をRPminと表現する。同様に、各サーバの稼働率上限をKmaxiと表現する。iは例えば１からn（サーバ数）までの整数であり、個々のサーバに対応する番号である。
【００５６】
そして、性能評価装置１５は、サービス時間格納部１１（図２）に格納された各サーバのサービス時間を読み込み、ワーク・メモリ領域に格納する（ステップＳ４５）。なお、以下の説明において、各サーバのサービス時間をSiと表現する。そして、各クラスタのリソース量（Rki）及び各サーバのサービス時間（Si）に基づき、クラスタ毎に待ち行列シミュレーションを実施する（ステップＳ４７）。なお、待ち行列シミュレーションの具体的な方法については従来技術を用いればよく、詳細な説明は省略するが、リソース量（Rki）をサービス窓口数として用いる。
【００５７】
そして、性能評価装置１５は、待ち行列シミュレーションの結果に基づき、各サーバの稼働率及びシステム全体のレスポンス時間を特定し、各々ワーク・メモリ領域に格納する（ステップＳ４９）。システム全体のレスポンス時間は、各クラスタの処理時間を加算して算出する。なお、以下の説明において、システム全体のレスポンス時間をRP、各サーバの稼働率をKiと表現する。
【００５８】
そして、性能評価装置１５は、待ち行列シミュレーションによって算出されたシステム全体のレスポンス時間が、システム要件として定められているシステム全体のレスポンス時間の最大値及び最小値の範囲内にあるか、すなわちRPmin≦RP≦RPmaxであるか判定する（ステップＳ５１）。RPmin≦RP≦RPmaxであると判定された場合（ステップＳ５１：Ｙｅｓルート）、リソース量の調整は必要ないため、処理は端子Ｂを介して図９の処理に移行し、リソース量調整処理を終了する。
【００５９】
一方、RPmin≦RP≦RPmaxではないと判定された場合（ステップＳ５１：Ｎｏルート）、待ち行列シミュレーションによって算出されたシステム全体のレスポンス時間が、システム要件として定められているシステム全体のレスポンス時間の最大値よりも長いか、すなわちRP＞RPmaxであるか判定する（ステップＳ５３）。RP＞RPmaxではないと判定された場合（ステップＳ５３：Ｎｏルート）、処理は端子Ａを介して図９の処理に移行する。
【００６０】
一方、RP＞RPmaxであると判定された場合（ステップＳ５３：Ｙｅｓルート）、ステップＳ４９において特定した各サーバの稼働率（Ki）に基づき、最大の稼働率であるサーバ（j）と、稼働率上限を越えているサーバ、すなわちKm＞Kmaxmであるサーバ（m）とを特定する（ステップＳ５５）。「j」及び「m」は、特定のサーバに対応する番号である。そして、性能評価装置１５は、特定されたサーバを含むクラスタのリソース量（Rkj及びRkm）を１増やし、上記Ｘに格納する（ステップＳ５７）。「kj」及び「km」は、特定のクラスタに対応する番号である。そして、ステップＳ４７の処理に戻り、再設定されたリソース量を用いて待ち行列シミュレーションを再実行する。
【００６１】
図９に、端子Ａを介して移行した後の処理（ステップＳ５３：Ｎｏルート（図８））について示す。性能評価装置１５は、ステップＳ４９（図８）において特定した各サーバの稼働率（Ki）に基づき、最小の稼働率であるサーバ（p）を特定する（図９：ステップＳ７１）。「p」は、特定のサーバに対応する番号である。ここで、性能評価装置１５は、今現在における各クラスタのリソース量（Rki）を上記「Ｘ」に格納しておく（ステップＳ７３）。そして、ステップＳ７１において特定されたサーバ（p）を含むクラスタのリソース量（Rkp）を１減らし、上記「Ｙ」に格納する（ステップＳ７５）。「kp」は、特定のクラスタに対応する番号である。
【００６２】
そして、性能評価装置１５は、各クラスタのリソース量（Rki）（上記「Ｙ」に格納された値）及び各サーバのサービス時間（Si）に基づき、待ち行列シミュレーションを実施する（ステップＳ７７）。そして、待ち行列シミュレーションの結果に基づき、システム全体のレスポンス時間（RP）及び各サーバの稼働率（Ki）を特定し、各々ワーク・メモリ領域に格納する（ステップＳ７９）。
【００６３】
また、性能評価装置１５は、待ち行列シミュレーションによって算出されたシステム全体のレスポンス時間が、システム要件として定められているシステム全体のレスポンス時間の最大値以上か、すなわちRP≧RPmaxであるか判定する（ステップＳ８１）。RP≧RPmaxであると判定された場合（ステップＳ８１：Ｙｅｓルート）、上記「Ｘ」に格納されている各クラスタのリソース量（Rki）を処理結果として評価結果格納部１９（図２）に格納する（ステップＳ８３）。そして、リソース調整処理を終了する。
【００６４】
一方、RP≧RPmaxではないと判定された場合（ステップＳ８１：Ｎｏルート）、RP≧RPminであるか判定する（ステップＳ８５）。すなわち、待ち行列シミュレーションによって算出されたシステム全体のレスポンス時間が、システム要件として定められているシステム全体のレスポンス時間の最大値及び最小値の範囲内にあるか判定する。RP≧RPminではないと判定された場合（ステップＳ８５：Ｎｏルート）、ステップＳ７１の処理に戻る。一方、RP≧RPminであると判定された場合（ステップＳ８５：Ｙｅｓルート）、上記「Ｙ」に格納されている各クラスタのリソース量（Rki）を処理結果として評価結果格納部１９（図２）に格納する（ステップＳ８７）。そして、リソース量調整処理を終了する。
【００６５】
このようにして、リソース量調整処理が行われる。すなわち、サービス時間格納部１１（図２）に格納されたサーバ毎のサービス時間に基づき、各クラスタの適切なリソース量を算出することができる。
【００６６】
なお、評価結果格納部１９（図２）に格納した適切なリソース量は、管理サーバ２１（図２）によって参照され、各クラスタのリソース量を実際に調整するために用いられる。具体的には、管理サーバ２１は、まず、評価結果格納部１９からクラスタ毎のリソース量（最適リソース量）を読み込み、ワーク・メモリ領域等の記憶装置に格納する。そして、例えば所定の格納部に格納されている、各クラスタの現在のリソース量（現在リソース量）を読み込み、ワーク・メモリ領域等の記憶装置に格納する。なお、管理サーバ２１がリソース量チェック機能を有していて、各クラスタの現在のリソース量をチェックするような場合もある。そして、管理サーバ２１は、クラスタ毎に最適リソース量と現在リソース量とを比較し、異なっているクラスタがあれば、当該クラスタと最適リソース量とを特定し、サーバ切替装置５（図２）に切替処理を指示する。
【００６７】
サーバ切替装置５は、管理サーバ２１から指定されたクラスタのリソース切替処理を行う。すなわち、最適リソース量と現在リソース量とが異なっているクラスタのリソース量を最適リソース量に変更する。サーバ切替装置５は、例えばＶＬＡＮ（Virtual LAN）をサポートしたスイッチング・ハブであり、論理的に、クラスタを構成するサーバを接続状態から非接続状態にしてリソース量を減らしたり、非接続状態のサーバを接続状態にしてクラスタに追加し、リソース量を増やしたりといった処理を行う。また、管理サーバ２１は、各サーバ上で動作させるソフトウェア（プログラム）を必要に応じて切り替える。
【００６８】
これにより、システムが稼動中であっても、各クラスタのリソース量を動的に制御し、適切な状態に保つことが可能となる。なお、リソース量の変更（切替）時には、部分的に処理を停止させる場合もある。
【００６９】
また、性能評価装置１５（図２）は、上で述べたリソース量調整処理に加え、サーバ・サービス時間登録処理も実施する。サーバ・サービス時間登録処理は、定期的に又は管理者等のユーザからの要求に従って実施する。まず、性能評価装置１５は、システム要件ＤＢ１３から、システムを構成しているサーバの機種種別や当該サーバで実行させるソフトウェア（プログラム）に関する設定データを読み込み、ワーク・メモリ領域等の記憶装置に格納する。さらに、性能評価装置１５は、サービス時間格納部１１から各サーバのサービス時間を読み込み、各サーバのサービス時間と、上でワーク・メモリ領域に格納しておいたサーバの機種種別及びソフトウェア（プログラム）に関する設定データとを対応付け、サーバ・サービス時間レコードを生成して、サーバ・サービス時間ＤＢ１７に格納する。このサーバ・サービス時間ＤＢ１７に格納されたデータは、新規のシステムを設計する際における処理時間シミュレーション等に利用することができる。
【００７０】
以上本発明の一実施の形態について説明したが、本発明はこれに限定されるものではない。例えば、図１及び図３に示した概要図は一例であって、待ち行列や処理時間の長さ、サーバ数等、図に示したようなケースに限られない。また、図２に示したシステム構成図は一例であって、管理サーバ２１やサービス時間決定装置９等の各装置が複数のサーバやコンピュータによって構成されている場合もある。なお、本実施の形態においては、リソース量を、クラスタを構成するサーバの台数としているが、クラスタを例えば１台のサーバに置き換え、クラスタを構成するサーバを例えばメモリ及びＣＰＵのセット等の処理ユニットに置き換えて本発明を応用することも可能である。
【００７１】
また、図４及び図５に示したテーブル構成は一例であって、同様のデータを格納するためであれば別の構成を採用するようにしてもよいし、必要に応じて項目を追加又は削除してもよい。また、図６に示した機能ブロック構成は一例であって、実際のプログラム・モジュール構成やメモリ構成とは異なる場合がある。さらに、図７乃至図９に示した処理フローも一例であって、同様の処理結果が得られる範囲において処理の順序を入れ替えてもよいし、必要に応じてステップを追加又は削除してもよい。
【００７２】
（付記１）
所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間を取得し、記憶装置に格納するステップと、
サービス時間格納部に格納され且つ所定のルールに基づき設定される推定サービス時間に対応する待ち時間を待ち行列シミュレーションにより算出し、待ち行列格納部に格納するシミュレーション実施ステップと、
前記推定サービス時間と前記待ち時間格納部に格納された前記待ち時間との和と前記記憶装置に格納された前記処理時間との差が許容誤差範囲内に収まるまで又は特定の条件が満たされるまで、前記推定サービス時間を前記所定のルールに基づき再設定して前記サービス時間格納部に格納し、前記シミュレーション実施ステップを実行する繰り返しステップと、
を含み、コンピュータにより実行される情報処理方法。
【００７３】
（付記２）
基準値格納部には、前記サービス時間の最大値以下の値を有する第１の基準値と当該第１の基準値より小さく且つ前記サービス時間の最小値以上の値を有する第２の基準値とが格納されており、
前記繰り返しステップが、
前記推定サービス時間と前記待ち時間格納部に格納された前記待ち時間との和と前記記憶装置に格納された前記処理時間との差が正の値である場合には、前記第１の基準値を切り下げて前記基準値格納部に格納すると共に新たな第１の基準値と前記第２の基準値との間に新たな推定サービス時間を設定して前記サービス時間格納部に格納するステップと、
前記推定サービス時間と前記待ち時間格納部に格納された前記待ち時間との和と前記記憶装置に格納された前記処理時間との差が負の値である場合には、前記第２の基準値を切り上げて前記基準値格納部に格納すると共に新たな第２の基準値と前記第１の基準値との間に新たな推定サービス時間を設定して前記サービス時間格納部に格納するステップと、
を含む付記１記載の情報処理方法。
【００７４】
（付記３）
所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間から前記サービス時間を導出するサービス時間導出方法であって、
前記処理ユニットの稼動中に計測され且つ処理時間格納部に格納されている前記処理ユニットの処理時間を推定サービス時間としてサービス時間格納部に格納するステップと、
前記サービス時間格納部に格納された前記推定サービス時間に基づき待ち行列シミュレーションを実施し、前記待ち行列シミュレーションにより算出された待ち時間を待ち時間格納部に格納するシミュレーション実施ステップと、
前記待ち時間格納部に格納された前記待ち時間と前記サービス時間格納部に格納された前記推定サービス時間との和と、前記処理時間格納部に格納されている前記処理時間との差を計算し、第１の差として誤差格納部に格納する誤差計算ステップと、
前記誤差格納部に格納された前記第１の差が所定の誤差許容範囲外である場合、前記推定サービス時間を再設定し、前記サービス時間格納部に格納する再設定ステップと、
を含み、
前記誤差格納部に格納された前記第１の差が所定の誤差許容範囲内である場合、前記サービス時間格納部に格納された前記推定サービス時間を当該処理ユニットのサービス時間とみなす、
コンピュータにより実行されるサービス時間導出方法。
【００７５】
（付記４）
システムを構成する１又は複数のクラスタについて、当該クラスタを構成する処理ユニット数を調整する処理ユニット数調整方法であって、
前記システムの稼動中に計測された前記処理ユニットの処理時間を用いて第１の待ち行列シミュレーションを実施することにより前記処理ユニットのサービス時間を導出し、サービス時間格納部に格納するステップと、
前記サービス時間格納部に格納された前記処理ユニットのサービス時間に基づき前記クラスタ毎に第２の待ち行列シミュレーションを実施するステップと、
前記第２の待ち行列シミュレーションにより算出された前記クラスタ毎の処理時間を合計してシステム全体の処理時間を算出し、システム処理時間格納部に格納するステップと、
前記第２の待ち行列シミュレーションにより算出された前記処理ユニット毎の稼働率を稼働率格納部に格納するステップと、
前記システム処理時間格納部に格納された前記システム全体の処理時間と前記稼働率格納部に格納された稼働率とに基づき、前記クラスタを構成する処理ユニット数の適正値を決定し処理ユニット数格納部に格納する決定ステップと、
を含み、コンピュータにより実行される処理ユニット数調整方法。
【００７６】
（付記５）
前記決定ステップが、
前記システム処理時間格納部に格納された前記システム全体の処理時間が所定の最長処理時間よりも長い場合、前記稼働率格納部に格納された稼働率に基づき、前記システムを構成するクラスタのうちで、稼働率が最大の処理ユニット又は所定の最大稼働率を越えている処理ユニットを含むクラスタを特定するステップと、
特定された前記クラスタに処理ユニットを１追加した状態で前記第２の待ち行列シミュレーションを実施するステップと、
を含む付記７記載の処理ユニット数調整方法。
【００７７】
（付記６）
所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間を取得し、記憶装置に格納するステップと、
サービス時間格納部に格納され且つ所定のルールに基づき設定される推定サービス時間に対応する待ち時間を待ち行列シミュレーションにより算出し、待ち行列格納部に格納するシミュレーション実施ステップと、
前記推定サービス時間と前記待ち時間格納部に格納された前記待ち時間との和と前記記憶装置に格納された前記処理時間との差が許容誤差範囲内に収まるまで又は特定の条件が満たされるまで、前記推定サービス時間を前記所定のルールに基づき再設定して前記サービス時間格納部に格納し、前記シミュレーション実施ステップを実行する繰り返しステップと、
をコンピュータに実行させるプログラム。
【００７８】
（付記７）
所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間から前記サービス時間を導出するサービス時間導出プログラムであって、
システムの稼動中に計測され且つ処理時間格納部に格納されている前記処理ユニットの処理時間を推定サービス時間としてサービス時間格納部に格納するステップと、
前記サービス時間格納部に格納された前記推定サービス時間に基づき待ち行列シミュレーションを実施し、前記待ち行列シミュレーションにより算出された待ち時間を待ち時間格納部に格納するシミュレーション実施ステップと、
前記待ち時間格納部に格納された前記待ち時間と前記サービス時間格納部に格納された前記推定サービス時間との和と、前記処理時間格納部に格納されている前記処理時間との差を計算し、第１の差として誤差格納部に格納する誤差計算ステップと、
前記誤差格納部に格納された前記第１の差が所定の誤差許容範囲外である場合、前記推定サービス時間を再設定し、前記サービス時間格納部に格納する再設定ステップと、
をコンピュータに実行させ、
前記誤差格納部に格納された前記第１の差が所定の誤差許容範囲内である場合、前記サービス時間格納部に格納された前記推定サービス時間を当該処理ユニットのサービス時間とみなす、
サービス時間導出プログラム。
【００７９】
（付記８）
システムを構成する１又は複数のクラスタについて、当該クラスタを構成する処理ユニット数を調整する処理ユニット数調整プログラムであって、
前記システムの稼動中に計測された前記処理ユニットの処理時間を用いて第１の待ち行列シミュレーションを実施することにより前記処理ユニットのサービス時間を導出し、サービス時間格納部に格納するステップと、
前記サービス時間格納部に格納された前記処理ユニットのサービス時間に基づき前記クラスタ毎に第２の待ち行列シミュレーションを実施するステップと、
前記第２の待ち行列シミュレーションにより算出された前記クラスタ毎の処理時間を合計してシステム全体の処理時間を算出し、システム処理時間格納部に格納するステップと、
前記第２の待ち行列シミュレーションにより算出された前記処理ユニット毎の稼働率を稼働率格納部に格納するステップと、
前記システム処理時間格納部に格納された前記システム全体の処理時間と前記稼働率格納部に格納された稼働率とに基づき、前記クラスタを構成する処理ユニット数の適正値を決定し処理ユニット数格納部に格納する決定ステップと、
をコンピュータ実行させる処理ユニット数調整プログラム。
【００８０】
（付記９）
所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間を取得し、記憶装置に格納する手段と、
サービス時間格納部に格納され且つ所定のルールに基づき設定される推定サービス時間に対応する待ち時間を待ち行列シミュレーションにより算出し、待ち行列格納部に格納するシミュレーション実施手段と、
前記推定サービス時間と前記待ち時間格納部に格納された前記待ち時間との和と前記記憶装置に格納された前記処理時間との差が許容誤差範囲内に収まるまで又は特定の条件が満たされるまで、前記推定サービス時間を前記所定のルールに基づき再設定して前記サービス時間格納部に格納し、前記シミュレーション実施手段を実行する繰り返し手段と、
を有する情報処理装置。
【００８１】
（付記１０）
所定のサービスを実行する処理ユニットについて、待ち時間とサービス時間との和であり且つ当該待ち時間とサービス時間とが分離されずに稼動中に計測される処理時間から前記サービス時間を導出するサービス時間導出装置であって、
システムの稼動中に計測され且つ処理時間格納部に格納されている前記処理ユニットの処理時間を推定サービス時間としてサービス時間格納部に格納する手段と、
前記サービス時間格納部に格納された前記推定サービス時間に基づき待ち行列シミュレーションを実施し、前記待ち行列シミュレーションにより算出された待ち時間を待ち時間格納部に格納するシミュレーション実施手段と、
前記待ち時間格納部に格納された前記待ち時間と前記サービス時間格納部に格納された前記推定サービス時間との和と、前記処理時間格納部に格納されている前記処理時間との差を計算し、第１の差として誤差格納部に格納する誤差計算手段と、
前記誤差格納部に格納された前記第１の差が所定の誤差許容範囲外である場合、前記推定サービス時間を再設定し、前記サービス時間格納部に格納する再設定手段と、
を有し、
前記誤差格納部に格納された前記第１の差が所定の誤差許容範囲内である場合、前記サービス時間格納部に格納された前記推定サービス時間を当該処理ユニットのサービス時間とみなす、
サービス時間導出装置。
【００８２】
（付記１１）
システムを構成する１又は複数のクラスタについて、当該クラスタを構成する処理ユニット数を調整する処理ユニット数調整装置であって、
前記システムの稼動中に計測された前記処理ユニットの処理時間を用いて第１の待ち行列シミュレーションを実施することにより前記処理ユニットのサービス時間を導出し、サービス時間格納部に格納する手段と、
前記サービス時間格納部に格納された前記処理ユニットのサービス時間に基づき前記クラスタ毎に第２の待ち行列シミュレーションを実施する手段と、
前記第２の待ち行列シミュレーションにより算出された前記クラスタ毎の処理時間を合計してシステム全体の処理時間を算出し、システム処理時間格納部に格納する手段と、
前記第２の待ち行列シミュレーションにより算出された前記処理ユニット毎の稼働率を稼働率格納部に格納する手段と、
前記システム処理時間格納部に格納された前記システム全体の処理時間と前記稼働率格納部に格納された稼働率とに基づき、前記クラスタを構成する処理ユニット数の適正値を決定し処理ユニット数格納部に格納する決定手段と、
を有する処理ユニット数調整装置。
【図面の簡単な説明】
【００８３】
【図１】待ち行列モデルにおける処理時間の概要図である。
【図２】本発明の一実施の形態におけるシステム構成図である。
【図３】サーバ処理概要図である。
【図４】システム要件ＤＢテーブルの一例を示す図である。
【図５】サーバ・サービス時間ＤＢテーブルの一例を示す図である。
【図６】サービス時間決定装置の機能ブロックを示す図である。
【図７】サービス時間算出処理の処理フローを示す図である。
【図８】リソース量調整処理の処理フロー（その１）を示す図である。
【図９】リソース量調整処理の処理フロー（その２）を示す図である。
【符号の説明】
【００８４】
１  ネットワーク    ３  ユーザ端末
５  サーバ切替装置    ７  処理時間格納部
９  サービス時間決定装置    １１  サービス時間格納部
１３  システム要件ＤＢ    １５  性能評価装置
１７  サーバ・サービス時間ＤＢ    １９  評価結果格納部
２１  管理サーバ    ５０，５４  クラスタ
５１，５３，５５  サーバ
５１０，５３０，５５０  処理時間ログ生成部
【図１】
2005148799.tif 000003
【図２】
2005148799.tif 000004
【図３】
2005148799.tif 000005
【図４】
2005148799.tif 000006
【図５】
2005148799.tif 000007
【図６】
2005148799.tif 000008
【図７】
2005148799.tif 000009
【図８】
2005148799.tif 000010
【図９】
2005148799.tif 000011