(57)【要約】【課題】本発明は、特定のリクエストの流量制御および受信拒否を行うことにより、連続での、サーバ装置のハングアップやダウン、またはリクエストの受信拒否によるサービス停止となることを防止するものであって、従来であれば、サーバ装置のハングアップやダウン、またはリクエストの受信拒否によるサービス停止を引き起こしてしまうという問題があった。【解決手段】上記課題は、サーバ装置でシステムリソース（ＣＰＵ使用率、メモリ使用量）を多量に消費していたときに、特定のリクエストの流量制御および受信拒否を負荷分散装置のモジュールが行うことにより解決する。【選択図】図１
2010097447.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置からのリクエストを、負荷分散装置を経由して受け付け、処理を行うサーバ装置であって、サーバ装置内の状態監視サーバ処理部は、システムリソースの使用状態を監視し、サーバ装置がしきい値を越えるシステムリソースを使用した場合に、状態監視サーバで取得したシステムリソースの使用状態とリクエストの実行情報から判断して、システムリソースを多量に使用すると推定されるリクエストを絞り込み、絞り込んだリクエストの情報を負荷分散装置に通知することを特徴とする、サーバ装置。
【請求項２】
クライアント装置からのリクエストを、サーバ装置に振り分ける負荷分散装置において、サーバ装置からサーバ装置のシステムリソース（ＣＰＵ使用率、メモリ使用量）を多量に使用する可能性のあるリクエストの情報を受け付け、クライアント装置からのリクエストと前記リクエストの情報を比較し、該当するときにはサーバ装置のシステムリソースの使用状態を加味したリクエストの振り分けを行うことを特徴とする、負荷分散装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置から受け付けたリクエストの振り分けを行う負荷分散装置の機能と、負荷分散装置から振り分けられたリクエストを処理するサーバ装置の機能を、それぞれ制御する技術および方法に関するものである。
【背景技術】
【０００２】
従来、特開２００３−２０８４１４号公報のように、冗長構成のサーバがダウンするのを防止して安定稼動させるために、リクエストの負荷分散を行うようになっていた。
【０００３】
従来技術では、リクエストを複数のサーバ装置に均等に振り分けることにより、高負荷によるサーバ装置のダウンを防止していた。
【０００４】
【特許文献１】特開２００３−２０８４１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された技術では、例えば複数のサーバ装置でシステムリソース（ＣＰＵ使用率、メモリ使用量）を多量に使用している場合に、クライアント装置からサーバ装置で多量のシステムリソースを消費するリクエストを振り分けられると、振り分けられたサーバ装置でシステムリソースの枯渇によるハングアップやダウン、またはリクエストの受信拒否によるサービス停止となる可能性がある。
【０００６】
また、クライアント装置からサーバ装置で多量のシステムリソースを消費するリクエストを連続で送信された場合、負荷分散装置により均等にすべてのサーバ装置に振り分けられるため、すべてのサーバ装置でシステムリソースの枯渇によるハングアップやダウン、またはリクエストの受信拒否によるサービス停止となる可能性がある。
【０００７】
このような場合、クライアント装置からサーバ装置で多量のシステムリソースを消費しないリクエストを送信されたときにも、リクエストの受信拒否となる可能性がある。
【０００８】
そこで本発明は、サーバ装置でシステムリソースを大量に消費したときに処理していたリクエストの内容を確認し、サーバ装置のシステムリソースの枯渇によるハングアップやダウン、およびリクエストの受信拒否によるサービス停止を防止することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明ではサーバ装置でシステムリソース（ＣＰＵ使用率、メモリ使用量）を多量に消費していたときにどのようなリクエストを処理していたかを確認し、すべてのサーバ装置がシステムリソースの枯渇によるハングアップやダウン、またはリクエストの受信拒否によるサービス停止となることを防止するために、負荷分散装置にて特定のリクエストの流量制御および受信拒否を行う機能を提供する。
【発明の効果】
【００１０】
本発明によれば、サーバ装置でシステムリソース（ＣＰＵ使用率、メモリ使用量）を多量に消費していたときにおいて、すべてのサーバ装置がシステムリソースの枯渇によるハングアップやダウン、またはリクエストの受信拒否によるサービス停止となることを防止し、システム全面停止を防止することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を実施するための最良の形態（以下「実施形態」という）を図面に基づいて詳細に説明する。
【００１２】
図１は、本実施形態におけるサーバ装置が複数接続されたリクエスト処理システムの構成を示す図である。図１に示すように、本実施形態では、複数のサーバ装置１０と負荷分散装置（ロードバランサ）２０を含んで構成される。サーバ装置１０と、負荷分散装置２０は、ネットワーク４０を介して相互に通信可能に構成されている。クライアント装置３０と、負荷分散装置装置２０は、ネットワーク５０を介して相互に通信可能に構成されている。サーバ装置１０Ａ及びサーバ装置１０Ｂは冗長構成（同様の構成）であり、ここではサーバ装置１０が２台示されているが、複数であれば特にその数が限定されるものではない。また、クライアント装置３０は３台示されているが、複数であれば特にその数が限定されるものではない。
【００１３】
クライアント装置３０は、ネットワーク５０と、負荷分散装置２０と、ネットワーク４０を介して、サーバ装置１０にリクエストを送信する機能を有するとともに、サーバ装置１０から、ネットワーク４０と、負荷分散装置２０と、ネットワーク５０を介してそのリクエストに対するレスポンスを受け取る機能を有する。
【００１４】
サーバ装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００とメモリ２００を含んで構成される。記憶部としてのメモリ２００は、状態監視サーバ処理部２１０と、アプリケーションサーバ処理部２２０と、Ｗｅｂサーバ処理部２３０と、稼動統計情報取得部２４０と、しきい値定義ファイル４００と、ＣＰＵ稼動情報テーブル４１０と、メモリ使用情報テーブル４２０と、リクエスト情報テーブル４３０と、回数しきい値越えテーブル４４０と、リソース種別テーブル４５０を含んで記憶する機能を有する。処理部としてのＣＰＵ１００は、メモリ２００に記憶されているプログラムを実行する機能を有する。
【００１５】
アプリケーションサーバ処理部２２０は、Ｗｅｂサーバ処理部２３０からリクエストが入力されると、そのリクエストの処理を実行し、Ｗｅｂサーバ処理部２３０にその実行結果としてのレスポンスを出力するコードが記述されたプログラムである。
【００１６】
稼動統計情報取得部２４０は、サーバ装置１０のシステムリース（ＣＰＵ使用率、メモリ使用量）の情報を一定間隔（稼動統計情報取得間隔４０６の設定値の間隔）で、ＣＰＵ稼動情報テーブル４１０に取得するプログラムである。
【００１７】
状態監視サーバ処理部２１０は、リクエストを処理する機能（アプリケーションサーバ処理部２２０がＣＰＵ１００に実行されることによって実現する機能）を監視し、リクエストの処理が開始した場合、および、リクエストの処理が終了した場合に、リクエスト情報テーブル４３０にリクエストの情報を記録するプログラムである。また、負荷分散装置２０の制御監視サーバ処理部３００からサーバ装置１０のシステムリソース（ＣＰＵ使用率、メモリ使用量）の取得要求を受信した場合、ＣＰＵ稼動情報テーブル４１０とメモリ使用情報テーブル４２０にある現在のシステムリソース（ＣＰＵ使用率、メモリ使用量）の情報を、制御監視サーバ処理部３００に送信する。リクエストを受信した後にシステムリソース（ＣＰＵ使用率、メモリ使用量）が、しきい値定義ファイル４００に設定されたしきい値を越えた場合、システムリース（ＣＰＵ使用率、メモリ使用量）の種別をリソース種別テーブル４５０に記録し、実行中のリクエスト及び現在時刻から稼動統計情報取得間隔４０６の設定値を２倍した時間（秒）以内に終了したリクエストの情報と、システムリースの種別と、カウンタ（回数）とを回数しきい値越えテーブル４４０に記録する。回数しきい値越えテーブル４４０のカウンタ（回数）が一定値を越えた場合、システムリース（ＣＰＵ使用率、メモリ使用量）を大量に消費する可能性があるリクエストと判断し、リクエストと使用するシステムリースの種別を制御監視サーバ処理部３００に送信する。
【００１８】
負荷分散装置２０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１とメモリ２０１を含んで構成される。記憶部としてのメモリ２０１は、制御監視サーバ処理部３００と、しきい値情報ファイル５００と、高負荷リクエスト情報テーブル５１０と、Web/APサーバ負荷情報テーブル５２０を含んで記憶する機能を有する。処理部としてのＣＰＵ１０１は、メモリ２０１に記憶されているプログラムを実行する機能を有する。
【００１９】
制御監視サーバ処理部３００は、各サーバ装置１０にある状態監視サーバ処理部２１０から、各サーバ装置１０のシステムリソース（ＣＰＵ使用率、メモリ使用量）の情報の取得要求を送信し、取得要求の応答を受信し、Web/APサーバ負荷情報テーブル５２０に保存するプログラムである。また、制御監視サーバ処理部３００は、各サーバ装置１０にある状態監視サーバ処理部２１０から、システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に消費する可能性があるリクエスト（ＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｅｒ））の情報を受信し、高負荷リクエスト情報テーブル５１０に保存するプログラムである。さらに、制御監視サーバ処理部３００は、クライアント装置３０からリクエスト（ＵＲＩ）を受信した場合、リクエストの内容と高負荷リクエスト情報テーブル５１０を比較し、システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に消費する可能性が低いリクエストは、サーバ装置１０にラウンドロビン方式で振り分けを行う。
システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に消費する可能性があるリクエストは、Web/APサーバ負荷情報テーブル５２０の中から、システムリソース（ＣＰＵ使用率、メモリ使用量）の最も低いサーバ装置１０を選択し、選択したサーバ装置１０に振分けを行う。振分け可能なサーバ装置１０が存在しない場合、サーバ装置１０に振分けを行わず、エラー（受信拒否）として処理し、クライアント装置３０に混雑画面等を表示する。
【００２０】
図２は、本実施形態におけるリクエスト処理システムが４台のサーバ装置を含む場合の処理の流れを示す図である。図２に示すように、ここでは、リクエスト処理システムが、４台のサーバ装置１０（サーバ装置１０Ａと、サーバ装置１０Ｂと、サーバ装置１０Ｃと、サーバ装置１０Ｄ）を含んで構成される場合を例に挙げて、負荷分散装置２０がクライアント装置３０から受信したリクエストの内容と、４台のサーバ装置１０のシステムリソース（ＣＰＵ使用率、メモリ使用量）の使用状態を加味し、負荷分散装置２０が選択したサーバ装置１０にリクエストを振り分ける動作について説明する。また、状態監視サーバ処理部２１０と、Ｗｅｂサーバ処理部２３０と、アプリケーションサーバ処理部２２０と、稼動統計情報取得部２４０は、ＣＰＵ１００によって実行されることを実現されるものである。また、制御監視サーバ処理部３００は、ＣＰＵ１０１によって実行されることを実現されるものである。
【００２１】
サーバ装置１０にあるＷｅｂサーバ処理部２３０と、アプリケーションサーバ処理部２２０は、負荷分散装置２０から振り分けられたリクエストの処理する（ステップＳ１０２３）。
【００２２】
サーバ装置１０にある状態監視サーバ処理部２１０は、Webサーバ処理部２３０とアプリケーションサーバ２２０のリクエスト処理を監視し、リクエストの処理が開始した日時と終了した日時を記録する（ステップＳ１０２４）。
【００２３】
また、状態監視サーバ処理部２１０は、サーバ装置１０のシステムリソース（ＣＰＵ使用率、メモリ使用量）を監視する（ステップＳ１０１１、ステップＳ１０１２）。システムリソース（ＣＰＵ使用率、メモリ使用量）がしきい値を越えた場合、該当時間帯（事象発生から一定時間以前）に未終了のリクエストを抽出し、抽出したリクエストはシステムリソース（ＣＰＵ使用率、メモリ使用量）を大量に使用する可能性があるリクエスト（高負荷リクエスト）と判断する（ステップＳ１０１４）。システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に使用する可能性があるリクエスト（高負荷リクエスト）のＵＲＩと、使用するシステムリソース（ＣＰＵ使用率、メモリ使用量）の種類の情報を負荷分散装置２０にある制御監視サーバ３００に送信する（ステップＳ１０２１）。
【００２４】
また、状態監視サーバ処理部２１０は、負荷分散装置２０にある制御監視サーバ３００から、サーバ装置１０のシステムリソース（ＣＰＵ使用率、メモリ使用量）の取得要求を受信した場合、現在のシステムリソース（ＣＰＵ使用率、メモリ使用量）の情報を制御監視サーバ３００に送信する（ステップＳ１０１４）。
【００２５】
サーバ装置１０にある稼動統計情報取得部２４０は、システムリソース（ＣＰＵ使用率、メモリ使用量）の情報を一定間隔（稼動統計情報取得間隔４０６の設定値の間隔）で取得を行う（ステップＳ１００３、ステップＳ１００４）。
【００２６】
負荷分散装置２０にある制御監視サーバ処理部３００は、各サーバ装置１０にある状態監視サーバ処理部２１０から、システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に使用する可能性があるリクエスト（高負荷リクエスト）のＵＲＩと、使用するシステムリソース（ＣＰＵ使用率、メモリ使用量）の周類の情報の受信待ちを行う（ステップＳ２００２）。負荷分散装置２０にある制御監視サーバ処理部３００は、各サーバ装置１０にある状態監視サーバ処理部２１０から、システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に使用する可能性があるリクエスト（高負荷リクエスト）のＵＲＩと、使用するシステムリソース（ＣＰＵ使用率、メモリ使用量）の周類の情報を受信した場合、受信した情報を高負荷リクエスト情報テーブル５１０に保存する（ステップＳ２００５）。
【００２７】
また、負荷分散装置２０にある制御監視サーバ処理部３００は、クライアント装置３０から送信されるリクエストの受信待ちを行う（ステップＳ２００６）。
【００２８】
制御監視サーバ処理部３００が、クライアント装置３０から送信されたリクエスト（ｈｔｔｐ：／／・・・／ｉｎｄｅｘ．ｊｓｐ）を受信した場合、受信したリクエストの読み込みを行う（ステップＳ２００７）。
【００２９】
制御監視サーバ処理部３００は、クライアント装置３０から受信したリクエスト（ＵＲＩ）と、高負荷リクエスト情報テーブル５１０にあるＵＲＩの情報を比較する（ステップ２００８）。制御監視サーバ処理部３００の受信したリクエストがシステムリソース（ＣＰＵ使用率、メモリ使用量）が大量に消費する可能性が低い場合（ステップＳ２００８が「Ｎｏ」）、各サーバ装置１０にラウンドロビン方式で、Ｗｅｂサーバ処理部２３０およびアプリケーション処理部２２０にリクエストの振り分けを行う。図２では、制御監視サーバ処理部３００が、サーバ装置１０Ａにラウンドロビン方式で、Ｗｅｂサーバ処理部２３０およびアプリケーション処理部２２０にリクエストの振り分けを行う例を表す（ステップＳ２００９）。
【００３０】
制御監視サーバ処理部３００の受信したリクエストがシステムリソース（ＣＰＵ使用率、メモリ使用量）が大量に消費する可能性が高い場合（ステップＳ２００８が「Ｙｅｓ」）、制御監視サーバ処理部３００は各サーバ装置１０にある状態監視サーバ処理部２１０に、サーバ装置１０のシステムリソース（ＣＰＵ使用率、メモリ使用量）の使用状況の送信を要求する（ステップＳ３００３）。
【００３１】
制御監視サーバ処理部３００は、状態監視サーバ処理部２１０から受信したシステムリソース（ＣＰＵ使用率、メモリ使用量）の使用状況から、システムリソースの使用状態が、最も低いサーバ装置１０Ｗｅｂサーバ処理部２３０およびアプリケーション処理部２２０にリクエストの振り分けを行う。図２では、システムリソースの使用状態が最も低いサーバ装置１０ＤのＷｅｂサーバ処理部２３０およびアプリケーション処理部２２０にリクエストの振り分けを行う例を表す（ステップＳ２１０１）。
【００３２】
図３は、本実施形態におけるサーバ装置のリソース使用量を監視するためのしきい値定義を示す図であり、図１におけるサーバ装置１０のしきい値定義ファイル４００に含まれる。図３に示すように、しきい値定義ファイル４００は、ＣＰＵ使用率のしきい値の上限４０２と、メモリ使用量のしきい値の上限４０３と、Web/APサーバの総数４０４と、Web/APサーバの通し番号４０５と、稼動統計情報取得間隔４０６により構成される。しきい値定義ファイル４００の各データは、本実施形態の構築時に構築者によって事前に登録される。
【００３３】
ＣＰＵ使用率のしきい値の上限４０２は、ＣＰＵ使用率のしきい値の上限を設定する。
単位は％（パーセント）である。ＣＰＵ使用率は、Ｉ／Ｏ処理などのＯＳの処理によるＣＰＵの使用率と、ユーザプログラムの処理によるＣＰＵの使用率を足した値とする。設定値は、１００よりも低い値に設定する必要がある。
【００３４】
メモリ使用量のしきい値の上限４０３は、メモリ使用量のしきい値の上限を設定する。
単位はメガバイトである。設定値は、実際のメモリ使用量の物理的な上限よりも低い値に設定する必要がある。
【００３５】
Web/APサーバの総数４０４は、サーバ装置１０の総数の情報を格納する。単位は個である。
【００３６】
Web/APサーバの通し番号４０５は、サーバ装置１０の通し番号の情報を格納する。１から順に設定され、番号の重複や欠番は無いものとする。
【００３７】
稼動統計情報取得間隔４０６は、サーバ装置１０にある稼動統計情報取得部２４０が、サーバ装置１０のシステムリソース（ＣＰＵ使用率、メモリ使用量）の情報を取得する間隔を設定する。単位は秒である。デフォルト値として６０を仮定する。
【００３８】
図４は、本実施形態におけるサーバ装置のＣＰＵの稼動情報を示す図であり、図１におけるサーバ装置１０のＣＰＵ稼動情報テーブル４１０に含まれる。図４に示すように、ＣＰＵ稼動情報テーブル４１０は、年月日４１１と、時刻４１２と、ｓｙｓ４１３と、ｕｓｒ４１４と、ｉｄｌｅ４１５を含んで構成される。ＣＰＵ稼動情報テーブル４１０のデータは、図１２のステップＳ１００３により登録される。ＣＰＵ稼動情報テーブル４１０は、サーバ装置１０のＣＰＵ使用率を稼動統計情報取得部２４０が一定間隔（稼動統計情報取得間隔４０６の設定値の間隔）で取得した情報が格納される。
【００３９】
年月日４１１は、「年」と「月」と「日」とを含む。
【００４０】
時刻４１２は、「時」と「分」と「秒」とを含む。年月日４１０と時刻４１２に登録されるデータは、ＣＰＵの稼動情報を取得した時点の年月日及び日時である。
【００４１】
ｓｙｓ４１３は、Ｉ／Ｏ処理などのＯＳの処理によるＣＰＵの使用率を示す。
【００４２】
ｕｓｒ４１４は、主にユーザプログラムの処理によるＣＰＵの使用率を示す。
【００４３】
ｉｄｌｅ４１５は、ＣＰＵが何らかの処理によって使用されていない状態の使用率を示す。
【００４４】
図５は、本実施形態におけるサーバ装置のメモリ使用量を示す図であり、図１におけるサーバ装置１０のメモリ使用情報テーブル４２０に含まれる。図５に示すように、メモリ使用情報テーブル４２０は、年月日４２１と、時刻４２２と、メモリ使用量４２３を含んで構成される。メモリ使用情報テーブル４２０のデータは、図１３のステップＳ１００４により登録される。メモリ使用情報テーブル４２０は、サーバ装置１０のメモリ使用量を稼動統計情報取得部２４０が一定間隔（稼動統計情報取得間隔４０６の設定値の間隔）で取得した情報が格納される。
【００４５】
年月日４２１は、「年」と「月」と「日」とを含む。
【００４６】
時刻４２２は、「時」と「分」と「秒」とを含む。年月日４２１と時刻４２２に登録されるデータは、メモリ使用量の情報を取得した時点の年月日及び日時である。
【００４７】
メモリ使用量４２３は、サーバ装置１０のメモリ使用量を示す。単位はＭＢｙｔｅ（メガバイト）である。
【００４８】
図６は、本実施形態におけるサーバ装置が処理を行っているリクエスト情報を示す図であり、図１におけるサーバ装置１０のリクエスト情報テーブル４３０に含まれる。図６に示すように、リクエスト情報テーブル４３０は、ＵＲＩ４３１と、開始年月日４３２と、開始時刻４３３と、終了年月日４３４と、終了時刻４３５を含んで構成される。リクエスト情報テーブル４３０のデータは、図１２のステップＳ１０２４とステップＳ１０２５により登録される。リクエスト情報テーブル４３０は、クライアント装置３０から負荷分散装置２０を介して、サーバ装置１０が受信したリクエストを実行した際に、各リクエストの情報が格納される。
【００４９】
ＵＲＩ４３１は、各サーバ装置１０にあるＷｅｂサーバ処理部２３０と、アプリケーションサーバ処理部２２０が、クライアント装置３０から負荷分散装置２０を介して受信したリクエスト（ＵＲＩ）の情報を設定する。
【００５０】
開始年月日４３２は、「年」と「月」と「日」とを含む。
【００５１】
開始時刻４３３は、「時」と「分」と「秒」とを含む。開始年月日４３２と開始時刻４３３に登録されるデータは、各サーバ装置１０にあるＷｅｂサーバ処理部２３０と、アプリケーションサーバ処理部２２０が、クライアント装置３０から負荷分散装置２０を介して受信したリクエストの処理を開始した時点の年月日及び日時である。
【００５２】
終了年月日４３４は、「年」と「月」と「日」とを含む。
【００５３】
終了時刻４３５は、「時」と「分」と「秒」とを含む。終了年月日４３４と終了時刻４３５に登録されるデータは、各サーバ装置１０にあるＷｅｂサーバ処理部２３０と、アプリケーションサーバ処理部２２０が、クライアント装置３０から負荷分散装置２０を介して受信したリクエストの処理を終了した時点の年月日及び日時である。
【００５４】
図７は、本実施形態におけるサーバ装置の回数しきい値越えテーブルを示す図であり、図１におけるサーバ装置１０の回数しきい値越えテーブル４４０に含まれる。図７に示すように、回数しきい値越えテーブル４４０は、ＵＲＩ４４１と、カウンタ４４２と、通知欄４４３と、ＣＰＵフラグ４４４と、メモリフラグ４４５を含んで構成される。回数しきい値越えテーブル４４０のデータは、図１４のステップＳ１０２８と、ステップＳ１０２９と、ステップＳ１０３０と、ステップＳ１０３１と、ステップＳ１０３２、図１５のステップＳ１０１８とステップＳ１０２０により登録される。回数しきい値越えテーブル４４０は、サーバ装置１０のシステムリソース（ＣＰＵ使用率、メモリ使用量）が、図３のしきい値定義ファイル４００のＣＰＵ使用率のしきい値の上限４０２を越えた場合、または、図３のしきい値定義ファイル４００の図３のメモリ使用量のしきい値の上限４０３を越えた場合に、事象発生時間帯（事象発生から稼動統計情報取得間隔４０６の設定値を２倍した時間（秒）以内）にクライアント装置３０から負荷分散装置２０を介してサーバ装置１０が受信した各リクエスト（ＵＲＩ）の情報と、しきい値を越えた回数と、負荷分散装置２０にある制御監視サーバ処理部３００への通知（送信）の有無と、システムリソースの種類（ＣＰＵ使用率、メモリ使用量）の情報が格納される。
【００５５】
ＵＲＩ４４１は、サーバ装置１０のＣＰＵ使用率またはメモリ使用量が、図３のしきい値定義ファイル４００のＣＰＵ使用率のしきい値の上限４０２を越えた場合、または、図３のしきい値定義ファイル４００の図３のメモリ使用量のしきい値の上限４０３を越えた場合に、この時点から稼動統計情報取得間隔４０６の設定値を２倍した時間（秒）以前にクライアント装置３０から負荷分散装置２０を介して、サーバ装置１０が受信した全リクエスト（ＵＲＩ）の情報を設定する。
【００５６】
カウンタ４４２は、サーバ装置１０のＣＰＵ使用率またはメモリ使用量が、図３のしきい値定義ファイル４００のＣＰＵ使用率のしきい値の上限４０２を越えた場合、または、図３のしきい値定義ファイル４００の図３のメモリ使用量のしきい値の上限４０３を越えた場合に、この時点から稼動統計情報取得間隔４０６の設定値を２倍した時間（秒）以前にクライアント装置３０から負荷分散装置２０を介して、サーバ装置１０が受信した各リクエスト（ＵＲＩ）に対して、システムリソース（ＣＰＵ使用率、メモリ使用量）のしきい値越えの発生回数を格納する。１回の発生につき、設定値に１を加算する。初期値は０である。ただし、システムリソース（ＣＰＵ使用率、メモリ使用量）のしきい値越えが発生した時間帯（事象発生から稼動統計情報取得間隔４０６の設定値を２倍した時間（秒）以内）に、１つのリクエストしか存在しない場合、重み付けのためにカウンタのしきい値として、図３のしきい値定義ファイル４００のWeb/APサーバの総数４０４から１を引いた値を、設定値に加算する。この加算方式により、システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に消費する可能性があるリクエスト（ＵＲＩ）を推定する。
【００５７】
通知欄４４３は、サーバ装置１０にある状態監視サーバ処理部２１０が、負荷分散装置２０にある制御監視サーバ処理部３００に対して、システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に消費する可能性があるリクエスト（ＵＲＩ）の情報を送信した場合は、１を設定する。未通知（未送信）の場合は０を設定する。初期値は０である。
【００５８】
ＣＰＵフラグ４４４は、図３のＣＰＵ使用率のしきい値の上限４０２を越えた場合、１を設定する。越えていない場合は、０を設定する。初期値は０である。
【００５９】
メモリフラグ４４５は、図３のメモリ使用量のしきい値の上限４０３を越えた場合、１を設定する。越えていない場合は、０を設定する。初期値は０である。
【００６０】
図８は、本実施形態におけるサーバ装置のＣＰＵおよびメモリのシステムリソースの種別を示す図であり、図１におけるサーバ装置１０のリソース種別テーブル４５０に含まれる。図８に示すように、リソース種別テーブル４５０は、ＣＰＵフラグ種別４５２と、メモリフラグ４５３を含んで構成される。リソース種別テーブル４５０のデータは、図１３のステップＳ１０１０により初期化され、図１３のステップＳ１０２６と、ステップＳ１０２７により登録される。リソース種別テーブル４５０は、サーバ装置１０のしきい値越えが発生したシステムリソース（ＣＰＵ使用率、メモリ使用量）の種別が、ＣＰＵ使用率かメモリ使用量かの情報を一時的に格納する。
【００６１】
ＣＰＵフラグ４５２は、図３のＣＰＵ使用率のしきい値の上限４０２を越えた場合、１を設定する。越えていない場合は、０を設定する。初期値は０である。
【００６２】
メモリフラグ４５３は、図３のＣＰＵ使用率のしきい値の上限４０３を越えた場合、１を設定する。越えていない場合は、０を設定する。初期値は０である。
【００６３】
図９は、本実施形態における負荷分散装置のしきい値情報を示す図であり、図１における負荷分散装置２０のしきい値情報ファイル５００に含まれる。図９に示すように、しきい値情報ファイル５００は、ＣＰＵ使用率のしきい値の上限５０２と、メモリ使用量のしきい値の上限５０３と、Web/APサーバの総数５０４と、応答タイムアウト時間５０５により構成される。しきい値情報ファイル５００の各データは、本実施形態の構築時に構築者によって事前に登録される。また、図３のしきい値定義ファイル４００と同じ設定値とする必要がある。
【００６４】
ＣＰＵ使用率のしきい値の上限５０２は、ＣＰＵ使用率のしきい値の上限を設定する。
単位はパーセントである。ＣＰＵ使用率は、Ｉ／Ｏ処理などのＯＳの処理によるＣＰＵの使用率と、ユーザプログラムの処理によるＣＰＵの使用率を足した値とする。設定値は、１００よりも低い値に設定する必要がある。
【００６５】
メモリ使用量のしきい値の上限５０３は、メモリ使用量のしきい値の上限を設定する。
単位はメガバイトである。設定値は、実際のメモリ使用量の物理的な上限よりも低い値に設定する必要がある。
【００６６】
Web/APサーバの総数５０４は、サーバ装置１０の総数の情報を格納する。単位は個である。
【００６７】
図１０は、本実施形態における負荷分散装置の高負荷リクエスト情報を示す図であり、図１における負荷分散装置２０の高負荷リクエスト情報テーブル５１０に含まれる。図１０に示すように、高負荷リクエスト情報テーブル５１０は、ＵＲＩ５１１と、ＣＰＵフラグ５１２と、メモリフラグ５１３により構成される。高負荷リクエスト情報テーブル５１０のデータは、図１６のステップＳ２００５により登録される。高負荷リクエスト情報テーブル５１０は、制御監視サーバ処理部３００が状態監視サーバ処理部２１０から受信した、システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に消費する可能性のあるリクエストの情報を格納する。
【００６８】
ＵＲＩ５１１は、制御監視サーバ処理部３００が状態監視サーバ処理部２１０から受信した、システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に消費する可能性のあるリクエストのＵＲＩの情報を格納する。
【００６９】
ＣＰＵフラグ５１２は、制御監視サーバ処理部３００が状態監視サーバ処理部２１０から受信した、システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に消費する可能性のあるリクエストのシステムリソースの種別に関する情報を格納する。ＣＰＵ使用率である場合は１を設定する。ＣＰＵ使用率ではない場合は０を設定する。
【００７０】
メモリフラグ５１３は、制御監視サーバ処理部３００が状態監視サーバ処理部２１０から受信した、システムリソース（ＣＰＵ使用率、メモリ使用量）を大量に消費する可能性のあるリクエストのシステムリソースの種別に関する情報を格納する。メモリ使用量である場合は１を設定する。メモリ使用量ではない場合は０を設定する。
【００７１】
図１１は、本実施形態における負荷分散装置のWeb/APサーバ負荷状態を示す図であり、図１における負荷分散装置２０のWeb/APサーバ負荷状態テーブル５２０に含まれる。図１１に示すように、Web/APサーバ負荷状態テーブル５２０は、年月日５２１と、時刻５２２と、Web/APのサーバ番号５２３と、ＣＰＵ使用率５２４と、メモリ使用量５２５と、しきい値越えフラグ５２６を含んで構成される。Web/APサーバ負荷状態テーブル５２０のデータは、図１７のステップＳ３００２と、ステップＳ３００３と、ステップＳ３０１７と、ステップＳ３０１８と、ステップＳ３０１９により登録される。Web/APサーバ負荷状態テーブル５２０は、各サーバ装置１０にある状態監視サーバ処理部２１０から入手した現在のシステムリソース（ＣＰＵ使用率、メモリ使用量）の情報を格納する。
【００７２】
年月日５２１は、「年」と「月」と「日」とを含む。
【００７３】
時刻５２２は、「時」と「分」と「秒」とを含む。年月日５２１と時刻５２２に登録されるデータは、各サーバ装置１０にある状態監視サーバ処理部２１０からWeb/APサーバの番号とＣＰＵ使用率とメモリ使用量を取得した時点の年月日及び日時である。
【００７４】
Web/APサーバの番号５２３は、各サーバ装置１０の通し番号が設定される。１から順に設定され、番号の重複や欠番は無いものとする。
【００７５】
ＣＰＵ使用率５２４は、各サーバ装置１０のＣＰＵ使用率が設定される。
【００７６】
メモリ使用量５２５は、各サーバ装置１０のメモリ使用量が設定される。
【００７７】
しきい値越えフラグ５２６は、図９のＣＰＵ使用率のしきい値の上限５０２の設定値、または、図９のメモリ使用量のしきい値の上限５０３の設定値を越えていた場合、１を設定する。越えていない場合は、０を設定する。
【００７８】
図１２、図１３、図１４、図１５は、本実施形態における、サーバ装置内にある状態監視サーバ処理部２１０の動きの流れを示すフローチャートである。
【００７９】
状態監視サーバ処理部２１０は、図３のしきい値定義ファイル４００のＣＰＵ使用率のしきい値の上限４０２と、メモリ使用量のしきい値の上限４０３と、Web/APサーバの総数４０４の設定値を読み込む（ステップＳ１００１）。
【００８０】
カウンタのしきい値として、Web/APサーバの総数４０４の設定値から１を引いた値を設定する（ステップＳ１００２）。
【００８１】
サーバ装置１０のＣＰＵ稼動情報（ＣＰＵ使用率の情報）を稼動統計情報取得部２４０が一定間隔（稼動統計情報取得間隔４０６の設定値（秒）の間隔）で取得を開始する。稼動統計情報取得部２４０が取得したＣＰＵ稼動情報を図４のＣＰＵ稼動情報テーブルに格納する（ステップＳ１００３）。
【００８２】
サーバ装置１０のメモリ使用量の情報を稼動統計情報取得部２４０が一定間隔（稼動統計情報取得間隔４０６の設定値の間隔）で取得を開始する。稼動統計情報取得部２４０が取得したメモリ使用量の情報を図５のメモリ使用情報テーブル４２０に格納する（ステップＳ１００４）。
【００８３】
負荷分散装置２０にある制御監視サーバ処理部３００から、サーバ装置１０にある状態監視サーバ処理部２１０に、サーバ装置１０の負荷状況（システムリソースの使用状況）の送信要求がある場合（ステップＳ１００５が「Ｙｅｓ」）、サーバ装置１０にある状態監視サーバ処理部２１０は、図４のＣＰＵ稼動情報テーブル４１０の最新日時（年月日４１１と時刻４１２）のＣＰＵ使用率（ｓｙｓ４１３とｕｓｒ４１４の合計）情報と、図５のメモリ使用情報テーブル４２０の最新日時（年月日４２１と時刻４２２）のメモリ使用量４２３の情報と、図３のしきい値定義ファイル４００のWeb/APサーバの通し番号４０５の情報を、負荷分散装置２０にある制御監視サーバ処理部３００に送信する（ステップＳ１０２２）。負荷分散装置２０にある制御監視サーバ処理部３００から、サーバ装置１０にある状態監視サーバ処理部２１０に、サーバ装置１０の負荷状況（システムリソースの使用状況）の送信要求がない場合（ステップＳ１００５が「Ｎｏ」）、何もしない。
【００８４】
サーバ装置１０が、クライアント装置３０から負荷分散装置２０を介して、リクエストを受信した場合（ステップＳ１００６の「Ｙｅｓ」）、クライアント装置３０から受信したリクエストを読込み、Ｗｅｂサーバ処理部２３０、または、アプリケーションサーバ処理部２２０にて、クライアント装置３０から受信したリクエストを実行する（ステップＳ１０２３）。クライアント装置３０から受信したリクエストのＵＲＩを図６のリクエスト情報テーブル４３０にある４３１ＵＲＩに記録するする。また、受信したリクエストを実行した年月日を開始年月日４３２と、受信したリクエストを実行した時刻を開始時刻４３３に記録する（ステップＳ１０２４）。
【００８５】
Ｗｅｂサーバ処理部２３０と、アプリケーションサーバ処理部２２０が、クライアント端末３０から受信したリクエストの処理が終了した場合（ステップＳ１００７の「Ｙｅｓ」）、リクエスト情報テーブル４３０にある該当するリクエストの終了年月日４３４にリクエストの終了した年月日を記録し、終了時刻４３５にリクエストの終了した時刻を記録する（ステップＳ１０２５）。サーバ装置１０が、クライアント装置３０から負荷分散装置２０を介して、リクエストを受信していない場合（ステップＳ１００６の「Ｎｏ」）、何もしない。この後、図１３に続く。
【００８６】
状態監視サーバ処理部２１０は、図４のＣＰＵ稼動情報テーブル４１０からサーバ装置１０の現在のＣＰＵ使用率を取得する（ステップＳ１００８）。状態監視サーバ処理部２１０は、図５のメモリ使用情報テーブル４２０からサーバ装置１０の現在のメモリ使用量を取得する（ステップＳ１００９）。状態監視サーバ処理部２１０は、図８のリソース種別テーブル４５０にあるＣＰＵフラグ４５２の設定値に０を設定する。また、メモリフラグ４５３の設定値に０を設定する（ステップＳ１０１０）。
【００８７】
ステップＳ１００８にて取得した図４のＣＰＵ稼動情報テーブルのｓｙｓ４１３とｕｓｒ４１４の合計値が、図３のしきい値定義ファイル４００にあるＣＰＵ使用率のしきい値の上限４０２を越えていた場合（ステップＳ１０１１の「Ｙｅｓ」）、図８のリソース種別テーブル４５０にあるＣＰＵフラグ４５２に１を設定する（ステップＳ１０２６）。ステップＳ１００８にて取得した図４のＣＰＵ稼動情報テーブルのｓｙｓ４１３とｕｓｒ４１４の合計値が、図３のしきい値定義ファイル４００にあるＣＰＵ使用率のしきい値４０２を越えていない場合（ステップＳ１０１１の「Ｎｏ」）、何もしない。
【００８８】
ステップＳ１００９にて取得した図５のメモリ使用情報テーブル４２０にメモリ使用量４２３が、図３のしきい値定義ファイル４００にあるメモリ使用量のしきい値の上限４０３を越えていた場合（ステップＳ１０１２の「Ｙｅｓ」）、図８のリソース種別テーブル４５０にあるメモリフラグ４５３に１を設定する（ステップＳ１０２７）。ステップＳ１００９にて取得した図５のメモリ使用情報テーブル４２０にメモリ使用量４２３が、図３のしきい値定義ファイル４００にあるメモリ使用量のしきい値の上限４０３を越えていない場合（ステップＳ１０１２の「Ｎｏ」）、何もしない。
【００８９】
図８のリソース種別テーブル４５０にあるＣＰＵフラグ４５２に１が設定されていない場合、かつ、メモリフラグ４５３に１が設定されていない場合（ステップＳ１０１３が「Ｎｏ」）、図１２のステップＳ１００５に戻る。
【００９０】
図８のリソース種別テーブル４５０にあるＣＰＵフラグ４５２に１が設定されている場合、または、メモリフラグ４５３に１が設定されている場合（ステップＳ１０１３が「Ｙｅｓ」）、図６のリクエスト情報テーブル４３０から、現在未終了のリクエスト（ＵＲＩ）と、現在時刻から稼動統計情報取得間隔４０６の設定値を２倍した時間（秒）以内に終了したリクエスト（ＵＲＩ）を抽出する（ステップＳ１０１４）。この後、図１４に続く。
【００９１】
図１３のステップＳ１０１４にて抽出したリクエスト（ＵＲＩ）が存在しない場合（ステップＳ１０１５が「Ｎｏ」）、図１２のステップＳ１００５に戻る。
【００９２】
図１３のステップＳ１０１４にて抽出したリクエスト（ＵＲＩ）が存在する場合（ステップＳ１０１５が「Ｙｅｓ」）、ステップＳ１０１６を実行する。
【００９３】
ステップＳ１０１４にて抽出したリクエスト（ＵＲＩ）が、図７の回数しきい値越えテーブル４４０にあるＵＲＩ４４１に登録されている場合（ステップＳ１０１６が「Ｎｏ」）、何もしない。
【００９４】
図１３のステップＳ１０１４にて抽出したリクエスト（ＵＲＩ）が、図７の回数しきい値越えテーブル４４０にあるＵＲＩ４４１に登録されていない場合（ステップＳ１０１６が「Ｙｅｓ」）、図7の回数しきい値越えテーブル４４０にあるＵＲＩ４４１に、図１３のステップＳ１０１４にて抽出したリクエスト（ＵＲＩ）を登録する（ステップＳ１０２８）。図7の回数しきい値越えテーブル４４０にある通知欄４４２に０を設定する（ステップＳ１０２９）。図7の回数しきい値越えテーブル４４０にあるカウンタ欄４４２に０を設定する（ステップＳ１０３０）。ステップＳ１０２８にて、回数しきい値越えテーブル４４０のＵＲＩ４４１に登録したリクエスト（ＵＲＩ）に対応するＣＰＵフラグ４４４に、図８のリソース種別テーブルにあるＣＰＵフラグ４５２の設定値を設定する。また、ステップＳ１０２８にて回数しきい値越えテーブル４４０のＵＲＩ４４１に登録したリクエスト（ＵＲＩ）に対応するメモリフラグ４４５に、図８のリソース種別テーブルにあるメモリフラグ４５３の設定を設定する（ステップＳ１０３１）。
【００９５】
図１３のステップＳ１０１４にて、抽出したリクエスト（ＵＲＩ）が、複数存在しない場合（ステップＳ１０１７の「Ｎｏ」）、抽出したリクエスト（ＵＲＩ）のカウンタ４４２に、ステップＳ１００２のカウンタのしきい値の設定値を加算する（ステップＳ１０３２）。ステップＳ１０１４にて、抽出したリクエスト（ＵＲＩ）が、複数存在する場合（ステップＳ１０１７の「Ｙｅｓ」）、何もしない。この後、図１５に続く。
【００９６】
図１３のステップＳ１０１４にて抽出した各リクエスト（ＵＲＩ）のカウンタ４４２の設定値に１を加算する（ステップＳ１０１８）。
【００９７】
図７の回数しきい値越えテーブル４４０にあるカウンタ４４２に、ステップＳ１００２のカウンタのしきい値の設定値を越え、かつ、回数しきい値越えテーブル４４０にある通知欄４４３の設定値が０であるＵＲＩ４４１が存在しない場合（ステップＳ１０１９の「Ｎｏ」）、ステップＳ１００５に戻る。
【００９８】
図７の回数しきい値越えテーブル４４０にあるカウンタ４４２に、ステップＳ１００２のカウンタのしきい値の設定値を越え、かつ、回数しきい値越えテーブル４４０にある通知欄４４３の設定値が０であるＵＲＩ４４１が存在する場合（ステップＳ１０１９の「Ｙｅｓ」）、該当するリクエスト（ＵＲＩ）の通知欄４４３の設定値に１を設定する（ステップＳ１０２０）。
【００９９】
ステップＳ１０２０にて、該当するリクエスト（ＵＲＩ）に対応する回数しきい値越えテーブル４４０にあるＵＲＩ４４１と、ＣＰＵフラグ４４４と、メモリフラグ４４５を、負荷分散装置２０にある制御監視サーバ処理部３００に送信する。
【０１００】
図１６は、本実施形態における、負荷分散装置内にある制御監視サーバ処理部３００の動きの流れを示すフローチャートである。制御監視サーバ処理部３００は、図９のしきい値情報ファイル５００のＣＰＵ使用率のしきい値の上限５０２と、メモリ使用量のしきい値の上限５０３と、Web/APサーバの総数５０４の設定内容を読み込む（ステップＳ２００１）。
【０１０１】
制御監視サーバ処理部３００は、各サーバ装置１０にある状態監視サーバ処理部２１０から高負荷リクエスト（ＵＲＩ）の情報の受信処理を行う（ステップＳ２００２）。
【０１０２】
サーバ装置１０にある状態監視サーバ処理部２１０から高負荷リクエスト（ＵＲＩ）の情報を受信している場合（ステップＳ２００３の「Ｙｅｓ」）、図１０の高負荷リクエスト情報テーブル５１０を参照し、受信した高負荷リクエスト（ＵＲＩ）の情報が高負荷リクエスト情報テーブル５１０に登録されているかどうかの確認を行い、受信した高負荷リクエスト（ＵＲＩ）の情報が高負荷リクエスト情報テーブル５１０に登録されていない場合（ステップＳ２００４の「Ｙｅｓ」）、受信した高負荷リクエスト（ＵＲＩ）の情報を高負荷リクエスト情報テーブル５１０に登録する（ステップＳ２００５）。サーバ装置１０にある状態監視サーバ処理部２１０から高負荷リクエスト（ＵＲＩ）の情報を受信していない場合（ステップＳ２００３の「Ｎｏ」）、及びサーバ処理部２１０から高負荷リクエスト（ＵＲＩ）の情報を受信した高負荷リクエスト（ＵＲＩ）の情報が高負荷リクエスト情報テーブル５１０に登録されている場合（ステップＳ２００４の「Ｎｏ」）は、何もしない。
【０１０３】
続いて、クライアント装置３０からリクエストを受信していない場合（ステップＳ２００６の「Ｎｏ」）、制御監視サーバ処理部３００は、各サーバ装置１０にある状態監視サーバ処理部２１０から高負荷リクエスト（ＵＲＩ）の情報の受信処理を行う（ステップＳ２００２に戻る）。クライアント装置３０からネットワーク５０を介してリクエストを受信している場合（ステップＳ２００６の「Ｙｅｓ」）、クライアント装置３０からリクエストを受信する（ステップＳ２００７）。
【０１０４】
続いて、クライアント装置３０から受信したリクエストの内容と、高負荷リクエスト情報テーブル５１０のＵＲＩ５１１を比較し、内容が一致しない場合（ステップＳ２００８の「Ｎｏ」）、クライアント装置３０から受信したリクエストをラウンドロビン方式により、サーバ装置１０にあるＷｅｂサーバ処理部２３０とアプリケーションサーバ処理部２２０に振り分けを行う（ステップＳ２００９）。クライアント装置３０から受信したリクエストの内容と、高負荷リクエスト情報テーブル５１０の内容を比較し、内容が一致する場合（ステップＳ２００８の「Ｙｅｓ」）、各サーバ装置１０（Web/APサーバ）の中から負荷の一番低い（システムリソースの使用状況が最も低い）サーバ装置１０を選択し、クライアント装置３０から受信したリクエストを選択したサーバ装置１０にあるＷｅｂサーバ処理部２３０とアプリケーションサーバ処理部２２０に振り分けを行う。また、各サーバ装置１０（Web/APサーバ）の負荷が高い場合（システムリソースの使用状況が全て高い場合）、クライアント装置３０から受信したリクエストをエラー処理（受信拒否等）とする（ステップＳ２０１０）。
【０１０５】
図１７、図１８は、本実施形態における、負荷分散装置２０にある制御監視サーバ処理部３００が、負荷（システムリソースの使用状況）の一番低いサーバ装置１０（Web/APサーバ）を選択する流れを示すフローチャートである。まず、負荷分散装置２０にある制御監視サーバ処理部３００が、負荷（システムリソースの使用状況）の一番低いサーバ装置１０（Web/APサーバ）の選択処理を開始する（ステップＳ３００１）。図１１のWeb/APサーバ負荷状態テーブル５２０の初期化を行う（ステップＳ３００２）。制御監視サーバ処理部３００が、各サーバ装置１０にある状態監視サーバ処理部２１０に対して、サーバ装置１０の負荷状態（システムリソースの使用状況）の送信要求の通信を行う。この通信に対する受信処理および返信処理は、図１２の状態監視サーバ処理部２１０のステップＳ１００５と、ステップＳ１０２２により行われる。制御監視サーバ処理部３００は、各サーバ装置１０にある状態監視サーバ処理部２１０からのサーバ装置１０の負荷状態（システムリソースの使用状況）を受信すると、受信した内容を図１１のWeb/APサーバ負荷状態テーブル５２０に設定する（ステップＳ３００３）。各サーバ装置１０にある状態監視サーバ処理部２１０から、制御監視サーバ処理部３００に、サーバ装置１０の負荷状態（システムリソースの使用状況）が５秒以内に応答を返して来ない場合（ステップＳ３００４が「Ｙｅｓ」）、該当するサーバ装置１０(Web/APサーバ)は高負荷状態と見なして、Web/APサーバ負荷状態テーブル５２０にある、該当するサーバ装置１０(Web/APサーバ)のしきい値越えフラグ５２６に１を設定する（ステップＳ３０１７）。各サーバ装置１０にある状態監視サーバ処理部２１０から、制御監視サーバ処理部３００に、サーバ装置１０の負荷状態（システムリソースの使用状況）が５秒以内に応答を返して来た場合（ステップＳ３００４が「Ｎｏ」）、何もしない。図９のしきい値情報ファイル５００にあるＣＰＵ使用率のしきい値の上限５０２と、図１１のWeb/APサーバ負荷状態テーブル５２０にある各サーバ装置１０のＣＰＵ使用率５２４の比較を行う（ステップＳ３００５）。Web/APサーバ負荷状態テーブル５２０にある各サーバ装置１０のＣＰＵ使用率５２４が、ＣＰＵ使用率のしきい値の上限５０２を越えている場合（ステップＳ３００６が「Ｙｅｓ」）、Web/APサーバ負荷状態テーブル５２０にある、該当するサーバ装置１０(Web/APサーバ)のしきい値越えフラグ５２６に１を設定する（ステップＳ３０１８）。Web/APサーバ負荷状態テーブル５２０にある各サーバ装置１０のＣＰＵ使用率５２４が、ＣＰＵ使用率のしきい値の上限５０２を越えていない場合（ステップＳ３００６が「Ｎｏ」）、何もしない。
【０１０６】
続いて、図９のしきい値情報ファイル５００にあるメモリ使用量のしきい値の上限５０３と、図１１のWeb/APサーバ負荷状態テーブル５２０にある各サーバ装置１０のメモリ使用量５２５の比較を行う（ステップＳ３００７）。Web/APサーバ負荷状態テーブル５２０にある各サーバ装置１０のメモリ使用量５２５が、メモリ使用量の上限５０３を越えている場合（ステップＳ３００８が「Ｙｅｓ」）、Web/APサーバ負荷状態テーブル５２０にある、該当するサーバ装置１０(Web/APサーバ)のしきい値越えフラグ５２６に１を設定する（ステップＳ３０１９）。Web/APサーバ負荷状態テーブル５２０にある各サーバ装置１０のメモリ使用量５２５が、メモリ使用量のしきい値の上限５０３を越えていない場合（ステップＳ３００８が「Ｎｏ」）、何もしない。この後の動作は、図１８に続く。
【０１０７】
図１１のWeb/APサーバ負荷情報テーブル５２０にある各サーバ装置１０のしきい値越えフラグ５２６が全て１の場合（ステップＳ３００９が「Ｙｅｓ」）、クライアント装置３０から受信したリクエストのエラー処理や受信拒否（混雑画面の表示等）を行い、図１６のステップＳ２００２に戻る（ステップＳ３０２３）。図１１のWeb/APサーバ負荷情報テーブル５２０にある各サーバ装置１０のしきい値越えフラグ５２６のいずれかに０が含まれる場合（ステップＳ３００９が「Ｎｏ」）、ステップＳ２００８で一致すると判断された図１０の高負荷リクエスト情報テーブル５１０にあるＵＲＩ５１１に登録された、クライアント装置３０から受信したリクエスト（ＵＲＩ）が、高負荷リクエスト情報テーブル５１０にあるメモリフラグ５１３に１が設定されている場合（ステップＳ３０１０が「Ｙｅｓ」）、Web/APサーバ負荷情報テーブル５２０にあるしきい値越えフラグ５２６が０であるWeb/APサーバの番号５２３の中からメモリ使用量５２５の最も低いWeb/APサーバの番号５２３を選択する（ステップＳ３０１１）。ステップＳ３０１１にて選択したWeb/APサーバの番号５２３が複数存在しない場合（ステップＳ３０１２が「Ｎｏ」）、クライアント装置３０から受信したリクエストをステップＳ３０１１で選択したWeb/APサーバの番号５２３に対応するサーバ装置１０に振り分けを行い、図１６のステップＳ２００２に戻る（ステップＳ３０１６）。ステップＳ３０１１で選択したWeb/APサーバの番号５２３が複数存在する場合（ステップＳ３０１２が「Ｙｅｓ」）、ステップＳ３０１１で選択したWeb/APサーバの番号５２３の中から、図１１のWeb/APサーバ負荷状態テーブル５２０にあるＣＰＵ使用率５２４の最も低いWeb/APサーバの番号５２３を選択する（ステップＳ３０１３）。この後、ステップＳ３０１４の処理を行う。
【０１０８】
続いて、図１０の高負荷リクエスト情報テーブル５１０にあるＵＲＩ５１１に登録された、クライアント装置３０から受信したリクエスト（ＵＲＩ）が、高負荷リクエスト情報テーブル５１０にあるメモリフラグ５１３に１が設定されていない場合（ステップＳ３０１０が「Ｎｏ」）、図１１のWeb/APサーバ負荷状態テーブル５２０にあるしきい値越えフラグ５２６が０であるWeb/APサーバの番号５２３の中からＣＰＵ使用率５２４の最も低いWeb/APサーバの番号５２３を選択する（ステップＳ３０２０）。ステップＳ３０２０にて選択したWeb/APサーバの番号５２３が複数存在しない場合（ステップＳ３０２１が「Ｎｏ」）、クライアント装置３０から受信したリクエストをステップＳ３０２０で選択したWeb/APサーバの番号５２３に対応するサーバ装置１０に振り分けを行い、図１６のステップＳ２００２に戻る（ステップＳ３０１６）。
【０１０９】
ステップＳ３０２０にて選択したWeb/APサーバの番号５２３が複数存在する場合（３０２１が「Ｙｅｓ」）、ステップＳ３０２０で選択したWeb/APサーバの番号５２３の中から、図１１のWeb/APサーバ負荷状態テーブル５２０にあるメモリ使用量５２５の最も低いWeb/APサーバの番号５２３を選択する（ステップＳ３０２２）。この後、ステップＳ３０１４の処理を行う。
【０１１０】
続いて、ステップＳ３０１３にて選択したWeb/APサーバの番号５２３が複数存在しない場合（ステップＳ３０１４が「Ｎｏ」）、クライアント装置３０から受信したリクエストをステップＳ３０１３で選択したWeb/APサーバの番号５２３に対応するサーバ装置１０に振り分けを行い、図１６のステップＳ２００２に戻る（ステップＳ３０１６）。また、ステップＳ３０２２にて選択したWeb/APサーバの番号５２３が複数存在しない場合（ステップＳ３０１４が「Ｎｏ」）、クライアント装置３０から受信したリクエストをステップＳ３０２２で選択したWeb/APサーバの番号５２３に対応するサーバ装置１０に振り分けを行い、図１６のステップＳ２００２に戻る（ステップＳ３０１６）。
【０１１１】
ステップＳ３０１３にて選択したWeb/APサーバの番号５２３が複数存在する場合（ステップＳ３０１４が「Ｙｅｓ」）、ステップＳ３０１３で選択したWeb/APサーバの番号５２３の中から、Web/APサーバの番号５２３の値が最も小さいものを選択する（ステップＳ３０１５）。この後、クライアント装置３０から受信したリクエストをステップＳ３０１５にて選択したWeb/APサーバの番号５２３に対応するサーバ装置１０に振り分けを行い、図１６のステップＳ２００２に戻る（ステップＳ３０１６）。
【０１１２】
また、ステップＳ３０２２にて選択したWeb/APサーバの番号５２３が複数存在する場合（ステップＳ３０１４が「Ｙｅｓ」）、ステップＳ３０２２で選択したWeb/APサーバの番号５２３の中から、Web/APサーバの番号５２３の値が最も小さいものを選択する（ステップＳ３０１５）。この後、クライアント装置３０から受信したリクエストをステップＳ３０１５にて選択したWeb/APサーバの番号５２３に対応するサーバ装置１０に振り分けを行い、図１６のステップＳ２００２に戻る（ステップＳ３０１６）。
【図面の簡単な説明】
【０１１３】
【図１】本実施形態における、負荷分散装置と複数のサーバ装置（２台のサーバ装置）が接続されたリクエスト処理の構成を示す図である。
【図２】本実施形態における、リクエスト処理システムが４台のサーバ装置を含む場合の処理の流れを示す図である。
【図３】本実施形態における、サーバ装置内にあるしきい値定義ファイルである。
【図４】本実施形態における、サーバ装置内にあるCPU稼動情報テーブルである。
【図５】本実施形態における、サーバ装置内にあるメモリ使用情報テーブルである。
【図６】本実施形態における、サーバ装置内にあるリクエスト情報テーブルである。
【図７】本実施形態における、サーバ装置内にある回数しきい値越えテーブルである。
【図８】本実施形態における、サーバ装置内にあるリソース種別テーブルである。
【図９】本実施形態における、負荷分散装置内にあるしきい値情報ファイルである。
【図１０】本実施形態における、負荷分散装置内にある高負荷リクエスト情報テーブルである。
【図１１】本実施形態における、負荷分散装置内にあるWeb/APサーバ負荷状態テーブルである。
【図１２】本実施形態における、サーバ装置内にある状態監視サーバ処理部の動きの流れを示すフローチャートである。
【図１３】本実施形態における、図１２の続きの流れを示すフローチャートである。
【図１４】本実施形態における、図１３の続きの流れを示すフローチャートである。
【図１５】本実施形態における、図１４の続きの流れを示すフローチャートである。
【図１６】本実施形態における、負荷分散装置内にある制御監視サーバ処理部の動きの流れを示すフローチャートである。
【図１７】本実施形態における、負荷分散装置内の制御監視サーバ処理部が、負荷の一番低いサーバ装置(Web/APサーバ)を選択する流れを示すフローチャートである。
【図１８】本実施形態における、図１７の続きのフローチャートである。
【符号の説明】
【０１１４】
１０(１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ)…サーバ装置、２０…負荷分散装置（ロードバランサ）、３０…クライアント装置、４０…ネットワーク、５０…ネットワーク、１００…ＣＰＵ、１０１…ＣＰＵ、２００…メモリ、２０１…メモリ、２１０…状態監視サーバ処理部、２２０…アプリケーションサーバ処理部、２３０…Ｗｅｂサーバ処理部、２４０…稼動統計情報取得部、３００…制御監視サーバ処理部、４００…しきい値定義ファイル、４０１…しきい値項目、４０２…ＣＰＵ使用率のしきい値の上限、４０３…メモリ使用量のしきい値の上限、４０４…Web/APサーバの総数、４０５…Web/APサーバの通し番号、４０６…稼動統計情報取得間隔、４１０…ＣＰＵ稼動情報テーブル、４１１…年月日、４１２…時刻、４１３…ｓｙｓ、４１４…ｕｓｒ、４１５…ｉｄｌｅ、４２０…メモリ使用量情報テーブル、４２１…年月日、４２２…時刻、４２３…メモリ使用量、４３０…リクエスト情報テーブル、４３１…ＵＲＩ、４３２…開始年月日、４３３…開始時刻、４３４…終了年月日、４３５…終了時刻、４４０…回数しきい値越えテーブル、４４１…ＵＲＩ、４４２…カウンタ、４４３…通知欄、４４４…ＣＰＵフラグ、４４５…メモリフラグ、４５０…リソース種別テーブル、４５１…リソースフラグ種別、４５２…ＣＰＵフラグ、４５３…メモリフラグ、５００…しきい値情報ファイル、５０１…しきい値項目、５０２…ＣＰＵ使用率のしきい値の上限、５０３…メモリ使用量のしきい値の上限、５０４…Web/APサーバの総数、５０５…応答タイムアウト時間、５１０…高負荷リクエスト情報テーブル、５１１…ＵＲＩ、５１２…ＣＰＵフラグ、５１３…メモリフラグ、５２０…Web/APサーバ負荷情報テーブル、５２１…年月日、５２２…時刻、５２３…Web/APサーバの番号、５２４…ＣＰＵ使用率、５２５…メモリ使用量、５２６…しきい値越えフラグ。
【図１】
2010097447.tif 000003
【図２】
2010097447.tif 000004
【図３】
2010097447.tif 000005
【図４】
2010097447.tif 000006
【図５】
2010097447.tif 000007
【図６】
2010097447.tif 000008
【図７】
2010097447.tif 000009
【図８】
2010097447.tif 000010
【図９】
2010097447.tif 000011
【図１０】
2010097447.tif 000012
【図１１】
2010097447.tif 000013
【図１２】
2010097447.tif 000014
【図１３】
2010097447.tif 000015
【図１４】
2010097447.tif 000016
【図１５】
2010097447.tif 000017
【図１６】
2010097447.tif 000018
【図１７】
2010097447.tif 000019
【図１８】
2010097447.tif 000020