(57)【要約】      （修正有）【課題】サーバの能力や処理要求の内容に応じた負荷変動を検出するための許容値を算出する。【解決手段】クライアントから送信された各処理要求に対する処理結果を前記クライアントに送信するサーバと通信可能に接続され、前記サーバの負荷を示す値の許容値を記憶する管理コンピュータの制御方法であって、前記管理コンピュータが、前記サーバから、前記サーバが前記クライアントから受信した処理要求の数に基づいて算出される値と、前記サーバの負荷を示す値とを受信し、前記管理コンピュータが、前記処理要求の数に基づいて算出される値と、前記負荷を示す値の許容値と、前記負荷を示す値と、に基づいて、前記処理要求の数に基づいて算出される値の許容値を算出し、前記管理コンピュータが、前記算出した処理要求の数に基づいて算出される値の許容値を前記サーバに送信することを特徴とする。【選択図】図１０
2006302249.tif 000002
【特許請求の範囲】
【請求項１】
クライアントから送信された各処理要求に対する処理結果を前記クライアントに送信するサーバと通信可能に接続され、前記サーバの負荷を示す値の許容値を記憶する管理コンピュータの制御方法であって、
前記管理コンピュータが、前記サーバから、前記サーバが前記クライアントから受信した処理要求の数に基づいて算出される値と、前記サーバの負荷を示す値とを受信し、
前記管理コンピュータが、前記処理要求の数に基づいて算出される値と、前記負荷を示す値の許容値と、前記負荷を示す値と、に基づいて、前記処理要求の数に基づいて算出される値の許容値を算出し、
前記管理コンピュータが、前記算出した処理要求の数に基づいて算出される値の許容値を前記サーバに送信する
ことを特徴とする管理コンピュータの制御方法。
【請求項２】
前記処理要求の数に基づいて算出される値の許容値は、
前記処理要求の数に基づいて算出される値に、前記負荷を示す値の許容値の前記負荷を示す値に対する比の値を掛けることにより算出される
ことを特徴とする請求項１に記載の管理コンピュータの制御方法。
【請求項３】
前記サーバの負荷を示す値は、前記サーバが備えるＣＰＵの利用率であり、
前記処理要求の数に基づいて算出される値は、前記サーバが前記クライアントから所定時間内に受信した処理要求の数である
ことを特徴とする請求項１に記載の管理コンピュータの制御方法。
【請求項４】
前記管理コンピュータは、前記サーバから、前記処理要求の数に基づいて算出される値と前記負荷を示す値とを繰り返し受信し、
前記管理コンピュータは、前記処理要求の数に基づいて算出される値と前記負荷を示す値とを受信する毎に、前記処理要求の数に基づいて算出される値の許容値を算出し、
前記管理コンピュータは、前記処理要求の数に基づいて算出される値の許容値を算出する毎に、前記算出した処理要求の数に基づいて算出される値の許容値を前記サーバに送信する
ことを特徴とする請求項１に記載の管理コンピュータの制御方法。
【請求項５】
前記管理コンピュータは、クライアントから送信された各処理要求に対する処理結果を前記クライアントに送信する複数のサーバと通信可能に接続され、前記各サーバの負荷を示す値の許容値を記憶し、
前記管理コンピュータは、前記各サーバからそれぞれ、前記処理要求の数に基づいて算出される値と前記負荷を示す値とを受信し、
前記管理コンピュータは、前記サーバ毎に前記処理要求の数に基づいて算出される値の許容値をそれぞれ算出し、
前記管理コンピュータは、前記サーバ毎に算出した各処理要求の数に基づいて算出される値の許容値を、前記各サーバにそれぞれ送信する、
ことを特徴とする請求項１に記載の管理コンピュータの制御方法。
【請求項６】
前記管理コンピュータは、前記クライアントから送信された各処理要求を前記各サーバに振り分けて送信する負荷分散装置と通信可能に接続され、
前記管理コンピュータは、前記各サーバから受信した前記処理要求の数に基づいて算出される値と前記負荷を示す値とに基づいて、前記負荷分散装置が前記クライアントから受信した各処理要求を前記各サーバに振り分けて送信する際の振り分け比率を示す値を算出し、
前記管理コンピュータは、前記算出した振り分け比率を示す値を前記負荷分散装置に送信する、
ことを特徴とする請求項５に記載の管理コンピュータの制御方法。
【請求項７】
前記振り分け比率を示す値は、
前記各サーバから受信した前記処理要求の数に基づいて算出される各値を、前記各負荷を示す値でそれぞれ割って得られる各値の比率を示す値である
ことを特徴とする請求項６に記載の管理コンピュータの制御方法。
【請求項８】
前記管理コンピュータは、前記各サーバから、前記処理要求の数に基づいて算出される値と前記負荷を示す値とを繰り返し受信し、
前記管理コンピュータは、前記処理要求の数に基づいて算出される値と前記負荷を示す値とを受信する毎に、前記振り分け比率を示す値を算出し、
前記管理コンピュータは、前記振り分け比率を示す値を算出する毎に、前記算出した振り分け比率を示す値を前記負荷分散装置に送信する
ことを特徴とする請求項６に記載の管理コンピュータの制御方法。
【請求項９】
前記処理要求の数に基づいて算出される値の許容値は、
前記管理コンピュータが、前記処理要求の数に基づいて算出される値に、前記負荷を示す値の許容値の前記負荷を示す値に対する比の値を掛けることにより算出される
ことを特徴とする請求項４に記載の管理コンピュータの制御方法。
【請求項１０】
前記管理コンピュータは、前回算出した処理要求の数に基づいて算出される値の許容値を前回算出許容値として記憶し、
前記管理コンピュータは、前記処理要求の数に基づいて算出される値の許容値を算出する際に、前記処理要求の数に基づいて算出される値に前記負荷を示す値の許容値の前記負荷を示す値に対する比の値を掛けて得られる値と、前記前回算出許容値と、に基づいて、前記処理要求の数に基づいて算出される値の許容値を算出する
ことを特徴とする請求項９に記載の管理コンピュータの制御方法。
【請求項１１】
前記処理要求の数に基づいて算出される値の許容値は、
前記処理要求の数に基づいて算出される値に前記負荷を示す値の許容値の前記負荷を示す値に対する比の値を掛けて得られる値と、前記前回算出許容値と、の平均値である
ことを特徴とする請求項１０に記載の管理コンピュータの制御方法。
【請求項１２】
前記振り分け比率を示す値は、
前記各サーバから受信した前記各処理要求の数に基づいて算出される値を、前記各負荷を示す値でそれぞれ割って得られる各値の比率を示す値である
ことを特徴とする請求項８に記載の管理コンピュータの制御方法。
【請求項１３】
前記管理コンピュータは、前記サーバ毎に前回算出した前記処理要求の数に基づいて算出される値を前記負荷を示す値で割って得られる各値をそれぞれ、前回算出値として記憶し、
前記管理コンピュータは、前記サーバ毎に算出した前記処理要求の数に基づいて算出される値を前記負荷を示す値で割って得られる各値と、それぞれの前回算出値と、に基づいて、前記振り分け比率を示す値を算出する
ことを特徴とする請求項１２に記載の管理コンピュータの制御方法。
【請求項１４】
前記振り分け比率を示す値は、
前記サーバ毎に算出した前記処理要求の数に基づいて算出される値を前記負荷を示す値で割って得られる各値と、それぞれの前回算出値と、の各平均値の比率を示す値である
ことを特徴とする請求項１３に記載の管理コンピュータの制御方法。
【請求項１５】
クライアントから受信した処理要求に応じた情報処理を実行するサーバと、前記サーバから受信したメッセージに応じた情報処理を実行する管理コンピュータと、を備えて構成され、前記サーバは、前記クライアントから受信した処理要求の数に基づいて、前記管理コンピュータにメッセージを送信するか否かの判定に用いる指標値を算出する指標値算出部と、前記管理コンピュータにメッセージを送信するか否かの判定に用いる判定値を記憶する判定値記憶部と、前記指標値を前記判定値と比較し、前記管理コンピュータにメッセージを送信するか否かの判定を行う送信判定部と、前記サーバの負荷を示す値を検出する負荷検出部と、を備え、前記管理コンピュータは、前記サーバの負荷を示す値の許容値を記憶する負荷許容値記憶部を備えるコンピュータシステムにおける前記管理コンピュータの制御方法であって、
前記管理コンピュータが、前記サーバから、前記サーバの負荷を示す値と、前記指標値と、を受信し、
前記管理コンピュータが、前記サーバの負荷を示す値と、前記指標値と、前記負荷許容値記憶部に記憶されている前記サーバの負荷を示す値の許容値と、に基づいて、前記判定値を算出し、
前記管理コンピュータが、算出した前記判定値を前記サーバに送信する
ことを特徴とする管理コンピュータの制御方法。
【請求項１６】
クライアントから受信した処理要求に応じた情報処理を実行するサーバと、前記サーバから受信したメッセージに応じた情報処理を実行する管理コンピュータと、を備えて構成されるコンピュータシステムにおける前記サーバの制御方法であって、
前記クライアントから受信した処理要求に応じた情報処理を実行する情報処理実行部と、前記クライアントから受信した処理要求の数を記憶する処理要求数記憶部と、前記管理コンピュータにメッセージを送信するか否かの判定に用いる判定値を記憶する判定値記憶部と、を備える前記サーバが、
前記処理要求数記憶部に記憶されている処理要求の数に基づいて、前記管理コンピュータにメッセージを送信するか否かの判定に用いる指標値を算出し、
前記算出した指標値と前記判定値記憶部に記憶されている判定値との比較により、前記管理コンピュータにメッセージを送信するか否かの判定を行い、
前記判定の結果に応じて、前記管理コンピュータにメッセージを送信する
ことを特徴とするサーバの制御方法。
【請求項１７】
前記処理要求数記憶部には、所定時間内に前記クライアントから受信した処理要求の数が記憶され、
前記サーバは、前記処理要求数記憶部に記憶される処理要求の数を繰り返し更新し、
前記サーバは、前記処理要求の数を更新する毎に、新たな指標値を算出し、
前記サーバは、新たな指標値を算出する毎に、前記管理コンピュータにメッセージを送信するか否かの前記判定を行う
ことを特徴とする請求項１６に記載のサーバの制御方法。
【請求項１８】
前記サーバは、前記管理コンピュータから、新たな判定値を算出するための情報の送信要求を繰り返し受信し、
前記サーバは、前記送信要求を受信する毎に、前記サーバの負荷を示す値と前記算出した指標値とを、前記管理コンピュータに送信し、
前記サーバは、前記管理コンピュータによって、前記送信したサーバの負荷を示す値と、前記送信した指標値と、前記管理コンピュータに記憶されている前記サーバの負荷を示す値の許容値と、に基づいて算出された新たな判定値を、前記管理コンピュータから受信し、
前記サーバは、前記新たな判定値を受信する毎に、前記判定値記憶部に記憶されている判定値を新たな判定値に更新する
ことを特徴とする請求項１７に記載のサーバの制御方法。
【請求項１９】
前記サーバは、前記クライアントから処理要求を受信する毎に、前記処理要求数記憶部に記憶されている、処理要求の数をインクリメントし、
前記サーバは、前記処理要求数記憶部に記憶されている処理要求の数をインクリメントする毎に、前記管理コンピュータにメッセージを送信するか否かの判定に用いる指標値を算出し、前記管理コンピュータにメッセージを送信するか否かの前記判定を行う
ことを特徴とする請求項１６に記載のサーバの制御方法。
【請求項２０】
前記サーバは、前記管理コンピュータにメッセージを送信したことを示す情報を記憶するメッセージ送信記憶部を備え、
前記サーバは、前記算出した指標値が、前記判定値よりも所定値以上小さくなった場合に、前記メッセージ送信記憶部に記憶されている前記情報を消去し、
前記サーバは、前記管理コンピュータにメッセージを送信したことを示す前記情報が前記メッセージ送信記憶部に記憶されている場合には、前記管理コンピュータにメッセージを送信するか否かの判定の結果によらず、前記管理コンピュータにメッセージを送信しない
ことを特徴とする請求項１９に記載のサーバの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷変動を迅速に検知可能な指標値を用いてサーバの負荷変動の検出を行う場合において、サーバの能力や処理内容に応じた負荷変動を検出するための許容値を算出することが可能な管理コンピュータの制御方法、及び上記指標値及び許容値を用いて負荷変動を検知するサーバの制御方法に関する。
【背景技術】
【０００２】
近年、情報技術の進歩によりコンピュータの性能が急速に向上している。そして複数のコンピュータを、情報処理サービスを提供するためのサーバとして利用する形態も普及している。またこの場合、各サーバの負荷を分散するための様々な技術も開発されている（例えば特許文献１参照）。
【特許文献１】特開２００１−２１６２８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、例えばインタネットを介して接続されるクライアントからの処理要求に応じて情報処理サービスを提供する場合など、事前の負荷変動の予測が困難な場合がある。このような場合には、急激な負荷増大等が生じたとしても直ちにそれを検出し対処することができるようにされていることが望ましい。
【０００４】
ところで、サーバの負荷は、一般的にＣＰＵ（Central Processing Unit）利用率を指標にすることが多い。しかしＣＰＵ利用率は、少々の負荷変動であっても大きく変動することがあるため、所定時間内における平均値をとるなどの平準化を行う必要がある。そのためＣＰＵ利用率を負荷の指標とする場合には、実際に負荷が急激に変動した場合であっても直ちにそれを検出することができずに、負荷変動に対する迅速な対処が困難な場合がある。
【０００５】
一方で、クライアントから受信する処理要求の数をサーバの負荷の指標として用いることもできる。この場合には、処理要求の数が許容値を超えた時点で直ちに負荷の上昇を検出可能である。しかしながら、クライアントから送信される処理要求数が同じであっても処理要求の内容やサーバの能力によってサーバの負荷は変わるため、クライアントから受信した処理要求の数がサーバの負荷を反映しているとは必ずしも言えない。
【０００６】
本発明は上記課題を鑑みてなされたものであり、負荷変動を迅速に検知可能な指標値を用いてサーバの負荷変動の検出を行う場合において、サーバの能力や処理内容に応じた負荷変動を検出するための許容値を算出することが可能な管理コンピュータの制御方法、及び上記指標値及び許容値を用いて負荷変動を検知するサーバの制御方法を提供することを主たる目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、クライアントから送信された各処理要求に対する処理結果を前記クライアントに送信するサーバと通信可能に接続され、前記サーバの負荷を示す値の許容値を記憶する管理コンピュータの制御方法であって、前記管理コンピュータが、前記サーバから、前記サーバが前記クライアントから受信した処理要求の数に基づいて算出される値と、前記サーバの負荷を示す値とを受信し、前記管理コンピュータが、前記処理要求の数に基づいて算出される値と、前記負荷を示す値の許容値と、前記負荷を示す値と、に基づいて、前記処理要求の数に基づいて算出される値の許容値を算出し、前記管理コンピュータが、前記算出した処理要求の数に基づいて算出される値の許容値を前記サーバに送信することを特徴とする管理コンピュータの制御方法に関する。
【０００８】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための最良の形態の欄、及び図面により明らかにされる。
【発明の効果】
【０００９】
負荷変動を迅速に検知可能な指標値を用いてサーバの負荷変動の検出を行う場合において、サーバの能力や処理内容に応じた負荷変動を検出するための許容値を算出することが可能な管理コンピュータの制御方法、及び上記指標値及び許容値を用いて負荷変動を迅速に検知するサーバの制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１０】
＝＝＝全体構成例＝＝＝
本実施の形態に係るコンピュータシステムの全体構成を図１に示す。
【００１１】
本実施の形態に係るコンピュータシステムは、第１のネットワーク５００を介してクライアント１００と通信可能に接続され、クライアント１００に対して各種情報処理サービスの提供を行う情報処理システムである。本実施の形態に係るコンピュータシステムは、管理コンピュータ２００と負荷分散装置７００とウェブサーバ６００（特許請求の範囲に記載のサーバに相当する）とが第２のネットワーク５１０を介して通信可能に接続されて成る。
【００１２】
クライアント１００は、情報処理サービスの提供を受けるための処理要求をウェブサーバ６００に送信するコンピュータである。図１には、クライアントＡ１００、クライアントＢ１００、クライアントＣ１００が例示されているが、クライアント１００は１つでも良いし、複数でも良い。
【００１３】
ウェブサーバ６００は、クライアント１００から送信された各処理要求に対する処理結果をクライアント１００に送信するコンピュータである。図１には、ウェブサーバＡ６００、ウェブサーバＢ６００、ウェブサーバＣ６００が例示されているが、ウェブサーバ６００は１つでも良いし、複数でも良い。
【００１４】
また各ウェブサーバ６００には、クライアント１００から所定時間内に受信する処理要求の数の許容値（判定値とも記す）が記憶されている。許容値は、クライアント１００から所定時間内に受信する処理要求の数の上限値とすることもできるし下限値とすることもできる。また詳しくは後述するが、この許容値は、クライアント１００から所定時間内に受信する処理要求の数の許容値に限られず、クライアント１００から受信した処理要求の数に基づいて算出される値の許容値とすることができる。例えば、クライアント１００から受信した処理要求のうち現在処理中の処理件数とすることもできる。
【００１５】
各ウェブサーバ６００は、クライアント１００から送信された処理要求の数が上限値を超えたことを検知した場合には、その旨のメッセージを管理コンピュータ２００に送信する。その場合管理コンピュータ２００は、例えば予備のウェブサーバ６００をコンピュータシステムに追加する等の処置を行う。あるいは例えば、各ウェブサーバ６００は、上記処理要求の数が下限値を下回ったことを検知した場合には、その旨のメッセージを管理コンピュータ２００に送信する。その場合管理コンピュータ２００は、例えばコンピュータシステムからウェブサーバ６００を削減する等の処置を行う。
【００１６】
負荷分散装置７００は、クライアント１００からウェブサーバ６００に送信された各処理要求を、各ウェブサーバ６００に振り分けて送信するコンピュータである。もちろんウェブサーバ６００が１つの場合には負荷分散装置７００を設けない構成とすることもできる。またウェブサーバ６００が複数の場合であっても負荷分散装置７００を設けない構成とすることもできる。また詳しくは後述するが、負荷分散装置７００には、負荷分散装置７００がクライアント１００から送信された各処理要求を各ウェブサーバ６００に振り分けて送信する際の振り分け比率が記憶されている。負荷分散装置７００は、この振り分け比率に従って、クライアント１００から送信された各処理要求を各ウェブサーバ６００に送信する。この振り分け比率は、繰り返し、例えば定期的に管理コンピュータ２００により更新されるようにすることもできる。
【００１７】
管理コンピュータ２００は、コンピュータシステムを管理するためのコンピュータである。例えば、上述した負荷分散装置７００に記憶される振り分け比率の算出や更新、各ウェブサーバ６００がクライアント１００から所定時間内に受信する処理要求の数の許容値の算出、更新等を行う。また上述したウェブサーバ６００の追加や削減等の処理も行う。詳しくは後述する。
【００１８】
第１のネットワーク５００は、クライアント１００とコンピュータシステムとを通信可能に接続する通信網である。第１のネットワーク５００は、例えばインタネットのようなＷＡＮ（Wide Area Network）とすることもできるし、企業内における通信網とすることもできる。
【００１９】
第２のネットワーク５１０は、負荷分散装置７００とウェブサーバ６００と管理コンピュータ２００とを通信可能に接続する通信網である。本実施例では、第１のネットワーク５００と第２のネットワーク５１０とは別々のネットワークとしているが、これらは同一のネットワークであってもよい。
【００２０】
＝＝＝機器構成＝＝＝
次に、クライアント１００、管理コンピュータ２００、ウェブサーバ６００、負荷分散装置７００のそれぞれの構成について説明する。
【００２１】
クライアント１００、管理コンピュータ２００、ウェブサーバ６００、負荷分散装置７００はいずれもコンピュータであり、ハードウェア構成は基本的に同様である。そのため、これらのハードウェア構成を一つのブロック図にまとめて図２に示す。またこれらの各機能をそれぞれ実現するための制御プログラム等やテーブル等について、図３ないし図９に示す。
【００２２】
＜管理コンピュータの構成＞
管理コンピュータ２００は、ＣＰＵ２１０、メモリ２２０、ポート２３０、記録媒体読取装置２４０、入力装置２５０、出力装置２６０、記憶装置２８０を備える。
【００２３】
ＣＰＵ２１０は管理コンピュータ２００の全体の制御を司るもので、記憶装置２８０に記憶される本実施の形態に係る各種の動作を行うためのコードから構成される管理コンピュータ制御プログラム９００、設定調整プログラム（特許請求の範囲に記載のプログラムに相当する）９１０、イベント対処プログラム９２０をメモリ２２０に読み出して実行することにより、管理コンピュータ２００としての各種機能を実現する。例えばＣＰＵ２１０により管理コンピュータ制御プログラム９００、設定調整プログラム９１０が実行され、メモリ２２０やポート２３０、入力装置２５０、出力装置２６０、記憶装置２８０等のハードウェア機器と協働することにより、負荷許容値記憶部、サーバ情報受信部、許容値算出部、判定値算出部、許容値送信部、判定値送信部が実現される。ここで、負荷許容値記憶部は、ウェブサーバ６００の負荷を示す値の許容値を記憶する。この許容値は例えばシステム管理者によって設定され、管理コンピュータ２００のメモリ２２０に記憶される。ウェブサーバ６００の負荷を示す値の許容値としては例えば、ＣＰＵ利用率が８０％以内とすることができる。サーバ情報受信部は、ウェブサーバ６００がクライアント１００から受信した処理要求の数に基づいて算出される値と、ウェブサーバ６００の負荷を示す値とを、ウェブサーバ６００から受信する。なお、ウェブサーバ６００がクライアント１００から受信した処理要求の数に基づいて算出される値は、管理コンピュータ２００にメッセージを送信するか否かの判定に用いる指標値である。指標値としては、例えば所定時間内にクライアント１００から受信した処理要求の数とすることもできるし、現在処理中の処理件数とすることもできる。許容値算出部は、上記処理要求の数に基づいて算出される値と、上記負荷を示す値の許容値と、上記負荷を示す値と、に基づいて、上記処理要求の数に基づいて算出される値の許容値を算出する。この許容値は、例えば、クライアント１００から受信する処理要求の数が毎分１５０件以内とすることができる。判定値算出部は、ウェブサーバ６００の負荷を示す値と、上記指標値と、上記負荷許容値記憶部に記憶されているウェブサーバ６００の負荷を示す値の許容値と、に基づいて、ウェブサーバ６００が管理コンピュータ２００にメッセージを送信するか否かの判定に用いる判定値を算出する。なお、この判定値は、上記処理要求の数に基づいて算出される値の許容値と同じである。許容値送信部は、上記算出された処理要求の数に基づいて算出される値の許容値をウェブサーバ６００に送信する。判定値送信部は、算出した上記判定値をウェブサーバ６００に送信する。メモリ２２０は例えば半導体記憶装置により構成することができる。
【００２４】
管理コンピュータ制御プログラム９００は、例えばオペレーティングシステムのように管理コンピュータ２００を制御するためのプログラムである。これにより、管理コンピュータ２００が備える各種ハードウェア機器の制御やソフトウェアの制御が行われる。そして、例えばウェブサーバ６００や負荷分散装置７００との間の各種データの通信を行うことができる。
【００２５】
設定調整プログラム９１０は、各ウェブサーバ６００がクライアント１００から所定時間内に受信する処理要求の数の許容値を算出したり、負荷分散装置７００に記憶される振り分け比率を算出するためのプログラムである。
【００２６】
イベント対処プログラム９２０は、ウェブサーバ６００から管理コンピュータ２００に送信される各種メッセージに応じた処理を行うためのプログラムである。例えば、上述したウェブサーバ６００の追加や削減等を行う。ウェブサーバ６００から受信したメッセージの内容と処理の内容とは、後述するイベント対処一覧テーブル８１０に記憶されている。イベント対処一覧テーブル８１０の一例を図８に示す。またウェブサーバ２００から送信されるメッセージの一例を図１２に示す。
【００２７】
このように本実施の形態においては、管理コンピュータ２００が、ウェブサーバ２００からのメッセージを受信し、イベント対処プログラム９２０が実行されることにより、コンピュータシステムの自律制御が行われる。自律制御とは、システム管理者からの具体的な指示によることなく、コンピュータシステムの管理を行う制御である。自律制御の一例としては、コンピュータシステムに発生した障害や負荷の増大に対して自律的に対応する制御が挙げられる。例えば、ウェブサーバ２００において障害や負荷の増大が検出された場合に、障害や負荷増大の原因の推定を自律的に行い、その結果に基づいて適切な対策を選択、実行し、その結果を評価する。これらの一連の手順を自律的に実施することにより、発生した障害や負荷増大に対して自律的に対処し、システム管理者の管理負担軽減、早期原因究明、早期回復を実現する。自律制御は、イベント対処プログラム９２０が、設定調整プログラム９１０や管理コンピュータ制御プログラム９００と相互に連携して実行されることにより実現される。
【００２８】
記録媒体読取装置２４０は、記録媒体１０００に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ２２０や記憶装置２８０に格納される。従って、例えば記録媒体１０００に記録された管理サーバ制御プログラム９００や設定調整プログラム９１０、イベント対処プログラム９３０を、記録媒体読取装置２４０を用いて上記記録媒体１０００から読み取って、メモリ２２０や記憶装置２８０に記憶するようにすることができる。
【００２９】
記録媒体１０００としてはフレキシブルディスクや磁気テープ、コンパクトディスク等を用いることができる。記録媒体読取装置２４０は管理コンピュータ２００に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。
【００３０】
記憶装置２８０は、例えばハードディスク装置や半導体記憶装置等とすることができる。記憶装置２８０には、管理コンピュータ制御プログラム９００や設定調整プログラム９１０、イベント対処プログラム９２０、監視対象一覧テーブル８００、イベント対処一覧テーブル８１０、負荷を示す値の許容値８３０が記憶される。その様子を図３に示す。
【００３１】
監視対象一覧テーブル８００は、コンピュータシステムを構成する各コンピュータを示す情報の一覧が記載されたテーブルである。監視対象一覧テーブル８００の一例を図７に示す。図７に示すように監視対象一覧テーブル８００には、例えばウェブサーバ６００や負荷分散装置７００のＩＰアドレスや種別が記載される。これにより、管理コンピュータ２００は、コンピュータシステム内のウェブサーバ６００や負荷分散装置７００を把握し、これらウェブサーバ６００や負荷分散装置７００と通信をすることができる。
【００３２】
イベント対処一覧テーブル８１０は、ウェブサーバ６００から送信される各メッセージの内容と、各メッセージを受信した場合に管理コンピュータ２００が実施すべき処置の内容とを対応付けて記載したテーブルである。イベント対処一覧テーブル８１０の一例を図８に示す。
【００３３】
負荷を示す値の許容値８３０は、各ウェブサーバ６００のＣＰＵ利用率の許容値である。この許容値は例えばコンピュータシステムの管理者により設定されるようにすることができる。そしてコンピュータシステムの運用方針などにより適宜の値に設定される。例えばＣＰＵ利用率の許容値を８０％として設定しておくことができる。
【００３４】
入力装置２５０は管理コンピュータ２００へのデータ入力等のために用いられる装置でありユーザインタフェースとして機能する。入力装置２５０としては例えばキーボードやマウス等を用いることができる。
【００３５】
出力装置２６０は情報を外部に出力するための装置でありユーザインタフェースとして機能する。出力装置２６０としては例えばディスプレイやプリンタ等を用いることができる。
【００３６】
ポート２３０は通信を行うための装置である。例えば第２のネットワーク５１０を介して行われる、ウェブサーバ６００や負荷分散装置７００等の他のコンピュータとの通信は、ポート２３０を介して行われる。また例えば、管理コンピュータ制御プログラム９００や設定調整プログラム９１０、イベント対処プログラム９２０をポート２３０を通じて他のコンピュータから第２のネットワーク５１０を介して受信して、メモリ２２０や記憶装置２８０に記憶するようにすることもできる。
【００３７】
＜ウェブサーバの構成＞
次に、ウェブサーバ６００の構成について説明する。ウェブサーバ６００は、ＣＰＵ６１０、メモリ６２０、ポート６３０、記録媒体読取装置６４０、入力装置６５０、出力装置６６０、記憶装置６８０を備える。これらの各装置の機能は、上述した管理コンピュータ２００が備える各装置と同様である。
【００３８】
図４に示すように、ウェブサーバ６００が備える記憶装置６８０には、ウェブサーバ制御プログラム９３０、エージェントプログラム９４０が記憶される。ＣＰＵ６１０がウェブサーバ制御プログラム９３０、エージェントプログラム９４０を実行することにより、ウェブサーバ６００としての各種機能が実現される。例えばＣＰＵ６１０によりウェブサーバ制御プログラム９３０、エージェントプログラム９４０が実行され、メモリ６２０やポート６３０、入力装置６５０、出力装置６６０、記憶装置６８０等のハードウェア機器と協働することにより、情報処理実行部、処理要求数記憶部、判定値記憶部、指標値算出部、送信判定部、メッセージ送信部、負荷検出部が実現される。ここで、情報処理実行部は、クライアント１００から受信した処理要求に応じた情報処理を実行する。処理要求数記憶部は、クライアント１００から受信した処理要求の数を記憶する。判定値記憶部は、管理コンピュータ２００にメッセージを送信するか否かの判定に用いる判定値を記憶する。指標値算出部は、上記処理要求数記憶部に記憶されている処理要求の数に基づいて、管理コンピュータ２００にメッセージを送信するか否かの判定に用いる指標値を算出する。送信判定部は、上記算出した指標値と上記判定値記憶部に記憶されている判定値との比較により、管理コンピュータ２００にメッセージを送信するか否かの判定を行う。メッセージ送信部は、判定の結果に応じて、管理コンピュータ２００にメッセージを送信する。負荷検出部は、ウェブサーバ６００の負荷を示す値を検出する。
【００３９】
ウェブサーバ制御プログラム９３０は、クライアント１００から送信された処理要求に応じた情報処理を実行すると共に、各処理要求に対する処理結果をクライアント１００に送信するプログラムである。またウェブサーバ制御プログラム９３０は、オペレーティングシステムのようにウェブサーバ６００を制御するための機能も提供する。また、クライアント１００に対して各種情報処理サービスを提供するために、アプリケーションプログラムとしての機能を有するようにすることもできる。
【００４０】
エージェントプログラム９４０は、ウェブサーバ６００を監視するための各種情報を収集し、それらの情報を管理コンピュータ２００に送信するプログラムである。例えばウェブサーバ６００のＣＰＵ利用率やＣＰＵ利用時間、メモリ使用量、メモリ使用率、記憶装置６８０の記憶容量、記憶装置６８０に読み書きされるデータの量、他のコンピュータとの間で送受信されるデータの量、クライアント１００から処理要求を受信してから処理結果を送信するまでのレスポンス時間、所定時間内にクライアント１００から受信した処理要求の数、クライアント１００から受信した処理要求に応じて現在処理中の処理件数等の各種ウェブサーバ６００の負荷を示す値、その他、障害や異常の発生等に関する様々な情報を収集して管理コンピュータ２００に送信する。
【００４１】
ここで、エージェントプログラム９４０は、メトリック監視プログラム１８１０およびサービス提供プログラム１８２０からなる。その様子を図１８に示す。
【００４２】
まず、サービス提供プログラム１８２０の処理例を、図２２に示す。サービス提供プログラム１８２０は、エージェントプログラム９４０と共に起動し、エージェントプログラム９４０の停止指示が行われるまで、ステップS2210からステップS2230の処理を繰り返す（S2200）。ステップS2210では、ウェブサーバ６００は、管理コンピュータ２００からの要求を受信する。ウェブサーバ６００は、管理コンピュータ２００からの要求があれば、要求の内容を判別し（S2220）、要求内容に応じた処理を実行する（S2230）。
【００４３】
要求内容に応じた処理とは、例えば、管理コンピュータ２００からのメトリック取得要求（新たな判定値を算出するための情報の送信要求）であれば、後述するメトリック履歴格納領域８５０から、指定されたメトリックのデータを取得し、管理コンピュータ２００へ送信する。また閾値（許容値）の設定要求であれば、管理コンピュータ２００から新たな許容値を受信し、メトリックの監視閾値（処理要求の数の許容値８２０や負荷を示す値の許容値８３０）を、新たな閾値に変更する。
【００４４】
次に、メトリック監視プログラム１８１０の処理例を、図１９に示す。ウェブサーバ６００は、メトリック監視プログラム１８１０を実行し、ＯＳの機能やメトリック計測を行なう他プログラムから、ウェブサーバ６００の負荷を示す値と、ウェブサーバ６００がクライアント１００から受信した処理要求の数に基づいて算出される値のメトリック値を収集する（S1910）。ウェブサーバ６００の負荷を示す値としては、例えば「現在のＣＰＵ利用率」とすることができる。またウェブサーバ６００がクライアント１００から受信した処理要求の数に基づいて算出される値としては、例えば「前回調査時から今回調査時までの処理件数」とすることができる。もちろん、クライアント１００から受信した処理要求の数としても良い。そしてウェブサーバ６００は、これらのメトリック値をメトリック履歴格納領域８５０に、収集時刻とセットにした履歴データとして保存する（S1910）。なお、ウェブサーバ６００がクライアント１００から受信した処理要求の数に基づいて算出される値は、管理コンピュータ２００にメッセージを送信するか否かの判定に用いる指標値として利用される。またこの指標値の算出は、ウェブサーバ６００がメトリック監視プログラム１８１０を実行することにより行われるようにしても良い。またＣＰＵ利用率の計測は、管理コンピュータ２００から、上記メトリック取得要求を受信する毎に行うようにしても良い。
【００４５】
次にウェブサーバ６００は、処理要求の数の許容値８２０（管理コンピュータ２００にメッセージを送信するか否かの判定に用いる判定値）、及び負荷を示す値の許容値８３０を取得する（S1920）。これらの値は、管理コンピュータ２００から閾値設定要求が送信される際に送信され、記憶装置６８０に記憶されている。また、これらの値は、管理コンピュータ２００から繰り返し、例えば定期的に送信され、その都度新たな値に更新するようにすることもできる。このようにすることにより、これらの値をそのときのコンピュータシステムの動作状態が反映された状態に維持することができ、ウェブサーバ６００の負荷変動の検出をより正確に行うことが可能となる。
【００４６】
次に、ウェブサーバ６００は、メトリック履歴格納領域８５０に格納された上記履歴データを参照し、現時点での所定時間内に受信した処理要求の数に基づいて算出される値と、その許容値８２０とを比較する（S1930）。そして、現時点での所定時間内に受信した処理要求の数に基づいて算出される値が、許容値８２０より大きい場合（処理要求の許容値８２０の値が「下限値」を示す場合は、処理要求の許容値８２０より小さい場合）には、管理コンピュータ２００にメッセージを送信すると判定し、管理コンピュータ２００へのイベント通知（メッセージの送信）を行う（S1940）。なお、イベント通知の方法としては、ＪＭＳ（Java（登録商標） Message Service）など既存のさまざまな方法が存在するため、説明を省略する。
【００４７】
エージェントプログラム９４０による上記処理は、ＯＳのスケジューラ機能(UNIX（登録商標）のcronなど)や既存のジョブ管理プログラムなどにより、繰り返し、例えば定期的に実行するようにすることができる。このようにすることにより、繰り返し又は定期的なメトリック監視が可能となり、負荷増大又は負荷減少に伴い、管理コンピュータ２００に迅速にイベントを通知することが可能となる。
【００４８】
メトリック監視プログラム１８１０の実行によるメトリック監視のインターバルと、設定調整プログラム９１０の実行による閾値（許容値）調整のインターバルの関係の例を図２０に示す。
【００４９】
図２０に示す例では、メトリック監視プログラム１８１０は１０秒おきに起動してメトリックの監視を行い、設定調整プログラム９１０は１分おきに起動してＣＰＵ利用率と処理件数を元に閾値を調整している。すなわち、負荷増大の検知は１０秒おきに行い、ＣＰＵ利用率と処理件数を利用した閾値の微調整は1分おきに行っている。図２０に示す例では、時刻t18から負荷が増大し、時刻t19で検知し、サーバを追加している。ここで、仮に、1分間のＣＰＵ利用率の平均値によって、負荷増大の検知を行った場合、時刻t24まで検知が遅れることになる。このように、メトリック監視プログラム１８１０では、ＣＰＵ利用率を用いた閾値調整のインターバルとは別の、短いインターバルで起動することにより、より適切なタイミングで負荷増大の検知ができる。
【００５０】
次に、メトリック監視プログラム１８１０による負荷変動検知の別の実現方法として、処理件数が閾値を超えたことを契機に検知できるようにすることも可能である。閾値を超えたことを契機に負荷増大を検知できるメトリック監視プログラムの実現例を図２１に示す。なお、メトリック監視プログラム１８１０の実現方式は、本発明に制限を与えるものではない。
【００５１】
ウェブサーバ６００は、クライアント１００からリクエスト（処理要求）を受信するたびに、リクエスト処理スレッドを起動する。リクエスト処理スレッドは、起動すると、まず現在の処理件数を1件カウントアップ（インクリメント）する（S2110）。そして、現在の処理件数と閾値を比較し（S2120）、現在の処理件数の方が大きければ、管理コンピュータ２００へイベント通知を行うとの判定を行い、イベント通知を行う（S2130）。
【００５２】
このようにすることにより、負荷増大判定のインターバルによらずに、現在の処理件数が閾値を越えたことを契機にして直ちに管理コンピュータ２００へイベントの通知を行うことが可能となる。
【００５３】
ここで、ステップS2120を満たす度に、毎回イベント通知を行っては、必要以上の回数のイベントが管理コンピュータ２００に通知されることになる。このため、イベント通知を行った後は、十分に現在の処理件数が下がるまで、再びイベント通知を行わないといった対処を行うのが望ましい。この場合、ウェブサーバ６００は、一旦イベント通知を行った場合には、イベント通知を行った旨の情報を記憶装置６８０やメモリ６２０に記憶しておき、この情報が記憶されている間は、現在の処理件数と閾値との比較の結果によらずにイベント通知を行わないようにする。そして現在の処理件数が閾値よりも所定値以上小さくなった場合に、上記情報を消去する。このようにすることにより、管理コンピュータ２００への不要なイベント通知を行わないようにすることが可能となる。
【００５４】
次に、ウェブサーバ６００は、ウェブサーバ制御プログラム９３０にリクエストの処理を依頼し（S2140）、リクエストへのレスポンスを返した後に、現在の処理件数を1件カウントダウンする（S2150）。これにより、現在の処理件数が閾値を超えたことを契機に、管理コンピュータ２００へのイベント通知が検知できる。
【００５５】
なお、ここでは、リクエスト処理スレッドが起動される毎に現在の処理件数をカウントアップしているが、クライアント１００からリクエストを受信する毎に、受信したリクエスト数を１件カウントアップするようにしても良い。この場合、受信したリクエスト数と閾値との比較の結果によって、負荷変動を検知し、管理コンピュータ２００へイベントの通知を行うようにする。この場合には、リクエスト処理スレッドを起動することなく、管理コンピュータ２００へイベント通知を行うことが可能となるため、より迅速にイベントの通知を行うことが可能となる。
【００５６】
ここで、ウェブサーバ２００の負荷を示す値としては、ＣＰＵ利用率やＣＰＵ利用時間、メモリ使用量など、上記に例示したように様々なものを用いることができる。これらはいずれもウェブサーバ２００の負荷を表す指標として用いることができるが、図１４に示すようにそれぞれ特有の特徴を有している。
【００５７】
例えばＣＰＵ利用率は、ウェブサーバ２００にかかる負荷をダイレクトに知ることができるという特徴を有している。つまり高性能なコンピュータであれそうでないコンピュータであれ、例えばＣＰＵ利用率が１％であれば負荷にはまだ余裕があり、９９％であれば過負荷であることが分かる。一方でＣＰＵ利用率は、ウェブサーバ２００への負荷がわずかにでも変動すると大きく変動するという特徴を有する。そのため、ウェブサーバ２００の負荷が本当に過負荷かどうかの判断は慎重に行う必要ある。負荷の指標としてＣＰＵ利用率を用いる場合には、所定時間内の平均値をとったり、所定時間継続して閾値を超えたかどうかをみたり等を行って、負荷の状態を判断する必要がある。このため、負荷の指標としてＣＰＵ利用率を用いる場合には、判断に時間がかかることになる。ＣＰＵ利用率と同様の特徴を有する指標としては他には例えばメモリ使用率がある。
【００５８】
また例えば、クライアント１００から処理要求を受信してから処理結果を送信するまでのレスポンス時間を、ウェブサーバ２００の負荷の指標として用いることもできるが、この場合は、利用者の立場に近い観点での評価ができるという特徴を有する。一方で、ウェブサーバ２００が処理できないほどの負荷がかかってからレスポンス時間が長くなるという特徴を有するため、負荷増大を検知してから対処したのでは遅いことになる。
【００５９】
また、所定時間内にクライアント１００から受信した処理要求の数や現在処理中の処理件数など、クライアント１００から受信した処理要求の数に基づいて算出される値をウェブサーバ２００の負荷の指標として用いることもできる。しかしこの場合には、現在ウェブサーバ２００が処理している処理量を知ることができ、閾値（許容値）を設定しておけば、その閾値を超える件数のリクエストを受け付けた時点で直ちに負荷増大の検出が可能であるという特徴を有する。一方で、同じ処理件数でもウェブサーバ２００の処理性能や処理一件あたりのコストによってウェブサーバ２００への負荷のかかり方が異なるため適切な閾値の設定が困難であるという特徴も有する。処理要求の数に基づいて算出される値と同様の特徴を有する指標としては例えばデータベーストランザクション数やコネクション数などがある。
【００６０】
本実施の形態においては、ウェブサーバ２００の負荷を示す値の許容値８３０としてのＣＰＵ利用率の許容値（例えば上限値）をあらかじめ設定しておき、ウェブサーバ２００がクライアント１００から所定時間内に受信した処理要求の数に、上記ＣＰＵ利用率の許容値の上記所定時間内におけるウェブサーバ２００のＣＰＵ利用率の平均値に対する比の値を掛けて得られる値を、ウェブサーバ２００がクライアント１００から所定時間内に受信する処理要求の数の許容値（上限値）８２０として算出するようにする。
【００６１】
この場合、このようにして算出された許容値８２０を超える処理要求をウェブサーバ２００がクライアント１００から受信した場合には、ウェブサーバ２００のＣＰＵ利用率も上記あらかじめ設定された許容値８３０を超えているだろうということが予測できるのである。上述したように、クライアント１００から受信した処理要求の数が許容値（閾値）８２０を超えたことを検出した場合には、直ちに負荷が増大したと判断することができるから、本実施の形態においては、ウェブサーバ２００がクライアント１００から所定時間内に受信する処理要求の数が、上記算出された許容値８２０を超えたことを検出するようにすることにより、ウェブサーバ２００のＣＰＵ利用率が許容値８３０を超えたことを直ちに判断することができるのである。
【００６２】
そして上記許容値８２０の算出のため、本実施の形態に係るエージェントプログラム９４０は、所定時間内におけるＣＰＵ利用率の平均値の算出も行っている。さらに、所定時間内にクライアント１００から受信した処理要求の数と、上記算出された処理要求数の許容値８２０との比較を行い、許容値８２０を超えたことを検出した場合には、管理コンピュータ２００へその旨のメッセージの送信も行う。
【００６３】
なお、クライアント１００から所定時間内に受信する処理要求の数の許容値８２０の算出は、管理コンピュータ２００で行うようにすることもできるし、各ウェブサーバ６００で行うようにすることもできる。
【００６４】
前者の場合には、各ウェブサーバ６００は、管理コンピュータ２００に対して所定時間（図２０の例では１０秒）内におけるＣＰＵ利用率の平均値と、クライアント１００から上記所定時間内に受信した処理要求の数とをそれぞれ送信する。そして管理コンピュータによりそれぞれ算出されたクライアント１００から所定時間内に受信する処理要求の数の許容値８２０を受信して、メモリ６２０や記憶装置６８０に記憶しておく。そして各ウェブサーバ６００は、所定時間内にクライアント１００から受信した処理要求の数と、上記算出された処理要求数の許容値８２０との比較を行い、許容値８２０を超えたことを検出した場合には、管理コンピュータ２００へその旨のメッセージを送信する。上記許容値８２０は、繰り返し、例えば定期的に（図２０の例では１分毎に）更新するようにすることもできる。これにより、クライアント１００から送信される処理要求の内容が時間と共に変化しても、処理要求の数を許容値８２０と比較することによりウェブサーバの負荷変動を正確に検出することが可能となる。
【００６５】
一方後者の場合には、各ウェブサーバ６００には負荷を示す値の許容値８３０としてのＣＰＵ利用率の許容値（例えば上限値として８０％）をあらかじめ設定しておき、所定時間内におけるＣＰＵ利用率の平均値を算出する。そしてクライアント１００から所定時間内に受信する処理要求の数の許容値８２０を算出し、メモリ６２０や記憶装置６８０に記憶しておく。そして所定時間内にクライアント１００から受信した処理要求の数と、上記算出した処理要求数の許容値８２０との比較を行い、許容値８２０を超えたことを検出した場合には、管理コンピュータ２００へその旨のメッセージを送信する。前者の場合と同様、上記許容値８２０は、繰り返し、例えば定期的に更新するようにすることもできる。
【００６６】
＜負荷分散装置の構成＞
次に、負荷分散装置７００の構成について説明する。負荷分散装置７００は、ＣＰＵ７１０、メモリ７２０、ポート７３０、記録媒体読取装置７４０、入力装置７５０、出力装置７６０、記憶装置７８０を備える。これらの各装置の機能は、上述した管理コンピュータ２００が備える各装置と同様である。
【００６７】
図５に示すように、負荷分散装置７００が備える記憶装置７８０には、負荷分散装置制御プログラム９５０、エージェントプログラム９４０、重み付けテーブル８４０が記憶される。ＣＰＵ７１０が負荷分散装置制御プログラム９５０、エージェントプログラム９４０を実行することにより、負荷分散装置７００としての各種機能が実現される。
【００６８】
負荷分散装置制御プログラム９５０は、クライアント１００からウェブサーバ６００に送信された各処理要求を、各ウェブサーバ６００に振り分けて送信するためのプログラムである。各処理要求の振り分けは、重み付けテーブル８４０に記憶されている振り分け比率に従って行われる。重み付けテーブル８４０の一例を図９に示す。図９に示す例では、クライアント１００から送信された各処理要求を、５台のウェブサーバ（Ａ乃至Ｅ）２００に対して、１０：６：５：８：５で振り分けることが示される。この振り分け比率は、繰り返し、例えば定期的に更新されるようにすることもできる。これにより、ウェブサーバ６００の負荷の状態が時間と共に変化しても、各ウェブサーバ６００にクライアント１００からの処理要求が適切に分散されるようにすることができる。振り分け比率の更新は、例えば管理コンピュータ２００により行うようにすることができる。また負荷分散装置制御プログラム９５０は、オペレーティングシステムのように負荷分散装置７００を制御するための機能も提供する。
【００６９】
エージェントプログラム９４０は、負荷分散装置７００を監視するための各種情報を収集し、それらの情報を管理コンピュータ２００に送信するプログラムである。例えば重み付けテーブル８４０に記憶されている振り分け比率を定期的に管理コンピュータ２００に送信し、管理コンピュータ２００から送信されてくる新たな振り分け比率を重み付けテーブル８４０に記憶する。
【００７０】
＜クライアントの構成＞
次に、クライアント１００の構成について説明する。クライアント１００は、ＣＰＵ１１０、メモリ１２０、ポート１３０、記録媒体読取装置１４０、入力装置１５０、出力装置１６０、記憶装置１８０を備える。これらの各装置の機能は、上述した管理コンピュータ２００が備える各装置と同様である。
【００７１】
図６に示すように、クライアント１００が備える記憶装置１８０には、クライアント制御プログラム９６０が記憶される。ＣＰＵ１１０がクライアント制御プログラム９６０を実行することにより、クライアント１００としての各種機能が実現される。
【００７２】
クライアント制御プログラム９６０は、企業の従業員などがコンピュータシステムにより提供される情報処理サービスを利用する際に、ウェブサーバ６００に対して処理要求を送信したり、ウェブサーバ６００から処理結果を受信したりするためのプログラムである。オペレーティングシステムとしての制御を行う機能も含まれるようにすることもできる。
【００７３】
＝＝＝処理の具体例＝＝＝
次に、ウェブサーバ６００がクライアント１００から所定時間内に受信する処理要求の数の許容値８２０の算出や、負荷分散装置７００に記憶される振り分け比率の更新等を行う場合の処理の内容について、図１０及び図１１を参照しながら具体的に説明する。
【００７４】
図１０に示す例では、各クライアント１００から負荷分散装置７００に対して、例えば毎分１０２０件の処理要求が送信されている。
【００７５】
そして負荷分散装置７００においては、５台のウェブサーバ６００に対して、「１０：６：５：８：５」の振り分け比率が設定されている。それにより、ウェブサーバＡ６００には毎分３００件（１０２０×１０／３４）の処理要求が送信され、ウェブサーバＢ６００には毎分１８０件の処理要求が送信され、ウェブサーバＣ６００には毎分１５０件の処理要求が送信され、ウェブサーバＤ６００には毎分２４０件の処理要求が送信され、ウェブサーバＥ６００には毎分１５０件の処理要求が送信されている。
【００７６】
そしてその時の各ウェブサーバ６００のＣＰＵ利用率の１分間の平均値は、ウェブサーバＡ６００乃至ウェブサーバＥ６００のそれぞれについて、３０％、４５％、５０％、３０％、７５％であったとする。
【００７７】
また、各ウェブサーバ６００には、クライアント１００から受信する処理要求の許容値８２０として、それぞれ５００件、３００件、２５０件、４００件、２５０件が設定されているとする。
【００７８】
この場合、管理コンピュータ２００は、図１１に示す設定調整プログラム９１０のフローチャートに従い、以下のようにして、各ウェブサーバ６００がクライアントから受信する処理要求のそれぞれの許容値８２０と、負荷分散装置７００の振り分け比率を示す値とを算出し、各ウェブサーバ６００及び負荷分散装置７００に送信する。
【００７９】
まず管理コンピュータ２００は、監視対象一覧テーブル８００から、各ウェブサーバ６００と負荷分散装置７００のＩＰアドレス等の情報を取得する（S1000）。そして管理コンピュータ２００は、負荷分散装置７００の重み付けテーブル８４０に記憶されている振り分け比率を、負荷分散装置７００から取得する（S1010）。次に管理コンピュータ２００は、各ウェブサーバ６００から、ＣＰＵ利用率の１分間の平均値と、クライアント１００から１分間に受信した処理要求の数とを取得する（S1020）。
【００８０】
そして管理コンピュータ２００は、新しい振り分け比率を示す値を算出する（S1030）。新しい振り分け比率を示す値の算出は、各ウェブサーバ６００毎に「クライアント１００から１分間に受信した処理要求の数／ＣＰＵ利用率の１分間の平均値」を計算し、その各値の比を新しい振り分け比率を示す値とすることにより算出する。つまり、図１０に示す例では、新しい振り分け比率を示す値は、「（３００／３０）：（１８０／４５）：（１５０／５０）：（２４０／３０）：（１５０／７５）」＝「１０：４：３：８：２」となる。
【００８１】
次に管理コンピュータ２００は、クライアント１００から１分間に受信する処理要求の数の許容値８２０を各ウェブサーバ６００毎に算出する（S1040）。管理コンピュータ２００には各ウェブサーバ６００のＣＰＵ利用率の許容値として８０％が予め設定されていたとすると、上記受信した１分間の処理要求の数と、そのときの１分間のＣＰＵ利用率の平均値とから、ＣＰＵ利用率が８０％になると予想される処理件数の数を算出する。たとえばウェブサーバＡ６００の場合は、３００×（８０／３０）＝８００件と算出される。ウェブサーバＢ６００の場合は、１８０×（８０／４５）＝３２０件と算出される。ウェブサーバＣ６００の場合は、１５０×（８０／５０）＝２４０件と算出される。ウェブサーバＤ６００の場合は、２４０×（８０／３０）＝６４０件と算出される。ウェブサーバＥ６００の場合は、１５０×（８０／７５）＝１６０件と算出される。
【００８２】
そして次に管理コンピュータ２００は、負荷分散装置７００に上記新しい振り分け比率を示す値を送信する（S1050）。そして各ウェブサーバ６００に、上記それぞれ算出した処理件数の許容値８２０を送信する（S1060）。
【００８３】
これにより、負荷分散装置７００と各ウェブサーバ６００に対して、新しい振り分け比率と処理要求の許容値８２０とを設定することができる。この設定は、繰り返し、例えば１分ごとに行うようにすることもできる。
【００８４】
なお、上記算出された新しい振り分け比率や処理要求の数の許容値８２０が、前回算出した値と大きく異なる場合には、各ウェブサーバ６００に振り分けられる処理要求の数や各ウェブサーバ６００の負荷が安定しなくなる場合がある。
【００８５】
このため、本実施の形態においては、上記算出された振り分け比率の各値と、前回算出された振り分け比率の各値との各平均値により、新たな振り分け比率を算出することもできる。つまり、管理コンピュータ２００に、前回ウェブサーバ２００毎に算出された、処理要求の数をＣＰＵ利用率の平均値で割って得られた値をそれぞれ記憶しておき、ウェブサーバ６００毎に新たに算出された、上記処理要求の数をＣＰＵ利用率平均値で割って得られた各値と、それぞれの前回の値との各平均値の比を、新たな振り分け比率として算出する様にすることもできる。
【００８６】
また、上記算出された処理要求の数の許容値と、それぞれ前回算出した値との平均値を、新たな処理要求の数の許容値とすることもできる。
【００８７】
このようにすることにより、振り分け比率や処理要求の数の許容値を随時更新する際において、値の変化を穏やかにすることができるので、より安定した負荷分散制御を行うことができるようになる。
【００８８】
もちろん、新たな振り分け比率は算出された振り分け比率の各値と前回算出された振り分け比率の各値との各平均値に限られず、算出された振り分け比率の各値と前回算出された振り分け比率の各値との間の値とすることができる。同様に、新たな処理要求の数の許容値は算出された処理要求の数の許容値とそれぞれ前回算出した値との平均値にかぎられず、算出された処理要求の数の許容値とそれぞれ前回算出した値との間の値とすることができる。
【００８９】
＝＝＝負荷変動検出時の処理＝＝＝
上記のようにして、クライアント１００から受信する処理要求の許容値８２０が設定された各ウェブサーバ６００は、クライアント１００からの処理要求の数が上記許容値８２０を超えたかどうかを判定する。この判定は、上述したエージェントプログラム９４０が実行されることにより行うことができる。もし許容値８２０を超えたことが検出された場合には、ウェブサーバ６００は管理コンピュータ２００に所定のメッセージ（例えば図１２に示すメッセージ）を送信する。
【００９０】
一方管理コンピュータ２００は、図１３に示すフローに従い、イベント対処プログラム９２０を実行している。ウェブサーバ６００から上記メッセージを受信したら、管理コンピュータ２００は、受信したメッセージを解析し、「どのウェブサーバで」、「何が」起こったかを確認し（S2000〜S2020）、イベント対処一覧テーブル８１０の記載に従って、対処を実行する（S2030）。
【００９１】
以上の各処理により、クライアント１００からコンピュータシステムに送信される処理要求の数の変動により、各ウェブサーバ６００の負荷変動を直ちに検出することができる。そして上述した自律制御が行われることにより、オペレータによる指示を特に得なくとも、コンピュータシステムの負荷を適度な状態に維持することが可能となる。これによりコンピュータシステムの信頼性を向上させることが可能となると共に、クライアント１００を通じてコンピュータシステムを利用するユーザに対して、高品質の情報処理サービスを提供することが可能となる。
【００９２】
＝＝＝その他の例＝＝＝
なお、本実施の形態においては、図１０に示したように、クライアント１００からの処理要求の許容値８２０を各ウェブサーバ６００毎に設定したが、図１５及び図１６に示すようにすることもできる。つまり、クライアント１００からの処理要求の許容値８２０を負荷分散装置７００に対して設定する。
【００９３】
この場合、まず管理コンピュータ２００は、監視対象一覧テーブル８００から、各ウェブサーバ６００と負荷分散装置７００のＩＰアドレス等の情報を取得する（S3000）。そして管理コンピュータ２００は、負荷分散装置７００の重み付けテーブル８４０に記憶されている振り分け比率を、負荷分散装置７００から取得する（S3010）。次に管理コンピュータ２００は、各ウェブサーバ６００から、ＣＰＵ利用率の１分間の平均値と、クライアント１００から１分間に受信した処理要求の数とを取得する（S3020）。
【００９４】
そして管理コンピュータ２００は、新しい振り分け比率を算出する（S3030）。新しい振り分け比率を算出するための処理内容は、図１０の場合と同じである。
【００９５】
次に管理コンピュータ２００は、クライアント１００から１分間に受信する処理要求の数の許容値８２０を、図１０の場合と同様にして、各ウェブサーバ６００毎に算出する（S3040）。そして管理コンピュータは各許容値の合計値を算出する（S3050）。
【００９６】
そして管理コンピュータ２００は、負荷分散装置７００に、上記各許容値の合計値と、新しい振り分け比率とを送信する（S3060）。
【００９７】
図１５に示す例においては、負荷分散装置７００に設定される処理要求の数の許容値８２０は、図１０において各ウェブサーバ６００毎に算出した各許容値の合計値とすることができる。このようにすることによっても、コンピュータシステムを構成する各ウェブサーバ６００の負荷に応じてクライアント１００から送信される処理要求の数の許容値８２０を設定することができる。またさらに、クライアント１００から負荷分散装置７００に送信される処理要求の数が上記許容値８２０を超えた時点で直ちに、負荷の変動が検出でき、直ちに対応を行うことができるのである。
【００９８】
また、本実施の形態に係るコンピュータシステムは、図１に示したように、管理コンピュータ２００と負荷分散装置７００とウェブサーバ６００とを含むが、図１７に示すように、さらにＡＰサーバ（アプリケーションサーバ）３００やＤＢサーバ（データベースサーバ）４００を備える様にすることもできる。図１７に示す構成は、ウェブ３階層構成のシステムとして一般的に知られる構成である。この場合、ウェブサーバ６００がクライアント１００から処理要求を受信すると、ウェブサーバ６００は、ＡＰサーバ３００に対して、処理要求に応じた情報処理の実行要求を送信する。そしてＡＰサーバ３００は、処理要求に応じた情報処理を実行し、処理結果をウェブサーバ６００に送信する。ウェブサーバ６００は処理結果をクライアント１００に送信する。ＡＰサーバ３００は、上記情報処理の実行に際し、必要に応じて、ＤＢサーバ４００に対して、データベースへのデータの読み書き要求を送信する。ＤＢサーバ４００は、読み書き要求に応じてデータベースへのアクセスを行い、その結果をＡＰサーバ３００に送信する。
【００９９】
そして、ウェブサーバ６００には、クライアント１００から所定時間内に受信する処理要求の数の許容値８２０を記憶しておき、ウェブサーバ６００は、この許容値を超える処理要求をクライアント１００から受信した場合には、管理コンピュータ２００にメッセージを送信するようにしておく。またＡＰサーバ３００には、所定時間内にウェブサーバ６００から受信する処理要求の数の許容値を記憶しておき、ＡＰサーバ３００は、この許容値を超える処理要求をウェブサーバ６００から受信した場合には、管理コンピュータ２００にメッセージを送信するようにしておく。そしてＤＢサーバ４００には、所定時間内のＡＰサーバ３００から送信されるトランザクションの件数の許容値を記憶しておき、ＤＢサーバ４００は、この許容値を超えるトランザクションをＡＰサーバ３００から受信した場合には、管理コンピュータ２００にメッセージを送信するようにしておく。これらの許容値は、それぞれ、前述したのと同様にして、管理コンピュータ２００により、各サーバの負荷を示す値と、各サーバが受信する処理要求の数に基づいて算出される値と、各サーバの負荷を示す値の許容値と、に基づいて算出される。
【０１００】
このようにすることにより、各サーバは、それぞれ処理要求の数が許容値を超えたことを検知した場合に直ちに、負荷増大のメッセージを管理コンピュータ２００に送信することが可能となる。そして管理コンピュータ２００は、これらのサーバから負荷増大のメッセージを受信した場合には、直ちに、予備のサーバをコンピュータシステムに追加する等して、メッセージを送信してきたサーバの負荷を軽減するようにすることが可能となる。なおもちろん、各サーバは、現在の処理件数が許容値を超えたことを検知した場合に、負荷増大のメッセージを管理コンピュータ２００に送信するようにしても良い。
【０１０１】
また本実施の形態にかかるコンピュータシステムは、図２３に示す構成とすることもできる。つまり、管理コンピュータ２００がＤＢＭＳ（DataBase Management System 、DataBase Management Server）と接続される構成である。ＤＢＭＳは、クライアント１００からトランザクション（処理要求）を受信して、トランザクションの実行結果をクライアント１００に送信する。管理コンピュータ２００は、上記実施の形態と同様に、ＣＰＵ利用率等のＤＢＭＳの負荷を示す値と、その許容値と、所定時間に受信するトランザクションの数に基づいて算出される値と、に基づいて、所定時間に受信するトランザクションの数の許容値を算出してＤＢＭＳに送信する。ＤＢＭＳは、許容値を超えるトランザクションをクライアント１００から受信した場合には直ちに管理コンピュータ２００にメッセージを送信する。
【０１０２】
また本実施の形態にかかるコンピュータシステムは、図２4に示す構成とすることもできる。つまり、管理コンピュータ２００がＮＡＳ（Network Attached Storage）サーバと接続される構成である。ＮＡＳサーバは、クライアント１００からデータの読み書き命令（処理要求）を受信して、その実行結果をクライアント１００に送信する。管理コンピュータ２００は、上記実施の形態と同様に、ＣＰＵ利用率等のＮＡＳサーバの負荷を示す値と、その許容値と、所定時間に受信する読み書き命令の数に基づいて算出される値と、に基づいて、所定時間に受信する読み書き命令の数の許容値を算出してＮＡＳサーバに送信する。ＮＡＳサーバは、許容値を超える読み書き命令をクライアント１００から受信した場合には直ちに管理コンピュータ２００にメッセージを送信する。
【０１０３】
さらに本実施の形態にかかるコンピュータシステムは、図２５に示す構成とすることもできる。つまり、管理コンピュータ２００がバッチジョブを実行するサーバやＰＣ（Personal Computer）と接続される構成である。このサーバは、クライアント１００からバッチ処理の要求（処理要求）を受信して、その要求に従って所定の時刻になったらバッチ処理を実行する。管理コンピュータ２００は、上記実施の形態と同様に、メモリ使用率等のサーバの負荷を示す値と、その許容値と、バッチ処理の要求の数に基づいて算出される値（例えば現在実行中のバッチ処理の数）と、に基づいて、同時実行可能なバッチ処理の数の許容値を算出してサーバに送信する。サーバは、許容値を超える数のバッチ処理を実行した場合には直ちに管理コンピュータ２００にメッセージを送信する。
【０１０４】
また本実施の形態にかかるコンピュータシステムは、図２６に示す構成とすることもできる。つまり、管理コンピュータ２００がストレージコントローラと接続される構成である。ストレージコントローラは、クライアント１００からデータの読み書き命令（処理要求）を受信して、その実行結果をクライアント１００に送信する。またストレージコントローラは、ストレージ装置に記憶されているデータの量を管理している。管理コンピュータ２００は、上記実施の形態と同様に、ストレージ装置の空き容量の減少率（０．１％／日）等のストレージコントローラの負荷を示す値と、その許容値（２５％／日）と、データの読み書き命令の数に基づいて算出される値（例えば、ストレージ装置に記憶されるデータの増加量（１ＧＢｙｔｅ／日））と、に基づいて、ストレージ装置に記憶されるデータの増加量の許容値（２５０Ｇバイト／日）を算出してストレージコントローラに送信する。ストレージコントローラは、許容値を超えるデータ量の増加を検知した場合には直ちに管理コンピュータ２００にメッセージを送信する。
【０１０５】
以上本実施の形態について説明したが、本実施の形態によれば、ウェブサーバ２００等サーバの負荷を示す値の許容値をあらかじめ設定しておき、サーバがクライアント１００から受信した処理要求の数に基づいて算出される値と、上記負荷を示す値の許容値と、サーバの負荷を示す値と、に基づいて、上記処理要求の数に基づいて算出される値の許容値を算出するようにする。このため、サーバがクライアント１００から受信した処理要求の数に基づいて算出される値がこの許容値を超えた場合には、サーバの負荷を示す値も上記あらかじめ設定された許容値を超えているだろうということが予測できるのである。そしてクライアント１００から受信した処理要求の数に基づいて算出される値が許容値を超えたことを検出した場合には直ちに負荷が増大したと判断することができるから、サーバがクライアント１００から受信する処理要求の数に基づいて算出される値が上記算出された許容値を超えたことを検出するようにすることにより、サーバの負荷を示す値が許容値を超えたことを直ちに判断することができるのである。そしてこれにより、迅速に負荷変動を検知することができ、コンピュータシステム内のサーバを追加するなどの対処を早急に開始することが可能となる。特に、本実施の形態においては、コンピュータシステム内に性能が互いに異なるサーバが混在する場合や、時間帯や時期によってクライアント１００からのアクセス頻度やアクセスパターンが異なる場合であっても、負荷変動の許容値や判定値をサーバ毎に設定したり、時間帯に応じて設定したりする等の複雑な設定をすること無く、各サーバの負荷変動を迅速に検知することが可能である。
【０１０６】
さらに、処理要求の数に基づいて算出される値で負荷増大を検知し、例えば定期的にその時点での処理要求の数に基づいて算出される値と負荷を示す値を見ながら、許容値を微調整する。これにより、処理要求の数に基づいて算出される値が許容値以上になった時点で、負荷増大を検知することが可能となる。つまり、許容値の微調整処理は、負荷を示す値を使用するため、一定の時間が必要であるが、負荷増大検知は、その時点の処理要求の数に基づいて算出される値の許容値を用いるため、より迅速に行うことが可能である。さらに、各ウェブサーバ６００の処理性能が異なる場合や、時間帯によって処理要求の１件あたりの処理内容が変わるケースに対しても対応が可能となる。
【０１０７】
また、負荷分散装置７００の振り分け比率も、許容値と同期して更新するようにするため、１台のサーバの処理要求の件数に基づいて算出される値が許容値を超えた場合には、他のサーバも高負荷の状態になっていることが分かるのである。従って管理コンピュータ２００は、あるサーバからメッセージを受信すると、「負荷平準化などの対処を行うべきか」等の判断を行うことなく、すぐにサーバを追加する等の処置を開始することができるのである。
【０１０８】
以上発明を実施するための最良の形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【０１０９】
【図１】本実施の形態に係るコンピュータシステムの全体構成を示すブロック図である。
【図２】本実施の形態に係るクライアント、管理コンピュータ、負荷分散装置、ウェブサーバの構成を示すブロック図である。
【図３】本実施の形態に係る管理コンピュータの記憶装置を示す図である。
【図４】本実施の形態に係るウェブサーバの記憶装置を示す図である。
【図５】本実施の形態に係る負荷分散装置の記憶装置を示す図である。
【図６】本実施の形態に係るクライアントの記憶装置を示す図である。
【図７】本実施の形態に係る監視対象一覧テーブルを示す図である。
【図８】本実施の形態に係るイベント対処一覧テーブルを示す図である。
【図９】本実施の形態に係る重み付けテーブルを示す図である。
【図１０】本実施の形態に係る処理の具体例を示す図である。
【図１１】本実施の形態に係る設定調整プログラムの処理の流れを示すフローチャートである。
【図１２】本実施の形態に係るイベントメッセージフォーマットを示す図である。
【図１３】本実施の形態に係るイベント対処プログラムの処理の流れを示すフローチャートである。
【図１４】本実施の形態に係る負荷を示す値の例を示す図である。
【図１５】本実施の形態に係る処理の他の具体例を示す図である。
【図１６】本実施の形態に係る設定調整プログラムの処理の流れを示すフローチャートである。
【図１７】本実施の形態に係るコンピュータシステムの他の構成例を示す図ある。
【図１８】本実施の形態に係るエージェントプログラムの構成を示す図ある。
【図１９】本実施の形態に係るメトリック監視プログラムの処理の流れを示すフローチャートである。
【図２０】本実施の形態に係る閾値調整インターバルと監視インターバルを示す図である。
【図２１】本実施の形態に係るメトリック監視プログラムの処理の流れを示すフローチャートである。
【図２２】本実施の形態に係るサービス提供プログラムの処理の流れを示すフローチャートである。
【図２３】本実施の形態に係るコンピュータシステムの構成例を示すブロック図である。
【図２４】本実施の形態に係るコンピュータシステムの構成例を示すブロック図である。
【図２５】本実施の形態に係るコンピュータシステムの構成例を示すブロック図である。
【図２６】本実施の形態に係るコンピュータシステムの構成例を示すブロック図である。
【符号の説明】
【０１１０】
１００    クライアント
２００    管理コンピュータ
２１０    ＣＰＵ
２２０    メモリ
２３０    ポート
２４０    記録媒体読取装置
２５０    入力装置
２６０    出力装置
２８０    記憶装置
３００    ＡＰサーバ
４００    データベースサーバ
５００    第１のネットワーク
５１０    第２のネットワーク
６００    ウェブサーバ
７００    負荷分散装置
６００    監視対象一覧テーブル
６１０    イベント対処一覧テーブル
６２０    負荷増大判定値
６３０    負荷を示す値の許容値
８４０    重み付けテーブル
８５０    メトリック履歴格納領域
９００    管理サーバ制御プログラム
９１０    設定調整プログラム
９２０    イベント対処プログラム
９３０    ウェブサーバ制御プログラム
９４０    エージェントプログラム
９５０    負荷分散装置制御プログラム
９６０    クライアント制御プログラム
１０００  記録媒体
【図１】
2006302249.tif 000003
【図２】
2006302249.tif 000004
【図３】
2006302249.tif 000005
【図４】
2006302249.tif 000006
【図５】
2006302249.tif 000007
【図６】
2006302249.tif 000008
【図７】
2006302249.tif 000009
【図８】
2006302249.tif 000010
【図９】
2006302249.tif 000011
【図１０】
2006302249.tif 000012
【図１１】
2006302249.tif 000013
【図１２】
2006302249.tif 000014
【図１３】
2006302249.tif 000015
【図１４】
2006302249.tif 000016
【図１５】
2006302249.tif 000017
【図１６】
2006302249.tif 000018
【図１７】
2006302249.tif 000019
【図１８】
2006302249.tif 000020
【図１９】
2006302249.tif 000021
【図２１】
2006302249.tif 000022
【図２２】
2006302249.tif 000023
【図２３】
2006302249.tif 000024
【図２４】
2006302249.tif 000025
【図２５】
2006302249.tif 000026
【図２６】
2006302249.tif 000027
【図２０】
2006302249.tif 000028