(57)【要約】【課題】ハードウェアの故障などによりシステムに障害が発生し、ボトルネックとなる箇所がシステム内部で変わる場合においても、システムの稼働状態に応じた最適な流量制御値を設定する。【解決手段】稼動監視サーバ８０は、複数のサーバ群から構成されるシステムのサーバの稼動状況を監視し、非稼動状態のサーバを検知した場合には、稼動状態のサーバ台数の変更に基づきサーバ群ごとの処理能力である流量制御算出値８２を算出する。また、稼動監視サーバ８０は、算出した値で最も低い値を負荷分散装置４０の流量制御値４２に設定する。負荷分散装置４０は、稼動監視サーバ８０により設定された流量制御値４２に基づき、システムのアクセス数を制限する流量制御を実行する。【選択図】図１
2010170168.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１のサーバから構成される第１のサーバ群、複数の第２のサーバから構成される第２のサーバ群、複数の第３のサーバから構成される第３のサーバ群、および設定値に基づいて前記第１乃至第３のサーバ群へのアクセス数を制限する負荷分散装置にネットワークを介して接続された稼動監視サーバにおいて、
前記第１乃至第３のサーバ群を構成する第１乃至第３のサーバの台数および各々の処理能力を記憶する記憶手段と、
前記記憶手段に記憶された前記第１乃至第３のサーバの台数および各々の処理能力とに基づいて、前記第１乃至第３のサーバ群ごとの処理能力を示す全体流量を算出する全体流量算出手段と、
前記流量制御値により算出された前記第１乃至第３のサーバ群ごとの全体流量のなかで最も低い値を、前記負荷分散装置の設定値である流量制御算出値として設定する流量制御算出値設定手段と、
前記第１乃至第３のサーバ群を構成するサーバの稼動状況を監視する稼動状況監視手段と、
前記稼動状況監視手段により、前記サーバが非稼動であることを検知した場合に、前記記憶手段に記憶された前記第１乃至第３のサーバの台数を更新する手段とを有することを特徴とする稼動監視サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおいて、処理すべき情報処理量を制御する流量制御を行う技術に関する。この中でも特に、複数のコンピュータシステムが連携して所定の処理を実行するものに関する。
【背景技術】
【０００２】
近年、Ｗｅｂサイトは情報参照だけでなく、決済や予約などの様々なサービスを提供するＷｅｂシステムとして利用されている。このような状況の中、Ｗｅｂシステムでアクセスが集中し、予期しない大量の処理が発生した場合、システム処理の許容範囲を超えシステムが不安定になる恐れがある。その為、アクセスの流量制御は、流入されるアクセス量をシステムの許容範囲内に抑えシステムを安定稼働させる為に重要な設計要素である。
【０００３】
特許文献１は、連携先システムと連携して所定の情報処理を実行するシステムに対する流量制御方法において、当該システムで理論上起動可能な理論スレッド数を算出し、前記理論スレッド数および前記連携先システムでのシステムリソース使用状況から適切な適切スレッド数を算出し、そのスレッド数を変化させるよう制御する流量制御方法である。算出されたスレッド数が現在のスレッド数より多い場合には増加させることで流量を増加させ、算出されたスレッド数が現在のスレッド数より少ない場合には、流量を減少させることで流量制御を実施する。
【０００４】
【特許文献１】特開２００７−１２２５２７
【発明の開示】
【発明が解決しようとする課題】
【０００５】
Ｗｅｂサービスのシステムでは、システムの安定稼働の為に想定以上のアクセスを受け付けない様、流量制御を施している。この流量制御は、一般的にシステムを構成する中で一番処理性能が劣っており、最初にボトルネックとなるサーバを基準として設計される。
【０００６】
しかしながら、ハードウェアの故障などシステムに障害が発生した場合、ボトルネックとなる箇所がシステム内部で変わる場合がある。このような場合、システムの稼働状態に応じた最適な流量制御値を即座に変更・反映することは困難であった。
【０００７】
特許文献１では、当該システム内のリソース状況を調査し、当該システムにて取得したリソース情報を基に適切な流量を計算しそのスレッドを計算する方式である。
この方式に拠ると、流量計算の基となるCPU利用率や保留時間は平均値を利用するため、当該システムを構成するサーバ本体やオペレーティングシステムなどで障害が発生し、突発的に処理能力の著しい低下が発生した場合、スレッド数制御機能が動作するまでに時間がかかる可能性が指摘される。そのため、検知し流量制御が発生するまでに過剰な処理が流入し、処理遅延やシステムダウンが発生するという課題がある。
【課題を解決するための手段】
【０００８】
本発明では、システム内のどこの部分がボトルネックとなっているかを保持・管理する稼働監視サーバを設け、システムを構成する全サーバの稼働状態を定期的に監視させる。システムの稼働状態が異常になった場合、例えばサーバがハードウェア障害にて停止した場合には、障害が発生したサーバを検知し、保持しているボトルネック箇所に変更が発生しないか計算を行い、変更システムにて一元管理してある流量制御値を再設計し、この結果を反映させる。
【発明の効果】
【０００９】
ハードウェアの故障などシステムに障害が発生し、システムのボトルネックとなる箇所に変化が発生した場合、最適な流量制御値を即座に設定する事により、アクセスの流量をシステム許容範囲内に抑え安定稼働させる事ができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。
図1は、本実施の形態におけるシステム構成図である。Ｗｅｂシステム20は、それぞれネットワークＬＡＮ30で接続された、負荷分散装置40、Ｗｅｂサーバ群50、アプリケーションサーバ群60、ＤＢサーバ群70、および稼働監視サーバ80から構成される。
【００１１】
負荷分散装置40は、利用者端末10からのアクセスをＷｅｂサーバ群50へ処理を振り分けるほか、利用者端末10からのアクセスをＷｅｂシステム20全体で同時に処理可能な範囲内に抑えるために、利用者端末10からのアクセスによって利用者端末10と負荷分散装置40との間に発生するコネクションの数を制限し、Ｗｅｂシステム20全体で同時に処理可能以上の利用者端末10からのアクセスに対しては処理を受け付けずにエラーメッセージを返す機能を持つ。
【００１２】
稼働監視サーバ80は、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の稼働状態を定期的に確認して、また、情報収集テーブル85、サーバ台数管理テーブル86、単体処理能力管理テーブル87および全体流量管理テーブル88に格納されたデータを用いて、Ｗｅｂシステム20全体で同時に処理可能なコネクションの数を流量制御算出値82として算出する。また、稼働監視サーバ80は、算出した流量制御算出値82を負荷分散装置40に送信し、Ｗｅｂシステム20全体で同時に処理可能なコネクションの数を流量制御値42として更新する。
【００１３】
次に、図2の情報収集テーブル300について説明する。
情報収集テーブル300は、図1の稼働監視サーバ80で格納しているデータテーブルのうちの１つであり、稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70に対して定期的にアクセスをして、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の稼働状態を確認した結果を示すデータが格納されている。
【００１４】
情報収集テーブル300のサーバ301には、運用担当者によって予め設定されたデータ、つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のサーバ名が格納されている。また、グループ303にも、運用担当者によって予め設定されたデータ、つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおいてグループ化したデータが格納されている。稼働状態302には、図1の稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対して稼働状態を確認した結果のデータが随時格納されている。図1の稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対して稼働状態を確認した結果、サーバが稼働中であればactiveというデータを、また、サーバが非稼働中であればinactiveというデータを、図1の稼働監視サーバ80が稼働状態302に格納している。
【００１５】
次に、図3のＷｅｂサーバ３号機が非稼働になったときの情報収集テーブルの更新（稼働中台数更新）について説明する。
図3の情報収集テーブル400,500は、図2に示す情報収集テーブルのことであり、情報収集テーブル400の状態から、図1の稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対して稼働状態を確認した結果、情報収集テーブル500の状態となることを示しており、情報収集テーブルの更新を示している。
【００１６】
情報収集テーブル400は、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバが稼働中であることを示している。また、情報収集テーブル500は、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバのうち、Ｗｅｂサーバ３号機のみ非稼働中であることを示している。
【００１７】
次に、図4のアプリケーションサーバ４号機が非稼働になったときの情報収集テーブルの更新（稼働中台数更新）について説明する。
情報収集テーブル600,700は、図2に示す情報収集テーブルのことであり、図3の情報収集テーブルの更新と同様の説明である。
【００１８】
情報収集テーブル600は、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバが稼働中であることを示している。また、情報収集テーブル700は、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバのうち、アプリケーションサーバ４号機のみ非稼働中であることを示している。
【００１９】
次に、図5のサーバ台数管理テーブル310について説明する。
サーバ台数管理テーブル310は、図1の稼働監視サーバ80で格納しているデータテーブルのうちの１つであり、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおけるグループのサーバの台数のデータが格納されている。
【００２０】
サーバ台数管理テーブル310のグループ311には、運用担当者によって予め設定されたデータ、つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおいてグループ化したデータが格納されている。また、台数312にも、運用担当者によって予め設定されたデータ、つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおけるサーバの台数のデータが格納されている。
【００２１】
次に、図6のサーバ単体処理能力管理テーブル320について説明する。
サーバ単体処理能力管理テーブル320は、図1の稼働監視サーバ80で格納しているデータテーブルのうちの１つであり、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおけるサーバ１台の平均処理能力、つまり、利用者端末10からのアクセスに対してサーバ１台で同時に処理可能な範囲のコネクション数のデータが格納されている。
【００２２】
サーバ単体処理能力管理テーブル320のグループ321には、運用担当者によって予め設定されたデータ、つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおいてグループ化したデータが格納されている。また、最大流量322にも、運用担当者によって予め設定されたデータ、つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおけるサーバ１台に対して、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数のデータが格納されている。
【００２３】
次に、図7の全体流量管理テーブル330について説明する。
全体流量管理テーブル330は、図1の稼働監視サーバ80で格納しているデータテーブルのうちの１つであり、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおけるグループの処理能力、つまり、利用者端末10からのアクセスに対してグループで同時に処理可能な範囲のコネクション数のデータが格納され、また、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおけるグループのなかで、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数の最も小さい値のデータが格納されている。
【００２４】
また、全体流量管理テーブルに格納されている、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおけるグループで、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数のデータは、稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対して稼働状態を確認した結果のデータが格納されている図2の情報収集テーブル300と、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおけるサーバ１台で、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数のデータが格納されている図6のサーバ単体処理能力管理テーブルの２つのテーブルで構成されるため、図2の情報収集テーブル300の稼働状態302のデータが更新される毎に、全体流量管理テーブルに格納されているコネクション数のデータも更新される。
【００２５】
また、全体流量管理テーブルに格納されているコネクション数のデータは、図1の稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対して稼働状態を確認したときと、その直前に稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対して稼働状態を確認したときの２種類のデータが格納されている。
【００２６】
全体流量管理テーブル330のグループ331には、運用担当者によって予め設定されたデータ、つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおいてグループ化したデータと、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれにおけるグループのなかで、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数の最も小さい値のデータを格納するためのデータが格納されている。現在値333には、図1の稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対して稼働状態を確認したときの、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおける、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数のデータを、稼働監視サーバ80が格納している。
【００２７】
また、直前値332には、現在値333の直前に図1の稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対して稼働状態を確認したときの、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおける、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数のデータを、稼働監視サーバ80が格納している。
【００２８】
次に、図8のＷｅｂサーバ３号機が非稼働になったときの全体流量管理テーブルの更新（稼働中台数更新による流量変更-最小値変更あり）について説明する。
図8の全体流量管理テーブル430,530は、図7に示す全体流量管理テーブルのことであり、全体流量管理テーブル430の状態から、図1の稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対して稼働状態を確認したときに更新される全体流量管理テーブル530の状態となることを示しており、全体流量管理テーブルの更新を示している。
【００２９】
全体流量管理テーブル430は、図3の情報収集テーブル400の状態、つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバが稼働中であるときの、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおける、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数のデータを示している。また、全体流量管理テーブル530は、図3の情報収集テーブル500の状態、つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバのうち、Ｗｅｂサーバ３号機のみ非稼働中であるときの、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおける、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数のデータを示している。
【００３０】
次に、図9のアプリケーションサーバ４号機が非稼働になったときの全体流量管理テーブルの更新（稼働中台数更新による流量変更-最小値変更なし）について説明する。
全体流量管理テーブル630,730は、図7に示す全体流量管理テーブルのことであり、図8の全体流量管理テーブルの更新と同様の説明である。
【００３１】
全体流量管理テーブル630は、図4の情報収集テーブル600の状態、つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバが稼働中であるときの、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおける、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数のデータを示している。また、全体流量管理テーブル730は、図4の情報収集テーブル700の状態、つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバのうち、アプリケーションサーバ４号機のみ非稼働中であるときの、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおける、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数のデータを示している。
【００３２】
次に、図10の流量制御値算出処理の機能を説明する。
図10の流量制御値算出処理は、図1の稼働監視サーバ80の流量制御算出処理部81で実行される処理であり、稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の稼働状態を確認し、利用者端末10からのアクセスに対してＷｅｂシステム20全体で同時に処理可能なコネクション数のデータを算出する。
【００３３】
ステップ1000では、本流量制御値算出処理のプログラム起動時に、図7の全体流量管理テーブル330を初期化するための準備処理を実行する。図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバが稼働中であった場合の、利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数のデータを算出する。そのため、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおけるサーバの台数と、サーバの単体処理能力の情報が必要である。
【００３４】
稼働監視サーバ80は、グループの各値（本例では、Ａ〜Ｃ）をキーとして図5のサーバ台数管理テーブル310からサーバの台数を抽出した結果のデータと、また、グループの各値（本例では、Ａ〜Ｃ）をキーとして図6のサーバ単体処理能力管理テーブル320からサーバ１台の平均処理能力である最大流量322を抽出し、抽出した結果のデータを掛け合わせることで、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおける、利用者端末10からのアクセスに対して同時に処理可能なコネクション数のデータを算出する。
【００３５】
本例では、Ａグループをキーとして図5の台数管理テーブル310と図6のサーバ単体処理能力管理テーブル320を検索するとそれぞれ4と200というデータが抽出され、抽出された4と200を掛け合わせると800というデータとなる。よって、ＡグループのＷｅｂサーバは４台全てのサーバが稼働中であれば、図1の利用者端末10からのアクセスに対して同時に処理可能な範囲のコネクション数のデータが最大で800となる。Ａグループと同様に、ＢグループおよびＣグループも処理すると、それぞれ900、750というデータとなる。
【００３６】
ステップ1010では、図7の全体流量管理テーブル330を初期化する処理を実行する。稼働監視サーバ80は、ステップ1000で算出したデータを、図7の全体流量管理テーブル330の直前値332と現在値333の両方に格納する。Ａグループ、ＢグループおよびＣグループをキーとして直前値332と現在値333のそれぞれにおいて抽出したデータのうち最も小さい値のデータを、グループ331の最小値として格納する。
【００３７】
本例では、Ａグループをキーとしてステップ1000で算出したデータを検索すると800というデータが抽出され、次に、この抽出された800というデータを、Ａグループをキーとして図7の全体流量管理テーブル330の直前値332と現在値333にそれぞれ格納する。Ａグループと同様に、ＢグループおよびＣグループも処理すると、それぞれ900、750というデータを直前値332と現在値333のそれぞれに格納する。
【００３８】
また、Ａグループ、ＢグループおよびＣグループをキーとしてステップ1000を検索すると800、900および750というデータが抽出され、この抽出された800、900および750というデータのなかで最も小さい値のデータを検索すると750というデータが抽出される。この抽出された750というデータを、最小値をキーとして図7の全体流量管理テーブル330の直前値332と現在値333に格納する。
【００３９】
ステップ1020では、図1の稼働監視サーバ80は、図2の情報収集テーブル300の稼働状態302を初期化する処理を実行する。稼働監視サーバ80は、サーバ301の全てのサーバに対して稼働中の状態のデータ、つまり、全てactiveというデータを格納する。
【００４０】
本例では、図2の情報収集テーブル300の稼働状態302にactiveというデータを格納する。
【００４１】
ステップ1030では、図1の稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対してアクセスをして、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対して稼働状態を確認する。図1の稼働監視サーバ80がＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70の全てのサーバに対して稼働状態を確認した結果、稼働中の状態であるサーバであればactiveというデータを、非稼働中の状態であるサーバであればinactiveというデータとなる。
【００４２】
本例では、図3の情報収集テーブル500で示すように、Ｗｅｂサーバ３号機が非稼働中の場合はinactiveというデータとなり、Ｗｅｂサーバ３号機以外の全てのサーバが稼働中の場合はactiveというデータとなる。また、図4の情報収集テーブル700で示すように、アプリケーションサーバ４号機が非稼働中の場合はinactiveというデータとなり、アプリケーションサーバ４号機以外の全てのサーバが稼働中の場合はactiveというデータとなる。
【００４３】
ステップ1040では、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のなかの稼働中のサーバ台数に増減があったかどうかを検知するため、全てのサーバをキーとしてステップ1030で確認したサーバの稼働状態と図2の情報収集テーブル300の稼働状態302を検索してサーバの稼働状態を抽出したデータを、全てのサーバをキーとして比較を行ない、サーバの稼働状態が同じであるのか、または異なるのかを判定する。
【００４４】
本例では、図3の情報収集テーブル500で示すように、Ｗｅｂサーバ３号機をキーとしてステップ1030で確認したサーバの稼働状態と図3の情報収集テーブル400の稼働状態402を検索すると、それぞれinactive、activeというデータが抽出され、異なるデータであると判定される。Ｗｅｂサーバ３号機と同様に、Ｗｅｂサーバ３号機以外のサーバでは、それぞれactive、activeというデータが抽出され、同じデータであると判定される。
【００４５】
また、図4の情報収集テーブル700で示すように、アプリケーションサーバ４号機をキーとしてステップ1030で確認したサーバの稼働状態と図4の情報収集テーブル600の稼働状態602を検索すると、それぞれinactive、activeというデータが抽出され、異なるデータであると判定される。アプリケーションサーバ４号機と同様に、アプリケーションサーバ４号機以外のサーバでは、それぞれactive、activeというデータが抽出され、同じデータであると判定される。
【００４６】
ステップ1100では、ステップ1040で処理された、全てのサーバをキーとしてステップ1030で確認したサーバの稼働状態と図2の情報収集テーブル300の稼働状態302を抽出したデータを、全てのサーバをキーとして比較を行ない、全てのサーバのなかで１台でもinactiveとactive、またはactiveとinactiveというようにサーバの稼働状態が異なるというデータがあるかどうか、または、activeとactive、またはinactiveとinactiveというようにサーバの稼働状態が同じというデータなのかを判定する。
【００４７】
つまり、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のなかの稼働中のサーバ台数に増減があったかどうかを検知することができる。ステップ1040で処理された結果のデータが、サーバの稼働状態が全てのサーバで同じデータであればステップ1030に戻る。また、ステップ1040で処理された結果のデータが、サーバの稼働状態が全てのサーバのなかで１台でも異なるデータがあればステップ1200に進む。
【００４８】
本例では、図3の情報収集テーブルの更新で示すように、ステップ1040で処理された結果のデータが、Ｗｅｂサーバ３号機ではinactiveとactiveの異なるデータになるため、ステップ1200に進むことになる。また、図4も同様であり、ステップ1200に進むことになる。
【００４９】
ステップ1200では、ステップ1100で、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のなかの稼働中のサーバ台数に増減があったと判定されたため、全てのサーバをキーとしてステップ1030で確認したサーバの稼働状態のなかで、稼働中の状態であるサーバであればactiveというデータを、非稼働中の状態であるサーバであればinactiveというデータを抽出して、全てのサーバをキーとして図2の情報収集テーブル300の稼働状態302に格納する。
【００５０】
本例では、図3の情報収集テーブル500の更新で示すように、Ｗｅｂサーバ３号機をキーとしてステップ1030で確認したサーバの稼働状態を検索してinactiveというデータを抽出して、Ｗｅｂサーバ３号機をキーとして図3の情報収集テーブル500の稼働状態502に格納する。また、Ｗｅｂサーバ３号機と同様に、Ｗｅｂサーバ３号機以外をキーとしてステップ1030で確認したサーバの稼働状態を検索してactiveというデータを抽出して、それぞれのサーバ名をキーとして図3の情報収集テーブル500の稼働状態502に格納する。
【００５１】
また、図4の情報収集テーブル700で示すように、アプリケーションサーバ４号機をキーとしてステップ1030で確認したサーバの稼働状態を検索してinactiveというデータを抽出して、アプリケーションサーバ４号機をキーに、図4の情報収集テーブル700の稼働状態702に格納する。また、アプリケーションサーバ４号機と同様に、アプリケーションサーバ４号機以外をキーとしてステップ1030で判定したサーバの稼働状態のなかからactiveというデータを抽出して、それぞれのサーバ名をキーとして図4の情報収集テーブル700の稼働状態702に格納する。
【００５２】
ステップ1210では、ステップ1100で、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のなかの稼働中のサーバ台数に増減があったと判定されたため、利用者端末10からのアクセスに対して、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおいて同時に処理可能なコネクション数のデータが増減する可能性がある。図1の利用者端末10からのアクセスに対して、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおいて同時に処理可能なコネクション数のデータを算出するために、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおいて稼働中の状態であるサーバの台数と、サーバの単体処理能力の情報が必要である。
【００５３】
グループの各値（本例では、Ａ〜Ｃ）をキーとして図2の情報収集テーブル300の稼働状態302が稼働中の状態であるデータのサーバ台数、つまり、稼働状態がactiveのデータであるサーバ台数を抽出した結果のデータと、また、グループの各値（本例では、Ａ〜Ｃ）をキーとして図6のサーバ単体処理能力管理テーブル320からサーバ１台の平均処理能力である最大流量322を抽出した結果のデータを掛けたデータを算出して、図1の利用者端末10からのアクセスに対して、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおいて同時に処理可能なコネクション数のデータを再計算する。
【００５４】
本例では、図3の情報収集テーブルの更新で示すように、Ａグループをキーとして図3の情報収集テーブル500の稼働状態502からactiveの数を検索して3というデータを抽出して、また、Ａグループをキーとして図6のサーバ単体処理能力管理テーブル320の最大流量322を検索して200というデータが抽出される。この抽出されたデータ、3と200を掛けると600というデータが算出される。
【００５５】
Ａグループと同様に、ＢグループおよびＣグループも処理すると、それぞれ900、750というデータが算出される。また、図4の情報収集テーブルの更新で示すように、Ｂグループをキーとして図4の情報収集テーブル700の稼働状態702からactiveの数を検索して5というデータを抽出して、また、Ｂグループをキーとして図6のサーバ単体処理能力管理テーブル320の最大流量322を検索して150というデータが抽出される。この抽出されたデータ、5と150を掛けると750というデータが算出される。Ｂグループと同様に、ＡグループおよびＣグループも処理すると、それぞれ800、750というデータが算出される。
【００５６】
ステップ1220では、図7の全体流量管理テーブル330で管理する、図1の利用者端末10からのアクセスに対して、Ｗｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のそれぞれのグループにおいて同時に処理可能なコネクション数のデータを最新のデータに更新するため、グループの各値（本例では、Ａ〜Ｃ）をキーとしてステップ1210で算出されたデータを抽出して、グループの各値（本例では、Ａ〜Ｃ）をキーとして全体流量管理テーブル330の現在値333に格納する。
【００５７】
本例では、図8の全体流量管理テーブル530の更新で示すように、Ａグループをキーとしてステップ1210を検索すると600というデータが抽出され、次に、この抽出された600というデータを、Ａグループをキーとして図8の全体流量管理テーブル530の現在値533に格納する。Ａグループと同様に、ＢグループおよびＣグループも処理すると、それぞれ900、750というデータをそれぞれＢグループおよびＣグループをキーとして図8の全体流量管理テーブル530の現在値533に格納する。
【００５８】
また、図9の全体流量管理テーブル530の更新で示すように、Ｂグループをキーとしてステップ1210を検索すると750というデータが抽出され、次に、この抽出された750というデータを、Ｂグループをキーとして図9の全体流量管理テーブル730の現在値733に格納する。Ｂグループと同様に、ＡグループおよびＣグループも処理すると、それぞれ800、750というデータをそれぞれＡグループおよびＣグループをキーとして図9の全体流量管理テーブル730の現在値733に格納する。
【００５９】
ステップ1230では、図7の全体流量管理テーブル330で管理する、図1の利用者端末10からのアクセスに対して、Ｗｅｂシステム20全体で同時に処理可能なコネクション数のデータを最新のデータに更新するため、グループの各値（本例では、Ａ〜Ｃ）をキーとしてステップ1220で更新された全体流量管理テーブル330の現在値333を検索して最も小さい値のデータを抽出して、最小値をキーとして現在値333の最小値に格納する。
【００６０】
本例では、図8の全体流量管理テーブル530の更新で示すように、Ａグループ、ＢグループおよびＣグループをキーとして図8の全体流量管理テーブル530の現在値533を検索すると、600、900および750というデータが抽出され、この抽出された600、900および750というデータのなかで最も小さい値を検索すると600というデータが抽出される。この抽出された600というデータを、最小値をキーとして図8の全体流量管理テーブル530の現在値533に格納する。
【００６１】
また、図9の全体流量管理テーブル730の更新で示すように、Ａグループ、ＢグループおよびＣグループをキーとして図9の全体流量管理テーブル730の現在値733を検索すると、800、750および750というデータが抽出され、この抽出された800、750および750というデータのなかで最も小さい値を検索すると750というデータが抽出される。この抽出された750というデータを、最小値をキーとして図9の全体流量管理テーブル730の現在値733に格納する。
【００６２】
ステップ1240では、ステップ1100で、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のなかの稼働中のサーバ台数に増減があったため、図1の利用者端末10からのアクセスに対してＷｅｂシステム20全体で同時に処理可能なコネクション数のデータが増減する可能性がある。そのため、最小値をキーとして図7の全体流量管理テーブル330の直前値332と現在値333をそれぞれ検索して最小値のデータを抽出して、直前値332の最小値データと現在値333の最小値データが同じデータであるか、異なるデータであるかを比較する。
【００６３】
本例では、図8の全体流量管理テーブル530の更新で示すように、最小値をキーとして図8の全体流量管理テーブル530の直前値532と現在値533をそれぞれ検索して、750および600というデータを抽出すると、最小値データが異なるデータであると判定される。また、図9の全体流量管理テーブル730の更新で示すように、最小値をキーとして図9の全体流量管理テーブル730の直前値732と現在値733をそれぞれ検索して、750および750というデータを抽出すると、最小値データが同じデータであると判定される。
【００６４】
ステップ1300では、ステップ1240で比較をした全体流量管理テーブル330の直前値332と現在値333のそれぞれの最小値データが異なるかどうかを判定する。つまり、ステップ1100で、図1のＷｅｂサーバ群50、アプリケーションサーバ群60およびＤＢサーバ群70のなかの稼働中のサーバ台数の増減により、利用者端末10からのアクセスに対してＷｅｂシステム20全体で同時に処理可能なコネクション数のデータが増減したかどうかを判定することができる。ステップ1240で比較をした全体流量管理テーブル330の直前値332と現在値333のそれぞれの最小値データが同じデータであればステップ1500に進む。また、ステップ1240で比較をした全体流量管理テーブル330の直前値332と現在値333のそれぞれの最小値データが異なるデータであればステップ1400に進む。
【００６５】
本例では、図8の全体流量管理テーブル530の更新で示すように、最小値をキーとしてステップ1240で比較をした結果のデータを検索すると、750および600というデータが抽出され、最小値データが異なるデータであると判定されるためステップ1400に進む。また、図9の全体流量管理テーブル730の更新で示すように、最小値をキーとしてステップ1240で比較をした結果のデータを検索すると、750および750というデータが抽出され、最小値データが同じデータであると判定されるためステップ1500に進む。
【００６６】
ステップ1400では、ステップ1300で、図1の利用者端末10からのアクセスに対してＷｅｂシステム20全体で同時に処理可能なコネクション数のデータが増減したことにより、Ｗｅｂシステム20全体で同時に処理可能なコネクション数のデータを制御している負荷分散装置40に対してコネクション数のデータを設定している流量制御値42を更新する必要があるため、最小値をキーとして図7の全体流量管理テーブル330の現在値333を検索して最小値データを抽出して、稼働監視サーバ80で管理する流量制御算出値82に格納する。
【００６７】
本例では、図8の全体流量管理テーブル530の更新で示すように、最小値をキーとして図8の全体流量管理テーブル530の現在値533を検索して600というデータを抽出して、抽出した600というデータを図1の稼働監視サーバ80で管理する流量制御算出値82に格納する。
【００６８】
ステップ1410では、ステップ1400で格納した図1の流量制御算出値82を負荷分散装置40に送信する。
本例では、図8の全体流量管理テーブル530の更新で示すように、ステップ1400で600というデータを格納した流量制御算出値82を、図1の負荷分散装置40に送信する。
【００６９】
ステップ1500では、グループの各値（本例では、Ａ〜Ｃ）をキーとして図7の全体流量管理テーブル330の現在値333を検索して抽出したデータを、グループの各値（本例では、Ａ〜Ｃ）をキーとして直前値332に格納する。つまり、グループ331それぞれにおける直前値332と現在値333のデータが同じデータになる。本処理終了後、ステップ1030に進む。
【００７０】
本例では、図8の全体流量管理テーブル530の更新で示すように、Ａグループをキーとして全体流量管理テーブル530の現在値533を検索すると600というデータが抽出され、この抽出された600というデータを、Ａグループをキーとして全体流量管理テーブル530の直前値532に格納する。Ａグループと同様に、Ｂグループ、Ｃグループおよび最小値も処理すると、それぞれ900、750および600というデータを全体流量管理テーブル530の直前値532にそれぞれ格納する。本処理終了後はステップ1030に進む。また、図9の全体流量管理テーブル730の更新で示すように、Ｂグループをキーとして全体流量管理テーブル730の現在値733を検索すると750というデータが抽出され、この抽出された750というデータを、Ｂグループをキーとして全体流量管理テーブル730の直前値732に格納する。Ｂグループと同様に、Ａグループ、Ｃグループおよび最小値も処理すると、それぞれ800、750および750というデータを全体流量管理テーブル730の直前値732にそれぞれ格納する。本処理終了後はステップ1030に進む。
【００７１】
次に、図11の流量制御値更新処理の機能を説明する。
ステップ2000では、図11の流量制御値更新処理は、図1の負荷分散装置40の流量制御値更新処理部41で実行される処理であり、図10のステップ1410で処理した、図1の稼働監視サーバ80から送信した、利用者端末10からのアクセスに対してＷｅｂシステム20全体で同時に処理可能なコネクション数のデータを格納した流量制御算出値82を受信し、稼働監視サーバ80から受信した流量制御算出値82のデータを、負荷分散装置40で管理する流量制御値42に格納する。
【００７２】
本例では、図10のステップ1410で処理した、図1の稼働監視サーバ80から送信された600というデータが格納された流量制御算出値82を受信して、受信した600というデータを流量制御値42に格納する。よって、図1の利用者端末10からのアクセスに対してＷｅｂシステム20全体で同時に処理可能なコネクションの数が750から600に更新される。
【図面の簡単な説明】
【００７３】
【図１】本実施形態における流量制御システムのシステム構成図である。
【図２】本実施形態における情報収集テーブルのデータ構成図である。
【図３】本実施形態におけるWebサーバ３号機が非稼動になったときの情報収集テーブルの更新状態を示す図である。
【図４】本実施形態におけるアプリケーションサーバ４号機が非稼動になったときの情報収集テーブルの更新状態を示す図である。
【図５】本実施形態におけるサーバ台数管理テーブルのデータ構成図である。
【図６】本実施形態におけるサーバ単体処理能力テーブルのデータ構成図である。
【図７】本実施形態における全体流量管理テーブルのデータ構成図である。
【図８】本実施形態におけるWebサーバ３号機が非稼動になったときの全体流量管理テーブルの更新状態を示す図である。
【図９】本実施形態におけるアプリケーションサーバ４号機が非稼動になったときの全体流量管理テーブルの更新状態を示す図である。
【図１０】本実施形態における流量制御値算出処理の処理手順を示すフローチャートである。
【図１１】本実施形態における流量制御値更新処理の処理手順を示すフローチャートである。
【符号の説明】
【００７４】
１０  利用者端末
１１  ネットワーク
２０  Webシステム
３０  ネットワークLAN
４０  負荷分散装置
４１  流量制御値更新処理部
４２  流量制御値
５０  Webサーバ群
６０  アプリケーションサーバ群
７０  DBサーバ群
８０  稼動監視サーバ
８１  流量制御算出処理部
８２  流量制御算出値
８５  情報収集テーブル
８６  サーバ台数管理テーブル
８７  単体処理能力管理テーブル
８８  全体流量管理テーブル
【図１】
2010170168.tif 000003
【図２】
2010170168.tif 000004
【図３】
2010170168.tif 000005
【図４】
2010170168.tif 000006
【図５】
2010170168.tif 000007
【図６】
2010170168.tif 000008
【図７】
2010170168.tif 000009
【図８】
2010170168.tif 000010
【図９】
2010170168.tif 000011
【図１０】
2010170168.tif 000012
【図１１】
2010170168.tif 000013