JP2011138202A - サーバ装置、サーバ負荷分散装置、サーバ負荷分散方法、及びプログラム - Google Patents

サーバ装置、サーバ負荷分散装置、サーバ負荷分散方法、及びプログラム Download PDF

Info

Publication number
JP2011138202A
JP2011138202A JP2009296174A JP2009296174A JP2011138202A JP 2011138202 A JP2011138202 A JP 2011138202A JP 2009296174 A JP2009296174 A JP 2009296174A JP 2009296174 A JP2009296174 A JP 2009296174A JP 2011138202 A JP2011138202 A JP 2011138202A
Authority
JP
Japan
Prior art keywords
server
information
load
end server
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009296174A
Other languages
English (en)
Inventor
Kazuhiro Watanabe
和弘 渡辺
Naohiko Takamura
尚彦 高村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009296174A priority Critical patent/JP2011138202A/ja
Publication of JP2011138202A publication Critical patent/JP2011138202A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】フロントサーバ層の先に更にエンドサーバ層が接続され各層のサーバが相互に連携して処理を実行するシステムで、アプリケーション単位でのフロントサーバ及びエンドサーバの最適な負荷分散制御を実現する。
【解決手段】フロントサーバ102で稼働する負荷計測エージェント109において、エンドサーバ取得統計情報解析処理(S201)では、自装置がアクセスするエンドサーバ103上のアプリケーションを決定するためのアプリケーションパス情報が取得される。エンドサーバ統計情報取得処理(S202)では、アプリケーションパス情報に基づいて決定されるエンドサーバ103の負荷状態がアプリケーションパス管理情報として取得される。統計情報通知処理部(S203)では、アプリケーションパス管理情報が、サーバ負荷分散装置101に通知される。サーバ負荷分散装置101では、アプリケーションパス管理情報とクライアントからフロントサーバへのコネクション数とに基づいて、複数のサーバ装置に対するリクエストの振分け制御が実施される、
【選択図】図2

Description

サーバ装置への負荷分散(ロードバランシング)を行うサーバ負荷分散装置及びそのサーバ装置に関する。
インターネットの普及によりインターネット利用者数は増加している。それに従いインターネット上のワールドワイドウェブ(以下、「Web」と記述する)サイトへのリクエストも増加している。
リクエストが増加すると、Webサイトの応答が遅くなったり、Webサイトに接続しにくくなったり等、サービスの低下が懸念される。
これらの問題を回避するために、次のような機能を実現するサーバ負荷分散装置が知られている。
・Webサイトの能力が不足してきたときにWebサイトの能力を容易に拡張できる
機能(スケーラビリティ:拡張性)
・故障が発生してもWebサービスが停止しない機能(アベイラビリティ:可用性)
・Webサービスを止めずにWebサービスを提供するサーバコンピュータの保守や修理ができる機能(アベイラビリティ:可用性)
ここで、スケーラビリティは、システムの拡張性を表す。スケーラビリティの高いシステムであれば、能力が不足することが判ったときに、必要に応じてシステムを拡張できる。このため、必要な能力を予め予測するのが難しいWebサイトではスケーラビリティが重要となる。
スケーラビリティ機能を実現するサーバ負荷分散装置では、複数のサーバを代表するIP(インターネットプロトコル)アドレスが決められる。このような代表IPアドレスは仮想IPアドレスと呼ばれ、利用者にはこの仮想IPアドレスが通知される。そして、この仮想IPアドレスがサーバ負荷分散装置に設定され、サーバ負荷分散装置がインターネットに接続される。これにより、インターネットに接続されたパーソナルコンピュータや携帯端末等の利用者からの仮想IPアドレスを指定したリクエストは、サーバ負荷分散装置に送信される。サーバ負荷分散装置には、各種処理を行うサーバが接続されている。そして、受信した利用者からのリクエストが各サーバに均等に分散される。その結果、利用者からは、実際には複数あるサーバが、あたかも1台の高性能サーバのように見えることになる。実際のサーバの数が増減されても、利用者にはその変化は見えない。利用者は、いつもと同じ仮想的なサーバにリクエストを送ればよく、サーバ負荷分散装置が、その時の実際のサーバの構成に応じて、適切なサーバにリクエストを分散する。
このように、サーバ負荷分散装置を利用すると、サービスに影響を与えずにサイトの処理能力を増強することができる。
上述のスケーラビリティ機能において、各サーバを効率的に使用することによりサーバ負荷分散システム全体の能力を最大限に発揮させるためには、リクエストを振り分ける「分散方式」が重要である。分散方式は、サーバが提供するサービス(プロトコル)の特性に応じて、その方式を最適なものとする必要がある。例えば、以下に示されるような分散方式が組み合わせられて提供される。
<ラウンドロビン>
各サーバに、順番にリクエストが振り分けられる。
<静的な重み付きラウンドロビン>
各サーバに、予め設定された比率でリクエストが振り分けられる。
<最小コネクション数>
処理中のコネクションが少ないサーバにリクエストが振り分けられる。
<最小クライアント数>
接続中のクライアントが少ないサーバにリクエストが振り分けられる。
<最小データ通信量>
処理中のデータ通信量が少ないサーバにリクエストが振り分けられる。
<最小応答時間>
応答時間が短いサーバにリクエストが振り分けられる。
<最小サーバ負荷>
CPU、メモリ、I/Oの利用率が低いサーバにリクエストが振り分けられる。
これらのサーバ負荷分散方式のうち「ラウンドロビン」及び「静的な重み付きラウンドロビン」の2方式は、「静的分散」に分類される。静的分散は、予め決められた順序でリクエストが各サーバに振り分けられる方式である。この方式では、分散対象サーバの全てが、同じ処理能力を持っていること、又はシステムの設計者が各サーバの処理能力を把握していることが必要となる。
一方、「最小コネクション数」「最小クライアント数」「最小データ通信量」「最小応答時間」「最小サーバ負荷」等の方式は、「動的分散」に分類される。動的分散は、振分け対象サーバの状態がリアルタイムに測定され、それを基にリクエストが各サーバに振り分けられる方式である。
ここで、中・大規模のポータルサイトシステムや社内イントラネットシステムを想定する。この場合、振分け対象サーバとして、それぞれ同一の処理を実行する同様の種類のWebサーバだけでなく、様々なサーバがサーバ負荷分散装置に接続される可能性がある。例えば、データベースアプリケーションサーバや各種情報処理アプリケーションサーバ等である。このようなシステムには、静的分散方式ではなく動的分散方式で負荷分散を行うサーバ負荷分散装置が適する。
このような動的分散方式では、サーバ負荷分散装置が振分け対象サーバ等の他の装置と連携することにより、効率的に負荷分散処理を実行することが重要である。
ここで、中・大規模のネットワークシステムにおいては、次のような構成が一般的によく採用される。即ち、Webサーバ等のフロントサーバ層の先に更に、データベースアプリケーションサーバ、情報処理アプリケーションサーバ、ストレージアプリケーションサーバ等のエンドサーバ層が接続され、各層のサーバが相互に連携して処理を実行する。なお、これらに関係する特許文献として以下のものがある。
特願平11−292906号 特願2004−570860号 特開2006−268155号公報
上記特許文献1,2,3に記載のいずれのサーバ構成においても、サーバ負荷分散装置における直接の振分け対象サーバであるフロントサーバの負荷状態によりリクエストが分散されても、フロントサーバの後ろにあるエンドサーバでの負荷が均等になるとは限らない。
しかし、従来のサーバ負荷分散装置は、フロントサーバにおける負荷状態しか収集することができなかった。例えば、応答時間が短いエンドサーバ上のアプリケーションを多く処理しているフロントサーバに対しては、より多くのリクエストが送り込まれても、そのリクエストを十分に処理できる。一方、応答時間が長いエンドサーバ上のアプリケーションを処理しているフロントサーバに対しては、あまり多くのリクエストは送り込まないほうがよい。従来のように、単にフロントサーバが処理しているリクエストの要求数や平均応答時間等の負荷状態を計測しただけでは、処理の重いリクエストも軽いリクエストも一括して判断されてしまう。例えば、1つのエンドサーバにおいて、処理時間が長くかかるアプリケーションと処理時間が短いアプリケーションが同時に実行されているような場合を考える。そして、エンドサーバにおいては、処理時間が長いアプリケーションにCPU時間を割り当てすぎないように制御がされているとする。このような場合、たとえ処理時間の長いアプリケーションが実行されていても、エンドサーバは、処理時間の短いアプリケーションを実行するだけの余裕が十分にある場合がある。しかし、フロントサーバが、リクエストの発行状態をエンドサーバ単位でしか監視しない場合には、次のような問題が発生し得る。即ち、フロントサーバが、あるタイミングにおいて、処理時間が長いアプリケーションへのリクエストをエンドサーバに対して発行した場合、そのリクエストの応答時間は長くなる。このため、フロントサーバは、あるタイミングにおいてその応答時間のみを判断する結果、そのエンドサーバの負荷が高いと判断してしまう。しかし実際には、エンドサーバは、処理時間の短いリクエストを処理するだけの負荷の余裕が十分にある場合があるのである。この結果、フロントサーバが、リクエストの発行状態をエンドサーバ単位でしか監視しない場合には、サーバ負荷分散装置は、各フロントサーバへの、各エンドサーバの負荷状態も加味した正確なリクエストの振り分け制御を行うことができない。この結果、サーバ負荷分散装置は、各フロントサーバへの、各エンドサーバの負荷状態も加味した正確なリクエストの振り分け制御を行うことができないという問題点を有していた。
そこで、本発明の課題は、フロントサーバ層の先にエンドサーバ層が接続され各層のサーバが連携して処理を実行するシステムで、各エンドサーバへのアクセス状況が正確に反映された各フロントサーバに対する負荷分散制御をすることである。
本発明の態様の一例のサーバ装置は、エンドサーバと通信を行いながら、サーバ負荷分散装置によって振り分けられるクライアントからのリクエストを処理するフロントサーバとして機能するサーバ装置において、自装置がアクセスするエンドサーバ毎に各エンドサーバ上の負荷状態毎の識別情報を取得し、識別情報に基づいて負荷状態をエンドサーバ負荷状態の統計情報として計測する計測手段と、エンドサーバ負荷状態の統計情報を、サーバ負荷分散装置に通知する通知手段とを具備する。
本発明の態様の他の例のサーバ負荷分散装置は、エンドサーバと通信を行いながらクライアントからのリクエストを処理するフロントサーバに対して、前記クライアントからのリクエストを振り分けるサーバ負荷分散装置において、少なくとも一台の前記エンドサーバが接続されるべきフロントサーバを介して前記エンドサーバの負荷状態の統計情報を受信する受信手段と、前記統計情報と前記フロントサーバへの前記リクエストのコネクション数とから算出される負荷情報に基づいて前記各フロントサーバの振り分け比率を計算し、前記フロントサーバへの前記リクエストの振分けを制御するフロントサーバ負荷分散手段と、を具備する。
各フロントサーバであるサーバ装置において、自装置がアクセスするエンドサーバ上の負荷状態の統計情報を取得でき、これに基づいてサーバ負荷分散装置によって各フロントサーバを振分け制御することにより、エンドサーバの負荷状態に沿った正確なサーバ負荷分散を実現でき、システム全体の負荷の最適化を容易に実現することが可能となる。
実施形態のシステムの全体構成図である。 フロントサーバにおける負荷計測エージェントを含む実施形態のシステム構成図である。 サーバ負荷分散装置における統計情報受信制御部/振分け処理部/コネクション管理部のシステム構成図である。 フロントサーバにおけるエンドサーバ取得統計情報解析処理の詳細を示すフローチャートである。 フロントサーバにおけるエンドサーバ統計情報取得処理(エンドサーバ通信監視(生存監視))の詳細を示すフローチャートである。 フロントサーバにおけるエンドサーバ統計情報取得処理(要求数計算処理)の詳細を示すフローチャートである。 フロントサーバにおけるエンドサーバ統計情報取得処理(応答時間計測処理)の詳細を示すフローチャートである。 フロントサーバにおける統計情報通知処理の詳細を示すフローチャートである。 サーバ負荷分散装置における統計情報受信処理の詳細を示すフローチャートである。 サーバ負荷分散装置における振分け比率設定処理の詳細を示すフローチャートである。 サーバ負荷分散装置における振分け処理の詳細を示すフローチャートである。 サーバ負荷分散装置におけるコネクション確立・解放処理の詳細を示すフローチャートである。 PSコマンドによる起動デーモンの調査処理の例を示す図である。 フロントサーバがWebサーバである場合のアプリケーションパス情報の取得処理の説明図である。 負荷計測エージェントの設定情報ファイルのデータ構成の一例を示す図である。 アプリケーションパス管理情報のデータ構成の一例を示す図である。 サーバ統計情報のデータ構成の一例を示す図である。 振分け情報のデータ構成の一例を示す図である。 コネクション情報のデータ構成の一例を示す図である。 通知データのデータ構成の一例を示す図である。 統計情報通知の制御シーケンスを示す図である。 実施形態の動作シーケンス例を示す(その1)である。 実施形態の動作シーケンス例を示す(その2)である。 実施形態の動作シーケンス例を示す(その3)である。 実施形態の動作シーケンス例を示す(その4)である。 実施形態のシステムを実現できるコンピュータのハードウェア構成の一例を示す図である。
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
図1は、負荷分散制御を実現する実施形態のシステムの全体構成図である。サーバ負荷分散装置101には、LAN(ローカルエリアネットワーク)111を介して、#A及び#Bの複数台のフロントサーバ102(フロントサーバA、フロントサーバB)が接続される。サーバ負荷分散装置101は、#A及び#Bのフロントサーバ102に対して、負荷分散制御を実施する。各フロントサーバ102には、LAN112を介して、#A及び#Bの複数台のエンドサーバ103(エンドサーバA、エンドサーバB)と仮想サーバ104(仮想サーバE)が接続される。仮想サーバ104には、LAN113を介して、更に#C及び#Dのエンドサーバ103(エンドサーバC、エンドサーバD)が接続される。仮想サーバ104は、#C及び#Dのエンドサーバ103に対して、負荷分散制御を実施する。なお、フロントサーバ102やエンドサーバ103の数は、2台に限られるものではない。サーバ負荷分散装置101には、インターネット114を介して、利用者のパーソナルコンピュータ等であるクライアント105が接続される。
フロントサーバ102は、例えば、クライアント105からのWebリクエストを受け付けるWebサーバとして動作する。また、エンドサーバ103は、データベースアプリケーションや各種情報処理アプリケーションを、アプリケーション1〜4(図1中ではアプリ1、アプリ2、アプリ3、アプリ4などと表示する)として実行する。エンドサーバ103は、#Aのエンドサーバ103のように、#1及び#2等の複数のアプリケーション110(アプリ1、アプリ2)を実行する場合がある。また、#Bのエンドサーバ103のように、#3のアプリケーション110(アプリ3)を実行する場合がある。フロントサーバ102の配下にあるエンドサーバ103は、個別に決められている。従って、フロントサーバAがフロントサーバBに切り替わったとするならそれに対応して、例えばエンドサーバAはエンドサーバBに切り替わる。エンドサーバAとエンドサーバBは、少なくとも1つの同一のアプリケーション、例えばアプリ1を実行する。
本実施形態では、#C及び#D等の複数台のエンドサーバ103をまとめるようなかたちでフロントサーバ102の後段層に、仮想サーバ104(仮想サーバE)を設置できる。この場合、仮想サーバ104は、#C及び#D等の複数台のエンドサーバ103において分散して実行される#4の1種類のアプリケーション110(アプリ4)に対して、負荷分散制御を実施する。ここでの負荷分散制御方式としては、従来のサーバ負荷分散装置がそれに接続される単一階層の複数のサーバに対して実行する一般的な負荷分散制御を適用することができる。
各振分け対象サーバであるフロントサーバ102には、それぞれ負荷計測エージェント109が実装される。負荷計測エージェント109は、後述するアプリケーションパス管理情報に基づいて、各エンドサーバ103で実行される各アプリケーション110の負荷を判断するための統計情報を収集する。そして、その統計情報をサーバ負荷分散装置101に通知する。
サーバ負荷分散装置101には、統計情報受信制御部106、コネクション管理部107、及び振分け処理部108が実装され、それぞれが以下の処理を実行する。
即ち、統計情報受信制御部106は、各フロントサーバ102から統計情報を収集し、エンドサーバ103を含めた負荷状態を管理する。
コネクション管理部107は、クライアント105からリクエストに基づいて、各フロントサーバ102へのコネクションの確立・解放を制御する。また、この制御に基づいて、コネクション管理部107は、各フロントサーバ102に対して確立しているアプリケーション毎の現在のコネクション数を管理する。
振分け処理部108は、各エンドサーバ103及び各フロントサーバ102の負荷情報と、各フロントサーバ102の振分け情報に基づいて、各アプリケーション毎のコネクション数により、振分け対象のフロントサーバ102を決定する。
図2は、各フロントサーバ102において実行される負荷計測エージェント109のシステム構成図である。負荷計測エージェント109は、以下のエンドサーバ統計情報取得処理、エンドサーバ取得統計情報解析処理、及び統計情報通知処理を実行する。
まず、エンドサーバ取得統計情報解析処理(ステップS201)では、次に説明するエンドサーバ統計情報取得処理にて統計情報を収集すべき各アプリケーション110を決定するためのアプリケーションパス情報が取得される。このアプリケーションパス情報は例えば、フロントサーバ102上で実行されているサーバアプリケーションにおいて定義ファイル(例えばhttpd.conf)として設定されている設定情報から自動収集できる。或いは、ユーザにより定義された設定情報にて指定される解析方法に基づいて収集できる。このアプリケーションパス情報は各アプリケーションのディレクトリ情報であって言い換えれば、エンドサーバのアプリケーション毎の負荷状態の識別情報である。このアプリケーションパス情報は、自装置がアクセスするエンドサーバ毎に、アプリケーション110のプログラム実行状態として、各エンドサーバ上のアプリケーションの使用状態、すなわち負荷状態として計測するために必要となるディレクトリ情報である。
次に、エンドサーバ統計情報取得処理(ステップS202)では、各エンドサーバ103(エンドサーバA〜D)で実行される各アプリケーション110(アプリ1〜4)について、以下の処理が実行される。なお、各アプリケーション110は、ステップS201のエンドサーバ取得統計情報解析処理にて取得されたアプリケーションパス情報に基づいて決定される。まず、アプリケーションパス情報に対応するアプリケーション110毎に、各アプリケーション110が動作しているか否かを検査する生存監視処理が、定期的に実行される。また、アプリケーションパス情報に対応する、アプリケーション110毎に負荷状態を判断するための統計情報が取得される。統計情報は例えば、サーバ負荷分散装置101から到達する上記アプリケーション110向けのリクエストの要求数と、エンドサーバ103上の上記アプリケーション110に発行されたリクエストの応答時間の平均・最小・最大値である。リクエストの要求数は、サーバ負荷分散装置101から自身のフロントサーバ102への該当するリクエストの到達時にカウントアップされる。リクエストの応答時間は、フロントサーバ102からエンドサーバ103へ該当するリクエストが発行されてからその応答が受信されるまでの時間として計測される。これらの統計情報は言い換えれば、アプリケーションパス情報に基づいて特定される自装置がアクセスする各エンドサーバ上の負荷発生単位毎のエンドサーバ負荷状態の統計情報であるといえる。
次に、統計情報通知処理(ステップS203)では、上述のアプリケーション110毎の統計情報と、自装置であるフロントサーバ102自身の負荷情報が、一定時間毎にサーバ負荷分散装置101に通知される。フロントサーバ102自身の負荷情報は例えば、CPU(中央演算処理装置)の負荷率やバッファ使用率等である。
図3は、サーバ負荷分散装置101において実行される統計情報受信制御部106、振分け処理部108、及びコネクション管理部107のシステム構成図である。
統計情報受信制御部106は、以下の統計情報受信処理及び振分け比率設定処理を実行する。
まず、統計情報受信処理では、各フロントサーバ102の負荷計測エージェント109と定期的に通信が実行される。この通信は、前述のステップS203の統計情報通知処理との間で実行される。これにより、各フロントサーバ102におけるアプリケーション110毎の統計情報とコネクション数がサーバ統計情報301として管理される。
そして、振分け比率設定処理では、コネクション管理部107が管理するコネクション情報303と統計情報受信処理で受信された統計情報とに基づいて、各フロントサーバ102への振分け比率が計算される。その計算結果は、振分け情報302として、振分け処理部108に保持される。
次に、振分け処理部108は、コネクション管理部107からのフロントサーバ102の選択要求に対して、振分け情報302に基づいてフロントサーバ102を決定し、その決定結果をコネクション管理部107に通知する。
コネクション管理部107は、クライアント105(図1)からのリクエストを、フロントサーバ102に振り分け、コネクション毎に管理する。また、コネクション管理部107は、コネクションの確立時に、振分け処理部108にフロントサーバ102の選択要求を通知し、決定されたフロントサーバ102の情報を受け取る。そして、コネクション管理部107は、振分け処理部108から通知されたフロントサーバ102との間で、コネクションを確立する。ここで、フロントサーバ102とエンドサーバ103間に確立されている、ある時点のサーバ負荷分散装置101とフロントサーバ102とのコネクションのアプリケーション毎の数が、アプリケーション毎(負荷状態毎)のコネクション数として定義される。コネクション管理部107は、このアプリケーション毎のコネクション数をコネクション情報303として保持する。このように、コネクション数がアプリケーション毎に管理されることにより、アプリケーションのコネクション数が把握されることになる。
以上説明した本実施形態の構成の詳細な動作について、図4から図12での各動作フローチャート、図13から図19でのデータ構成例を示す図、及び図20及至24の制御シーケンスの動作説明図に基づいて順次説明する。図4から図12及び図22から図25に示す処理は、例えばCPUとメモリと外部記憶装置とを搭載したコンピュータが実行する。
図4は、各フロントサーバ102の負荷計測エージェント109において実行される、図2のステップS201のエンドサーバ取得統計情報解析処理の詳細を示す動作フローチャートである。ここでは、アプリケーションパス情報が取得される。
前述したように、このアプリケーションパス情報の取得は、ユーザ、すなわちフロントサーバ設定者により定義された解析方法に基づいてでも、自動収集に基づいてでも、どちらでもよい。ユーザが解析方法を定義する場合には、ユーザは例えば予め、解析方法を指定する設定情報ファイルを、フロントサーバ102上のファイルシステム内の所定のファイルパスに保存する。
まず、ユーザにより解析方法が指定されているかが判定される(ステップS401)。
ユーザにより解析方法が指定されておらずステップS401の判定がNOならば、フロントサーバ102にて起動されているデーモンアプリケーションが調査される(ステップS402)。デーモンアプリケーションとは、フロントサーバ102のメモリ上に常駐して実行中のプログラムをいう。デーモンアプリケーションの調査は、フロントサーバ102において現在実行されているプロセスを調査するためのコマンドにより、実施することができる。例えば、PS(プロセス)コマンドと呼ばれるコマンドにより起動デーモンを調べる。
図13は、PSコマンドによる起動デーモンの調査処理の動作例を示す図である。この動作例では、破線枠で囲まれた部分からわかるように、デーモンアプリケーションとして、apacheと呼ばれるWebサーバアプリケーションが起動されていることを示している。
次に、デーモンアプリケーションの種類に応じたアプリケーションパス情報設定場所から、アプリケーションパス情報が取得される(ステップS403)。例えば図13に示されるように、デーモンアプリケーションとしてWeb(WWW)サーバアプリケーションが起動されている場合を考える。この場合、図13の破線枠で囲まれた部分のパス情報より、アプリケーションパス情報の設定場所が、
/var/www/conf/httpd.conf
というファイルパスに存在する定義ファイルhttpd.conf内に記述されていることが、Webサーバアプリケーションの実装規則から認識することができる。認識のための具体的な処理としては、次のような方式が採用できる。即ち例えば、起動する可能性のあるデーモンアプリケーション毎に、ステップS402での調査結果出力(検出パス)とアプリケーションパス情報設定場所(定義ファイル)との対応関係が予めコーディングされる。或いは、そのような対応関係が対応テーブルとして記憶される。そして、ステップS402での調査結果出力を使って、コーディング規則又は対応テーブルが検索され、アプリケーションパス情報の設定場所が検出される。
図14は、フロントサーバ102が例えばWebサーバである場合のアプリケーションパス情報の取得動作の説明図である。
まず代表的なWebサーバアプリケーションでは、httpd.confのような定義ファイル内には、例えば図14に示される「Directory」項目と呼ばれる項目が設定されている。この項目は、クライアント105からのリクエストに基づいて実行されるプログラムの格納場所を示している。例えば、
<Directory “/var/www/cgi-bin/apl01”>
というディレクトリ項目の記述は、以下の意味を有する。即ち、CGI(Common Gateway Interface)というプログラムインタフェース仕様に準拠した外部プログラムが、フロントサーバ102のファイルシステム内の“/var/www/cgi-bin/apl01”というディレクトリパス内に格納されていることが設定される。同様に例えば、
<Directory “/var/www/servlet/apl02”>
<Directory “/var/www/servlet/apl03”>
というディレクトリ項目の記述は、以下の意味を有する。即ち、Java Servletと呼ばれるプログラムインタフェース仕様に準拠した外部プログラムが格納されている場所が、フロントサーバ102のファイルシステム内の“/var/www/cgi-bin/apl02”又は“/var/www/cgi-bin/apl03”というディレクトリパス内に格納されていることが設定される。
上述のディレクトリ項目から認識される各パス情報について更に、各ディレクトリ内に格納されているファイルの一覧を表示するコマンドにより、各ディレクトリ内に格納されているアプリケーションプログラムを調査することができる。例えば、lsコマンドと呼ばれるコマンドがよく知られている。例えば下記に示されるコマンドが実行される。
ls /var/www/cgi-bin/apl01
この結果、このディレクトリ内に格納されている例えば下記に示されるようなプログラムのリストが表示される。
index.php
proc01.php
これらの例えば2つのプログラムは、PHPと呼ばれるスクリプト言語によって記述されたプログラムである。
以上のディレクトリ項目のパス情報とlsコマンドの実行情報とに基づいて、例えば下記に示されるような実行パスをアプリケーションパス情報の一部として抽出することができる。
cgi-bin/apl01/index.php
servlet/apl02/proc02
servlet/apl03/proc03
なお、「/var/www/cgi-bin/apl01/proc01.php」は、エンドサーバ103にアクセスしないプログラムであるため、実行パスとしては抽出されない。また、「/var/www/」の記述部分は、「DocumentRoot」と呼ばれる、実行パスにおいては省略される。この部分は、クライアント105がWebリクエストを発行する際にURI(Uniform Resource Identifier)と呼ばれる形式でアプリケーションの実行パスを指定する場合には、省略されるディレクトリパス部分である。これらの実行パスは、クライアント105がリクエストを発行する際に指定するURIとしてそのまま記述される。
ここで、「index.php」「proc02」「proc03」等のプログラムは、フロントサーバ102上で実行されるが、これらのプログラム内から、エンドサーバ103上のアプリケーション110(アプリ1、アプリ2、アプリ3等)がアクセスされる。例えば、リクエスト中のURIにおいて、
cgi-bin/apl01/index.php
が指定されると、「index.php」のスクリプトプログラム内から、エンドサーバAで実行されるアプリ1がアクセスされる。また例えば、
servlet/apl02/proc02
が指定されると、「proc02」のサーブレット(サーブレットa)内から、エンドサーバAで実行されるアプリ2がアクセスされる。更に例えば、
servlet/apl03/proc03
が指定されると、「proc03」のサーブレット(サーブレットb)内から、エンドサーバBで実行されるアプリ3がアクセスされる。
本実施形態では、上述の実行パスと共に、それらによって実行されるプログラムがアクセスするエンドサーバ103の「所在」、例えばホスト名が、実行パスで指定される各プログラムから抽出される。例えばエンドサーバAにて実行されるアプリ1がデータベースにアクセスするアプリケーションプログラムであった場合を考える。この場合、例えば「index.php」内では、図14の下方に示されるような「pg_connect」というデータベース接続関数によって、エンドサーバAのホスト名“APsv1”が指定されている。従って、データベースアプリケーションの種別がわかっている場合には、PHPスクリプトやJava Servletプログラム内から上述の「pg_connect」として例示されるようなデータベース接続関数をキーとして、所在情報を抽出することができる。本実施形態では、この所在情報も、上述のアプリケーションパス情報の一部として扱われる。なお、エンドサーバC及びエンドサーバDのように複数のエンドサーバ103が仮想サーバ104(仮想サーバE)によって分散制御されているような場合には、単一の仮想的なホスト名“Vsv1”が所在情報として抽出される。これにより、あたかも1台のエンドサーバに対してアクセスするような制御が実現される。
以上のようにして、図4のステップS403において、実行パス及び所在情報からなるアプリケーションパス情報が抽出できると、ステップS404の判定がYESとなる。その後、上述のようにして取得された各アプリケーションパス情報を各エントリ行として有する、図14に示されるアプリケーションパス管理情報1401が、フロントサーバ102内に保持される(ステップS409)。この部分の処理は、図22の動作シーケンス図において、S409として示される。アプリケーションパス管理情報1401において、実行パス及び所在からなるアプリケーションパス情報のほかの、「状態」及び「統計情報」を示す部分は、初期登録時には未登録である。
ステップS409の処理の後、負荷計測エージェント109により、エンドサーバ取得統計情報解析処理を終了する。
ここで、なんらかの理由によりアプリケーションパス情報が抽出できずステップS404での判定がNOとなった場合には、次の処理が実行される。即ち、フロントサーバ102にインストールされているアプリケーション中に、Webサーバアプリケーションのような、エンドサーバ103への中継が可能なアプリケーションが存在するか否かが調べられる(ステップS405)。例えば、フロントサーバ102のハードディスク記憶装置上のファイルシステム内のシステムディレクトリが検索され、該当する実行アプリケーションが見つけられる。
次に、該当するアプリケーションが存在するか否かが判定される(ステップS406)。
該当するアプリケーションが見つかってステップS406の判定がYESならば、インストールされているアプリケーションの種類に応じたアプリケーションパス情報設定場所から、アプリケーションパス情報が取得される(ステップS407)。ここでの処理は、前述したステップS403の場合と同様である。
ステップS407において、実行パス及び所在情報からなるアプリケーションパス情報が抽出された後、図14に示されるアプリケーションパス管理情報1401が、フロントサーバ102内に保持される(ステップS409)。
ステップS409の処理の後、負荷計測エージェント109により、エンドサーバ取得統計情報解析処理を終了する。
一方、インストールされているアプリケーション中からも該当するアプリケーションが見つからずステップS406の判定がNOならば、そのまま、エンドサーバ取得統計情報解析処理を終了する。このように、アプリケーションパス情報が取得できない場合には、その後、負荷計測エージェント109が動作できないため、フロントサーバ102の異常と認識される。この場合には、後述するエンドサーバ統計情報取得処理及び統計情報通知処理が実行されず、フロントサーバ102は振り分け対象のサーバにはならない。
エンドサーバ取得統計情報解析処理において、ユーザにより解析方法が指定されていて前述したステップS401の判定がYESならば、まずユーザが設定した設定情報ファイルの内容が読み取られる。これにより、その設定情報により指定された解析方法から、アプリケーションパス情報が取得される(ステップS408)。
図15は、設定情報ファイルのデータ構成例を示す図である。この設定情報ファイルには例えば、前述したステップS403にて検出された実行パスと同様のものが設定されている。この実行パス(例えば、cgi-bin/ap101/index.php)とその実行パスで指定されるプログラムから検出された所在情報(例えば、APsv1)とからなるアプリケーションパス情報が取得される。なお、設定情報ファイルには、後述するアプリケーション110の生存監視処理の方法を指定する設定も含めることができる。例えば、生存監視処理時のエンドサーバ103へのアクセス方法(「method GET」の部分)、監視間隔時間(「interval-time 10」)、再試行回数(「retry-count 5」の部分)等の設定が含まれる。
ステップS408において、実行パス及び所在情報からなるアプリケーションパス情報が抽出された後、図14に示されるアプリケーションパス管理情報1401が、フロントサーバ102内に保持される(ステップS409)。
ステップS409の処理の後、負荷計測エージェント109により、エンドサーバ取得統計情報解析処理を終了する。
次に、図5は、負荷計測エージェント109により実行される図2のステップS202のエンドサーバ統計情報取得処理のうち、エンドサーバ通信監視(生存監視)の処理の詳細を示す動作フローチャートである。ここでは前述したように、各エンドサーバ103で実行される各アプリケーション110について、各アプリケーション110が動作しているか否かを検査する生存監視処理が、定期的に実行される。
まず、図4にて説明したエンドサーバ取得統計情報解析処理に基づいて取得されたアプリケーションパス情報が取得される(ステップS501)。アプリケーションパス情報は、図4のステップS409にて保持されたアプリケーションパス管理情報1401中の実行パス及び所在情報の各エントリ行として取得することができる。
次に、ステップS501で取得されたアプリケーションパス情報の全ての実行パスが検査されたか否かが判定される(ステップS502)。
全ての実行パスが検査されておらずステップS502の判定がNOならば、ステップS501で取得されたアプリケーションパス情報から1つのエントリ行中の実行パスと所在情報が取り出される。そして、所在情報(例えばホスト名)によって指示されるエンドサーバ103の実行パスに対して生存監視が行われる(ステップS503)。例えば、フロントサーバ102がWeb(WWW)サーバアプリケーションを起動しており、HTTP(ハイパーテキストトランスファプロトコル)による通信を実行している場合、以下の処理が実行される。即ち、実行パスで指定されるURL(Uniform Resource Locator)パスへ、HTTPにて規定されるGET又はHEADメソッドによる生存確認のHTTPリクエストが送信され、応答が受信される。なお、このメソッド即ちエンドサーバ103へのアクセス方法は例えば、図15に示される前述した設定情報ファイル(「method GET」の部分)にて指定することもできる。ここで、URLによって指定されているパスが、図1の仮想サーバ104を指している場合であっても、そのことを意識する必要はなく、単にそのURLパスへHTTPリクエストが送信されればよい。以上の処理は、図22の動作シーケンス図において、S503として示される。
次に、上述の生存監視の応答が受信されたか否かが判定される(ステップS504)。
一定時間内に生存監視の応答が受信できずステップS504の判定がNOならば、以下の処理が実行される。即ち、図14のアプリケーションパス管理情報1401中の該当するエントリ行において、「状態」項目に「down」が登録され、「エラー発生回数」項目の値がカウントアップされ、「エラー発生率」項目の値が再計算される(ステップS505)。この処理は、図22の動作シーケンス図において、S505として示される。「エラー発生率」項目の値は、「エラー発生回数」項目の値を「要求数」項目の値で除算して得られる値として算出される。「エラー発生率」項目の値は、エンドサーバ103の安定度評価の指標として用いられる。なお、ここでは、生存確認が何回か再試行されるような構成が採用されてもよい。この場合の再試行回数は例えば、図15に示される前述した設定情報ファイル(「retry-count 5」の部分)にて指定することもできる。
その後、ステップS502の処理に戻り、次のアプリケーションパス情報の取得が試みられる。
一定時間内に生存監視の応答が受信できてステップS504の判定がYESならば、図14のアプリケーションパス管理情報1401中の該当するエントリ行において、「状態」が「down」ならば「up」に変更される(ステップS506)。この処理は、図22の動作シーケンス図において、S506として示される。
以上のようにして、1組のアプリケーションパス情報に対する生存確認の処理が終了すると、ステップS502の処理に戻り、次のアプリケーションパス情報の取得が試みられる。
ステップS501で取得されたアプリケーションパス情報の全ての実行パスが検査されステップS502の判定がYESになると、生存監視間隔タイマが起動される(ステップS507)。この処理は、図22の動作シーケンス図において、S507として示される。
その後、生存監視間隔タイマがタイムアウトして監視間隔時間が経過したか否かが判定される(ステップS508)。なお、この生存監視間隔タイマが計測する監視間隔時間は例えば、図15に示される前述した設定情報ファイル(「interval-time 10」の部分)にて指定することもできる。
監視間隔時間が経過しておらずステップS508の判定がNOならば、負荷計測エージェント109の終了が指示されたか判定される(ステップS509)。
負荷計測エージェント109の終了が指示されておらずステップS509の判定がNOならば、再びステップS508に戻って、監視間隔時間が経過したか否かが判定される。
監視間隔時間が経過しステップS508の判定がYESとなると、ステップS502の判定に戻って、ステップS501で取得されたアプリケーションパス情報について再度、順次アプリケーションパス情報の取得が試みられる。
負荷計測エージェント109の終了が指示されステップS509の判定がYESとなると、図5のエンドサーバ統計情報取得処理(エンドサーバ通信監視(生存監視))を終了する。
以上のようにして、監視間隔時間毎に、各エンドサーバ103の各アプリケーション110について、生存監視を行うことができる。この結果、図22から続く図23のS503、S505又はS506、S507、図23から続く図24のS503、S505又はS506、S507といった動作シーケンスが繰り返されることになる。
図6は、負荷計測エージェント109により実行される図2のステップS202のエンドサーバ統計情報取得処理のうち、要求数計算処理の詳細を示す動作フローチャートである。この動作フローチャートの処理は、フロントサーバ102がサーバ負荷分散装置101よりクライアント105からのリクエストを受信する毎に実行される。
まず、図4にて説明したエンドサーバ取得統計情報解析処理に基づいて生成されたアプリケーションパス管理情報1401において、受信リクエスト中のURIを実行パスとして有するアプリケーションパス情報が取得される(ステップS601)。
次に、受信リクエストがエンドサーバへの要求であるか否かが判定される(ステップS602)。
ステップS602の判定がYESならば、ステップS601でアプリケーションパス情報が取得されたアプリケーションパス管理情報1401中の該当エントリ行において、「要求数」項目の値がカウントアップされる(ステップS603)。この処理は、図23から続く図24の動作シーケンス図において、S603として示される。その後、図6の動作フローチャートの処理を終了する。
以上のようにして、サーバ負荷分散装置101からフロントサーバ102への要求数(リクエストの数)が計測される。
図7(a)は、負荷計測エージェント109により実行される図2のステップS202のエンドサーバ統計情報取得処理のうち、応答時間計測処理の前半部分の処理の詳細を示す動作フローチャートである。この動作フローチャートの処理は、フロントサーバ102がサーバ負荷分散装置101よりクライアント105からのリクエストを受信する毎に実行される。
まず、図4にて説明したエンドサーバ取得統計情報解析処理に基づいて生成されたアプリケーションパス管理情報1401において、受信リクエスト中のURIを実行パスとして有するアプリケーションパス情報が取得される(ステップS701)。
次に、ステップS701にて取得されたアプリケーションパス情報中の所在情報が確認されることにより、受信リクエストがエンドサーバ103へのリクエストか否かが判定される(ステップS702)。なお、受信リクエストが仮想サーバ104へのリクエストである場合(図14において「所在」が例えば「Vsv1」である場合)も、エンドサーバ103へのリクエストであると判定される。
受信リクエストがエンドサーバ103へのリクエストではなくステップS702の判定がNOならば、そのリクエストはフロントサーバ102内で処理されるため、図7(a)の動作フローチャートの処理を終了する。
受信リクエストがエンドサーバ103へのリクエストでステップS702の判定がYESならば、以下の処理が実行される。即ち、受信リクエストが、ステップS701にて取得されたアプリケーションパス情報中の所在情報で示されるエンドサーバ103へ送信される(ステップS703)。
最後に、ステップS701にて取得されたアプリケーションパス情報に対応するエンドサーバ103の実行パスに対応して、応答時間を計測するためのタイマがスタートされ、応答時間の計測が開始される(ステップ704)。この処理は、図23から続く図24の動作シーケンス図において、S704として示される。
その後、リクエスト受信時の図7(a)の動作フローチャートの処理が終了する。
図7(b)は、負荷計測エージェント109により実行される図2のステップS202のエンドサーバ統計情報取得処理のうち、応答時間計測処理の後半の処理の詳細を示す動作フローチャートである。この動作フローチャートの処理は、1つのリクエストがエンドサーバ103に送信される毎に、そのリクエストに対応する応答をエンドサーバ103から待ち受ける処理として起動される。この処理は、図7(a)の動作フローチャートにて受信リクエストがエンドサーバ103に送信されたときに、そのリクエストに対応するアプリケーションパス情報(実行パス及び所在情報)を保持している。
まず、上記所在情報に対応するエンドサーバ103の、上記実行パスに対応するアプリケーション110から、送信されたリクエストに対応する応答を、一定時間内に受信できたか否かが判定される(ステップS705)。
一定時間内に応答が受信できずステップS705の判定がNOならば、上記アプリケーションパス情報に対応するエンドサーバ103の実行パスに対応して起動されていた応答時間の計測タイマがストップされる。これにより、応答時間の計測が停止される(ステップS706)。
その後、図7(b)の動作フローチャートの処理を終了する。
一定時間内に応答が受信できステップS705の判定がYESになると、まず、上記アプリケーションパス情報に対応するエンドサーバ103の実行パスに対応して起動されていた応答時間の計測タイマがストップされる。これにより、応答時間の計測が停止され、そのタイマ値として応答時間が取得される(ステップS707)。この処理は、図24から続く図25の動作シーケンス図において、S705及びS707として示される。
次に、図14のアプリケーションパス管理情報1401中の上記アプリケーションパス情報に対応するエントリ行において、統計情報中の各応答時間情報が更新される(ステップS708)。まず、「平均応答時間」項目の値が、ステップS707にて新たに取得された応答時間の計測値を用いて再計算され記録される。また、「最小応答時間」項目の値として、今回の応答時間の計測値が「最小応答時間」項目に現在設定されている値未満である場合に、その項目値が今回の計測値に更新される。更に、「最大応答時間」項目の値として、今回の応答時間の計測値が「最大応答時間」項目に現在設定されている値より大きい場合に、その項目値が今回の計測値に更新される。以上の処理は、図24から続く図25の動作シーケンス図において、S708として示される。
その後、図7(b)の動作フローチャートの処理を終了する。
以上の図7(a)及び図7(b)の動作フローチャートの処理により、各エンドサーバ103で実行される各アプリケーション110毎に、そのアプリケーション110に対するリクエストの要求数と、応答時間情報を取得することができる。
図16は、図1のフロントサーバA及びフロントサーバBの各々について、負荷計測エージェント109による図2のステップS202のエンドサーバ統計情報取得処理により取得されるアプリケーションパス管理情報1401のデータ構成例を示す図である。この図から理解されるように、各フロントサーバ102において、実行パスと所在情報とで規定されるアプリケーションパス情報毎の稼働状態とリクエスト発行に関する統計情報が取得できることがわかる。これらの情報は、言い換えれば、各エンドサーバ103の各アプリケーション110毎の負荷状態を示している情報であるといえる。このように、本実施形態では、各フロントサーバ102において、リクエスト発行に対する各エンドサーバ103の各アプリケーション110毎の負荷状態を取得することが可能となる。
図8は、負荷計測エージェント109により実行される図2のステップS203の統計情報通知処理の詳細を示す動作フローチャートである。この処理では、前述したように、アプリケーションパス情報毎の状態及び統計情報と、自装置であるフロントサーバ102自身の負荷状態が、一定時間毎にサーバ負荷分散装置101に通知される。
まず、サーバ負荷分散装置101からの制御コネクションの確立が待たれる(ステップS801)。制御コネクションの確立処理について後述する。
制御コネクションが確立したら、制御コネクションの切断が発生しているか否かが確認されながら、サーバ負荷分散装置101からの統計情報通知開始要求の制御パケットの受信が待たれる(ステップS802→S803→S802の処理の繰返し)。
サーバ負荷分散装置101からの統計情報通知開始要求の制御パケットが受信されると、まず、送信時間間隔タイマが起動される(ステップS804)。この処理は、図22の動作シーケンス図において、S804として示される。
次に、制御コネクションの切断が発生しているか否かが確認されながら、送信時間間隔タイマがタイムアウトして送信間隔時間が経過したか否かが判定される(ステップS805→S806→S805の処理の繰返し)。
送信間隔時間が経過しステップS806の判定がYESになると、図14又は図16に示されるアプリケーションパス管理情報1401が取得される。そして、図20(b)に示されるデータ構成例を有する統計情報通知の制御パケットに格納される(ステップS807)。この制御パケットは例えば、プロトコルを識別するプロトコル識別子と、「統計情報通知」が設定されたパケット種別と、統計情報のデータ長が格納された統計情報長と、統計情報種別とそれに対応する統計情報値との組とからなる情報を含む。この制御パケットの基本フォーマットは例えば、UDP(ユーザ・データグラム・プロトコル)に従うが、TCP/IP(トランスファ・コントロール・プロトコル/インターネット・プロトコル)でも良い。
次に、フロントサーバ102自身の最新の負荷状態が取得され、上記と同様の統計情報通知の制御パケットに、フロントサーバ102の負荷状態として格納される(ステップS808)。フロントサーバ102自身の従来の負荷状態は例えば、CPU(中央演算処理装置)の負荷率やバッファ使用率等である。 そして、サーバ負荷分散装置101に、ステップS807及びS808にて作成された統計情報通知の制御パケットが送信される(ステップS809)。その後、ステップS804に戻って、次の送信間隔タイマが起動される。
以上のステップS807からS809までの一連の処理は、図22から続く図23の動作シーケンス図において、S807,S808,S809として示される。
その後、ステップS804の処理に戻る。この処理は、図22から続く図23の動作シーケンス図において、S804として示される。
以上のようにして、一定の送信間隔時間毎に、各フロントサーバ102の負荷計測エージェント109からサーバ負荷分散装置101に、アプリケーションパス管理情報1401と、フロントサーバ102自身の最新の負荷状態を送信することができる。この結果、図22から続く図23のS807,S808,S809,S804、図24から続く図25のS807,S808,S809,S804といった動作シーケンスが繰り返されることになる。これにより、サーバ負荷分散装置101は、各エンドサーバ103から直接負荷状態を収集することなく、各エンドサーバ103に対するアプリケーション110毎のアクセス状況も含めた各エンドサーバ103の正確な負荷状態をフロントサーバ102を介して収集することが可能となる。
図9は、図1のサーバ負荷分散装置101内の統計情報受信制御部106によって実行される図3のステップS301の統計情報受信処理の詳細を示す動作フローチャートである。この処理では、前述したように、上述した負荷計測エージェント109による統計情報通知処理(図2のステップS203)によって送信されたアプリケーションパス管理情報1401とフロントサーバ102自身の最新の負荷状態が受信される。
まず、サーバ負荷分散装置101に定義されている振分け対象のフロントサーバ102の負荷計測エージェント109に対して、制御コネクションの確立処理が実行される(ステップS901)。
続いて、図1の振分け処理部108から各フロントサーバ102の負荷計測エージェント109に対して、統計情報通知開始要求の制御パケットが送信される(ステップS902)。この処理は、図22の動作シーケンス図において、S902として示される。図20(a)は、統計情報通知開始要求の制御パケットのデータ構成例を示す図である。この制御パケットは例えば、プロトコルを識別するプロトコル識別子と、「統計情報通知開始要求」が設定されたパケット種別の情報を含む。この制御パケットの基本フォーマットは例えば、UDPに従うが、TCP/IPでもよい。
次に、各フロントサーバ102の負荷計測エージェント109から、一定時間内に統計情報通知の制御パケットが受信されたか否かが判定される(ステップS903)。
一定時間内に統計情報通知の制御パケットが受信されずステップS903の判定がNOになったならば、一定回数だけ統計情報通知の制御パケットの未受信状態が繰り返されたか否かが判定される(ステップS904)。
未受信状態が一定回数に達しておらずステップS904の判定がNOならば、ステップS902の処理に戻り、統計情報通知開始要求の制御パケットの送信が再試行される。
未受信状態が一定回数に達してステップS904の判定がYESになると、該当するフロントサーバ102の負荷計測エージェント109が異常であると判断される。そして、そのフロントサーバ102に対する統計情報受信処理が、一定時間後に再開するまで休止される(ステップS905)。
一方、一定時間内に統計情報通知の制御パケットが受信されステップS903の判定がYESになると、以下の処理が実行される。即ち、受信された統計情報通知の制御パケットに問題がなければ、サーバ負荷分散装置101内のサーバ統計情報301(図3)が、受信された統計情報通知の制御パケット内の統計情報で更新される(ステップS906)。この処理は、図22から続く図23又は図24から続く図25の動作シーケンス図において、S906として示される。制御パケットに問題があるか否かは、例えば制御パケットに付加されている誤り訂正符号をチェックして判定される。なお、受信した統計情報通知の制御パケットに問題があれば、未受信として扱われる。
その後、ステップS903の処理に戻って、次の統計情報通知の制御パケットの受信が待たれる。
上述の動作フローチャートでは特には図示しないが、サーバ負荷分散装置101は、各フロントサーバ102の負荷計測エージェント109に対し、統計情報通知終了要求の制御パケットを送信する。これにより、上述の統計情報受信処理を終了させることができる。図20(c)は、統計情報通知開始要求の制御パケットのデータ構成例を示す図である。この制御パケットは例えば、プロトコルを識別するプロトコル識別子と、「統計情報通知終了要求」が設定されたパケット種別の情報を含む。この制御パケットの基本フォーマットは例えば、UDPに従うが、TCP/IPでも良い。図21は、上述した統計情報通知の制御シーケンスを示す図である。サーバ負荷分散装置101から各フロントサーバ102に統計情報通知開始要求の制御パケットが送信されることにより、統計情報の通知シーケンスが開始される。これ以後、各フロントサーバ102からサーバ負荷分散装置101に統計情報通知の制御パケットが送信される。送信終了後、サーバ負荷分散装置101が各フロントサーバ102に統計情報通知終了要求の制御パケットを送信し、それに対して各フロントサーバ102がサーバ負荷分散装置101に統計情報通知終了応答の制御パケットを返信する。これにより、統計情報の通知シーケンスが終了する。
統計情報受信処理によって、図1の統計情報受信制御部106は、例えば図17のデータ構成例を有するサーバ統計情報301(図3)を取得することができる。図17に示されるサーバ統計情報301において、フロントサーバ102を識別するための「サーバ識別情報」項目として、各フロントサーバ102のIPアドレスが設定される。また、「状態」項目として、稼働状態を示す「up」又は非稼働状態を示す「down」が設定される。この値は、図9のステップS905が実行されたときに「down」にされ、ステップS906が実行されたときに「up」にされる。「フロントサーバ統計情報」項目には、図8のステップS808及びS809の各処理に基づいて通知されたフロントサーバ102の負荷情報が設定される。「実行パス」「所在」「状態」「エンドサーバ統計情報には、図8のステップS807及びS809の各処理に基づいて通知されたアプリケーションパス管理情報1401(図14又は図16参照)の各内容が設定される。
以上のようにして、サーバ負荷分散装置101の統計情報受信制御部106は、各フロントサーバ102から、各エンドサーバ103の各アプリケーション110毎の負荷状態を示す統計情報と、従来の各フロントサーバ102自身の負荷状態を収集できる。
図10は、図1のサーバ負荷分散装置101内の統計情報受信制御部106によって実行される図3のステップS302の振分け比率設定処理の詳細を示す動作フローチャートである。この処理では、前述したように、コネクション管理部107が管理するコネクション情報303と上述の統計情報受信処理(図3のステップS301)で受信された統計情報とに基づいて、各フロントサーバ102への振分け比率が計算される。この動作フローチャートの処理は、一定時間毎に実行される。
まず、図3のサーバ統計情報301が更新されたか否かが判定される(ステップS1001)。このサーバ統計情報301は、上述した統計情報受信処理(図3のステップS301)によって更新される。
サーバ統計情報301が更新されておらずステップS1001の判定がNOならば、今回の振分け比率設定処理を終了する。
サーバ統計情報301が更新されおりステップS1001の判定がYESならば、図1のコネクション管理部107から図3のコネクション情報303が取得される(ステップS1002)。コネクション情報303は、例えば図19に示されるデータ構成例を有し、各フロントサーバ102の各アプリケーションパス情報毎に、現在確立しているコネクション数を記憶している。各フロントサーバ102は、図17に示されるサーバ統計情報301内の「サーバ識別情報」によって識別される。アプリケーションパス情報は、サーバ統計情報301内の「実行パス」及び「所在」を含むエンドサーバ負荷状態毎の情報である。コネクション情報303は、コネクション管理部107が実行するコネクションの確立・解放処理によって更新される。例えば、サーバ識別情報の項目がIPアドレスならば、フロントサーバAのIPアドレスを意味する。このとき実行パスの項がcgi-bin/ap101/index.phpならば、そのアプリケーションへの所在はエンドサーバのApsv1で、そのアプリケーションへのコネクション数は11である。
次に、図1の統計情報受信制御部106からサーバ統計情報301が取得される(ステップS1003)。
そして、ステップS1002で取得されたコネクション情報303とステップS1003で取得されたサーバ統計情報301から、各フロントサーバ102への振分け比率が計算される(ステップS1004)。
振分け比率は、フロントサーバ102毎に、そのフロントサーバ102に接続する各エンドサーバ103のアプリケーションパス情報毎の負荷を重視し、更にアプリケーションパス情報毎のコネクション数を考慮して決定される。例えば、以下のような計算で、振分け比率が算出される。なお、Nは、計算対象のフロントサーバに対応するアプリケーションパス管理情報1401のエントリ数である。
計算対象のフロントサーバの負荷=
((アプリケーションパス情報1に対応するアプリケーションの
コネクション数 × 平均応答時間 )
+ ・・・・・+
(アプリケーションパス情報Nに対応するアプリケーションの
コネクション数 × 平均応答時間 ))
計算対象のフロントサーバへの振分け比率=
計算対象のフロントサーバの負荷/全フロントサーバの負荷の和
図16及び図19の状態において、フロントサーバAとフロントサーバBに対する負荷及び振り分け比率は以下となる。
フロントサーバAの負荷
=(11×4)+(22×4)+(4×12)+(8×5)=220
フロントサーバBの負荷
=(10×4)+(20×4)+(5×12)+(9×5)=225
フロントサーバAへの振り分け比率=220/(220+225)=0.49
フロントサーバBへの振り分け比率=225/(220+225)=0.51
ここで、例えば、応答時間が短いアプリケーション110を多く処理しているフロントサーバ102に対しては、より多くのリクエストが送り込まれても、そのリクエストを十分に処理できる。一方、応答時間が長いアプリケーション110を処理しているフロントサーバ102に対しては、あまり多くのリクエストは送り込まないほうがよい。
しかし、従来のように、単にフロントサーバ102が処理しているリクエストの要求数や平均応答時間を計測しただけでは、処理の重いリクエストも軽いリクエストも一括して判断されてしまう。このため、短時間で見たときに、各フロントサーバ102において、各エンドサーバ103の負荷状態を正確に計測することができない。
また、各フロントサーバ102が、各エンドサーバ103毎に区別してリクエストの要求数や平均応答時間を計測できたと仮定する。しかしこの場合も、エンドサーバ103で処理時間が大幅に異なる複数のアプリケーション110が実行されているようなケースでは、各フロントサーバ102において、各エンドサーバ103上の各アプリケーション110へのアクセス状況も含めた負荷状態を正確に計測することができない。
本実施形態では、サーバ負荷分散装置101は、各フロントサーバ102について、そのフロントサーバ102に接続されるエンドサーバ103が処理しているアプリケーション毎=アプリケーションパス情報毎に次の計算を実行する。即ち、アプリケーションパス情報毎に、(アプリケーションのコネクション数×応答時間)を計算する。そして、フロントサーバ102上での全てのアプリケーションパス情報に対応する各計算結果の総和を計算し、その結果をそのフロントサーバ102の負荷値とする。このように、本実施形態では、各フロントサーバにおける各エンドサーバ103の各アプリケーション110でのアクセス状況即ち負荷状態が正確に反映された負荷を正しく計算することができる。そして、このようにして計算された各フロントサーバ102の負荷の比率を振分け比率として計算し、この振分け比率に基づいてサーバ負荷分散装置101から各フロントサーバ102へのリクエストの振分けを実行することにより、適切なサーバ負荷分散制御が実現される。
なお、上述の例では、フロントサーバ102の負荷は、各エンドサーバ103のアプリケーション110毎のアクセス状況を反映した負荷状態のみを含む負荷として計算されている。これに対して更に、フロントサーバ102自身でのCPU/バッファ使用率の比率や、最大応答時間、最小応答時間や、他の情報値を併せて含むように負荷計算が行われてもよい。これにより、フロントサーバ102に接続される各エンドサーバ103のアプリケーション110毎のアクセス状況に加えて、そのフロントサーバ102自身の負荷状態も加味した負荷分散制御を実現することができる。フロントサーバ自身の負荷状態による負荷分散制御は従来技術に従う。
また、エンドサーバ103のアプリケーション110毎の負荷は、更に処理の信頼度を加え、
(エンドサーバのアプリケーションのコネクション数 × 平均応答時間 )
× {1/1−エラー発生率}
などとして決定されてもよい。なお、平均応答時間及びエラー発生率は、サーバ統計情報301として取得された、フロントサーバ102からのアプリケーションパス管理情報1401中に含まれている。
ステップS1004で計算された振分け比率は、図3の振分け情報302として、振分け処理部108に保持される。図18は、振分け情報302のデータ構成例を示す図である。フロントサーバ102毎に、振分け比率が決定される。図18において、「サーバ識別情報」「状態」「実行パス」「所在」及び「エンド状態」は、それぞれ図17に示されるサーバ統計情報301内の「サーバ識別情報」「状態」「実行パス」「所在」及びフロントサーバ102から通知された統計情報の一部である「状態」から転記される。
以上のステップS1002からS1004までの一連の処理は、図22から続く図23又は図24から続く図25の動作シーケンス図において、S1002,S1003,S1004として示される。
その後、図10の振分け比率設定処理が終了する。
図11は、サーバ負荷分散装置101内の振分け処理部108によって実行される振分け処理の詳細を示す動作フローチャートである。この処理は、図1のコネクション管理部107からの依頼に基づいて起動される。この処理では、前述したように、各エンドサーバ103及び各フロントサーバ102の負荷情報と、各フロントサーバ102の振分け情報に基づいて、各コネクション毎に、振分け対象のフロントサーバ102が決定される。
まず、振分け可能なフロントサーバ102が存在するか否かが判定される(ステップS1101)。
振分け可能なフロントサーバ102が存在しステップS1101の判定がYESならば、図3の振分け情報302とコネクション情報303からフロントサーバ102が選択され、その選択結果がコネクション確立・解放処理に通知される(ステップS1102)。この処理は、図23から続く図24の動作シーケンス図において、S1102として示される。例えば、図18の振分け情報302のデータ構成例では、フロントサーバAとフロントサーバBの振り分け比率は、以下であった。
フロントサーバAの振り分け比率=0.49
フロントサーバBの振り分け比率=0.51
この結果、通常では、振分け比率の低いフロントサーバAが振分け先として選択される。ただし、振分け比率が最小のフロントサーバ102であっても、コネクション情報303(図19参照)を参照した結果、以下のような場合が発生し得る。即ち、そのフロントサーバ102に対するコネクションの合計値が、そのフロントサーバ102が処理可能なコネクション数を超えてしまうような場合がある。このような場合には、そのフロントサーバ102は選択されないように制御することができる。
振分け可能なフロントサーバ102が存在せずステップS1101の判定がNOならば、フロントサーバ102は選択されないため、振分け先なしとしてコネクション確立・解放処理に通知される。
図12は、サーバ負荷分散装置101内のコネクション管理部107内の振分け処理部108によって実行されるコネクション確立・解放処理の詳細を示す動作フローチャートである。
まず、クライアント105からのリクエストがコネクション確立のリクエストであるか否かが判定される(ステップS1201)。
クライアント105からのリクエストがコネクション確立のリクエストでステップS1201の判定がYESならば、そのリクエストが振分け条件に一致する通信であるか否かが判定される(ステップS1202)。
リクエストが振分け条件に一致しない通信でステップS1202の判定がNOならば、クライアント105とのコネクションが切断される(ステップS1207)。
リクエストが振分け条件に一致する通信でステップS1202の判定がYESならば、振分け処理部108に振分け先となるフロントサーバ102の選択が依頼される(ステップS1203)。この処理は、図23から続く図24の動作シーケンス図において、S1203として示される。
この結果、振分け処理部108は、上述した図11の振分け処理によって振分け先のフロントサーバ102を決定し、コネクション管理部107に通知する。この処理は、図23から続く図24の動作シーケンス図において、S1102として示される。
この通知を受けて、振分け先のフロントサーバ102が存在するか否かが判定される(ステップS1204)。
振分け先のフロントサーバ102が存在せずステップS1204の判定がNOならば、クライアント105とのコネクションが切断される(ステップS1207)。
振分け先のフロントサーバ102が存在しステップS1204の判定がYESならば、振分け先のフロントサーバ102との間でコネクションを確立する制御処理が実行される(ステップS1205)。この処理は、図23から続く図24の動作シーケンス図において、S1205として示される。
そして、図19のデータ構成例を有する図3のコネクション情報303において、以下の更新が行われる。即ち、クライアント105からのリクエストにて指定されているURIに対応する実行パスと、振分け先のフロントサーバ102に対応するサーバ識別情報(IPアドレス)とに対応するコネクション数が、カウントアップされる(ステップS1206)。このコネクション数は、ある時点でのサーバ負荷分散装置101とフロントサーバ102との間のコネクション数であるが、アプロケーション毎のコネクション数に分割され、フロントサーバ102とエンドサーバ103間に確立されている、ある時点でのアプリケーションのコネクション数となる。この処理は、図23から続く図24の動作シーケンス図において、S1206として示される。
クライアント105からのリクエストがコネクション確立のリクエストではなくステップS1201の判定がNOならば、クライアント105からのリクエストがコネクション解放のリクエストであるか否かが判定される(ステップS1208)。
クライアント105からのリクエストがコネクション解放のリクエストではなくステップS1208の判定がNOならば、何もせずに終了する。
クライアント105からのリクエストがコネクション解放のリクエストでステップS1208の判定がYESならば、振分け先のフロントサーバ102との間のコネクションが解放される(ステップS1209)この処理は、図24から続く図25の動作シーケンス図において、S1203として示される。
そして、図19のデータ構成例を有する図3のコネクション情報303において、以下の更新が行われる。即ち、クライアント105からのリクエストにて指定されているURIに対応する実行パスと、今まで振り分けられていたフロントサーバ102に対応するサーバ識別情報(IPアドレス)とに対応するコネクション数が、カウントダウンされる(ステップS1206)。
以上のステップS1209とS1210の処理は、図24から続く図25の動作シーケンス図において、S1209,S1210として示される。
以上の実施形態で、負荷計測エージェント109が収集する統計情報として、アプリケーションパス情報毎の応答時間に関する情報のほかに、アプリケーションパス情報毎のデータ量や、その他様々な統計情報を計測するような方式を実現することができる。
以上説明したように、本実施形態では、サーバ負荷分散装置によって振分け制御される各フロントサーバであるサーバ装置において、以下の動作が可能となる。即ち、自装置がアクセスするエンドサーバ上のアプリケーションプログラムを示すアプリケーションパス情報毎の稼働状態とリクエスト発行に関する統計情報を取得できる。そして、各エンドサーバの各アプリケーションプログラム毎の負荷状態を示す情報を取得することが可能となる。
そして、上述の各エンドサーバの各アプリケーションプログラム毎の負荷状態を示す情報を、サーバ負荷分散装置が各サーバ装置から収集し、さらに負荷分散装置とフロントサーバとのコネクション数、すなわちフロントサーバとエンドサーバは1対1の関係にあるから負荷分散装置とエンドサーバとのコネクション数を用いて、それらに基づいて各サーバ装置の振り分け比率を決定する。これにより、フロントサーバに接続される各エンドサーバのアプリケーションプログラム毎の負荷状態に沿った正確なサーバ負荷分散を実現でき、システム全体の負荷の最適化を容易に実現することが可能となる。
サーバ負荷分散装置がエンドサーバと直接に通信をできないような環境下においても、サーバ負荷分散装置は、各エンドサーバに対するアプリケーション毎のアクセス状況も含めた各フロントサーバの正確な負荷状態を収集することが可能となる。そして、それに基づいて最適な負荷分散制御が実現できる。
また、複数のサーバ負荷分散装置間で更に連携を取るような複雑な制御を行う必要もない。
図26は、上述の各実施形態のシステムを実現できるコンピュータのハードウェア構成の一例を示す図である。
図26に示されるコンピュータは、CPU2601、メモリ2602、入出力装置2603、外部記憶装置2605、可搬記録媒体2609が挿入される可搬記録媒体駆動装置2606、及び通信インターフェース2607を有し、これらがバス2608によって相互に接続された構成を有する。
CPU2601は、当該コンピュータ全体の制御を行う。メモリ2602は、プログラムの実行、データ更新等の際に、外部記憶装置2605(或いは可搬記録媒体2609)に記憶されているプログラム又はデータを一時的に格納するRAM等のメモリである。CUP2601は、プログラムをメモリ2602に読み出して実行することにより、全体の制御を行う。
入出力装置2603は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をCPU2601に通知し、CPU2601の制御によって送られてくるデータを表示装置や印刷装置に出力する。
外部記憶装置2605は、例えばハードディスク記憶装置である。可搬記録媒体駆動装置2606は、可搬記録媒体2609を収容するものである。通信インターフェース2607は、例えばLAN(ローカルエリアネットワーク)の通信回線を接続するための装置である。
実施形態によるシステムは、その機能を実現する各フローチャートに対応する各制御プログラムを、CPU2601が実行することで実現される。そのプログラムは、例えば外部記憶装置2605や可搬記録媒体2609に記録され、或いは通信インターフェース2607によりネットワークから取得できるようにしてもよい。
上述の図26のコンピュータは、図1のサーバ負荷分散装置101を、以下のようにして実現できる。即ち、図1に示される統計情報受信制御部106、コネクション管理部107、及び振分け処理部108を実現する図9〜図12に示されるフローチャートに対応する機能を搭載したプログラムを、CPU2601が実行することで実現できる。
図26のコンピュータは、図1のフロントサーバ102を、以下のようにして実現できる。即ち、図1に示される負荷計測エージェント109を実現する図4〜図8に示されるフローチャートに対応する機能を搭載したプログラムを、CPU2601が実行することで実現できる。
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
エンドサーバと通信を行いながら、サーバ負荷分散装置によって振り分けられるクライアントからのリクエストを処理するフロントサーバとして機能するサーバ装置において、
自装置がアクセスするエンドサーバ毎に前記各エンドサーバ上の負荷状態毎の識別情報を取得し、前記識別情報に基づいて前記負荷状態をエンドサーバ負荷状態の統計情報として計測する計測手段と、
前記エンドサーバ負荷状態の統計情報を、前記サーバ負荷分散装置に通知する通知手段と、
を具備することを特徴とするサーバ装置。
(付記2)
前記識別情報は、自装置がアクセスする前記エンドサーバ上のアプリケーションプログラムの設定場所を決定するアプリケーションパス情報である、
ことを特徴とする付記1記載のサーバ装置。
(付記3)
前記計測手段は、
自装置がアクセスする前記エンドサーバ上のアプリケーションプログラムの設定場所を前記エンドサーバにアクセスするプログラムの設定情報から解析して前記アプリケーションパス情報を取得するエンドサーバ取得統計情報解析処理部と、
前記アプリケーションパス情報に基づいて決定される前記エンドサーバの負荷状態をアプリケーションパス管理情報として取得するエンドサーバ統計情報取得処理部とからなり、
前記通知手段は、
前記アプリケーションパス管理情報を、前記サーバ負荷分散装置に通知する統計情報通知処理部からなる、
ことを特徴とする付記2記載のサーバ装置。
(付記4)
前記エンドサーバ取得統計情報解析処理部は、
自装置上での起動デーモンプログラムを調査することにより、前記エンドサーバにアクセスするプログラムを特定し、
前記プログラムに対する前記設定情報を調査することにより、前記エンドサーバ上のアプリケーションプログラムにアクセスする自装置上のプログラムが格納されているディレクトリを特定し、
前記ファイルがアクセスするエンドサーバ及びアプリケーションプログラムを特定し、
前記特定されたエンドサーバ及びアプリケーションプログラムを、前記アプリケーションパス情報として取得する、
ことを特徴とする付記3に記載のサーバ装置。
(付記5)
前記エンドサーバ取得統計情報解析処理部は、
ユーザが設定する設定情報に基づいて前記アプリケーションパス情報を取得する、
ことを特徴とする付記4に記載のサーバ装置。
(付記6)
前記エンドサーバ統計情報取得処理部は、
前記アプリケーションパス情報に基づいて決定される前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎に、前記組合せに対応するアプリケーションプログラムが動作しているか否かを定期的に検査し、
前記組合せに対応するアプリケーションプログラムの自装置上での負荷状態を判断するための統計情報を取得する、
ことを特徴とする付記3に記載のサーバ装置。
(付記7)
前記統計情報は、前記サーバ負荷分散装置から到達する前記アプリケーションプログラム向けの前記リクエストの要求数と、前記アプリケーションプログラムに発行された前記リクエストの応答時間の平均・最小・最大値と、前記アプリケーションプログラムに発行された前記リクエストのエラー発生回数及びエラー発生率を含む、
ことを特徴とする付記6に記載のサーバ装置。
(付記8)
前記統計情報通知処理部は、自装置の負荷状態をフロントサーバ負荷情報として更に前記サーバ負荷分散装置に通知し、
前記サーバ負荷分散装置は、前記アプリケーションパス管理情報及び前記フロントサーバ負荷情報に基づいて、複数の前記サーバ装置に対する前記リクエストの振り分け制御を実施する、
ことを特徴とする付記3に記載のサーバ装置。
(付記9)
前記エンドサーバの位置に、複数のエンドサーバに対して負荷分散制御を実施する仮想サーバ装置を配置する、
ことを特徴とする付記3に記載のサーバ装置。
(付記10)
エンドサーバと通信を行いながらクライアントからのリクエストを処理するフロントサーバに対して、前記クライアントからのリクエストを振り分けるサーバ負荷分散装置において、
少なくとも一台の前記エンドサーバが接続されるべきフロントサーバを介して前記エンドサーバの負荷状態の統計情報を受信する受信手段と、
前記統計情報と前記フロントサーバへの前記リクエストのコネクション数とから算出される負荷情報に基づいて前記各フロントサーバの振り分け比率を計算し、前記フロントサーバへの前記リクエストの振分けを制御するフロントサーバ負荷分散手段と、
を具備するサーバ負荷分散装置。
(付記11)
前記統計情報は前記エンドサーバ上の負荷状態の識別情報に基づいて前記フロントサーバが取得し、
前記コネクション数は自装置と前記フロントサーバとの間の前記エンドサーバ上の負荷状態語とのコネクション数である、
ことを特徴とする付記10記載のサーバ負荷分散装置。
(付記12)
前記受信手段は、
前記各フロントサーバから、前記エンドサーバ及び前記エンドサーバが実行するアプリケーションプログラムの組合せ毎に前記組合せに対応する負荷状態を示すアプリケーションパス管理情報を受信し、サーバ統計情報として管理する統計情報受信処理部からなり、
前記負荷分散手段は、
前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎のコネクション数を含むコネクション情報と、前記アプリケーションパス管理情報とに基づいて、前記各フロントサーバへのリクエストの振分け比率を示す振分け情報を算出する振分け比率設定処理部と、
前記クライアントからのリクエストに基づくコネクションの設定時に、前記振分け情報に基づいて振分け先のフロントサーバを決定する振分け処理部と、
前記クライアントからのリクエストに基づいて、前記振分け処理部によって決定される振分け先のフロントサーバとの間で、コネクションの確立及び解放を行うと共に、前記コネクションに対応する前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎のコネクション数を前記コネクション情報上で更新するコネクション管理部と、
を具備することを特徴とする付記10記載のサーバ負荷分散装置。
(付記13)
前記統計情報受信処理部は、
前記各フロントサーバから、前記エンドサーバの負荷状態とこれに基づく前記各フロントサーバの負荷状態を示すフロントサーバ負荷情報を受信し、
前記振分け比率設定処理部は、前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎のコネクション数を含むコネクション情報と、前記アプリケーションパス管理情報と、前記フロントサーバ負荷情報とに基づいて、前記各フロントサーバへのリクエストの振分け比率を示す振分け情報を算出する、
ことを特徴とする付記12に記載のサーバ負荷分散装置。
(付記14)
エンドサーバにて実行されているアプリケーションプログラムと通信を行いながらクライアントからのリクエストを処理するフロントサーバに対して、サーバ負荷分散装置が前記クライアントからのリクエストを振り分けるサーバ負荷分散システムにおいて、
前記フロントサーバは、
自装置がアクセスするエンドサーバ毎に前記各エンドサーバ上の負荷状態を取得し、前記負荷状態をエンドサーバ負荷状態の統計情報として計測する計測手段と、
前記エンドサーバ負荷状態の統計情報を、前記サーバ負荷分散装置に通知する通知手段と、
を具備し、
前記サーバ負荷分散装置は、
少なくとも一台の前記エンドサーバが接続されるべき前記フロントサーバを介して前記エンドサーバの負荷状態の統計情報を受信する受信手段と、
前記統計情報を含む計測情報に基づいて前記各フロントサーバの振り分け比率を計算し、前記フロントサーバへの前記リクエストの振分けを制御するフロントサーバ負荷分散手段と、
を具備することを特徴とするサーバ負荷分散システム。
(付記15)
エンドサーバと通信を行いながら、サーバ負荷分散装置によって振り分けられるクライアントからのリクエストを処理するフロントサーバとして機能するサーバ装置に、
自装置がアクセスするエンドサーバ毎に前記各エンドサーバ上の負荷状態毎の識別情報を取得し、前記識別情報に基づいて前記負荷状態をエンドサーバ負荷状態の統計情報として計測する計測機能と、
前記エンドサーバ負荷状態の統計情報を、前記サーバ負荷分散装置に通知する通知機能と、
を実行させるためのプログラム。
(付記16)
前記識別情報は、自装置がアクセスする前記エンドサーバ上のアプリケーションプログラムの設定場所を決定するアプリケーションパス情報である、
ことを特徴とする付記15記載のプログラム。
(付記17)
前記計測機能は、
自装置がアクセスする前記エンドサーバ上のアプリケーションプログラムの設定場所を前記エンドサーバにアクセスするプログラムの設定情報から解析して前記アプリケーションパス情報を取得するエンドサーバ取得統計情報解析処理機能と、
前記アプリケーションパス情報に基づいて決定される前記エンドサーバの負荷状態をアプリケーションパス管理情報として取得するエンドサーバ統計情報取得処理機能とからなり、
前記通知機能は、
前記アプリケーションパス管理情報を、前記サーバ負荷分散装置に通知する統計情報通知処理機能からなる、
ことを特徴とする付記16記載のプログラム。
(付記18)
前記エンドサーバ取得統計情報解析処理機能は、
自装置上での起動デーモンプログラムを調査することにより、前記エンドサーバにアクセスするプログラムを特定し、
前記プログラムに対する前記設定情報を調査することにより、前記エンドサーバ上のアプリケーションプログラムにアクセスする自装置上のプログラムが格納されているディレクトリを特定し、
前記ファイルがアクセスするエンドサーバ及びアプリケーションプログラムを特定し、
前記特定されたエンドサーバ及びアプリケーションプログラムを、前記アプリケーションパス情報として取得する、
ことを特徴とする付記17に記載のプログラム。
(付記19)
前記エンドサーバ取得統計情報解析処理機能は、
ユーザが設定する設定情報に基づいて前記アプリケーションパス情報を取得する、
ことを特徴とする付記18に記載のプログラム。
(付記20)
前記エンドサーバ統計情報取得処理機能は、
前記アプリケーションパス情報に基づいて決定される前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎に、前記組合せに対応するアプリケーションプログラムが動作しているか否かを定期的に検査し、
前記組合せに対応するアプリケーションプログラムの自装置上での負荷状態を判断するための統計情報を取得する、
ことを特徴とする付記17に記載のプログラム。
(付記21)
前記統計情報は、前記サーバ負荷分散装置から到達する前記アプリケーションプログラム向けの前記リクエストの要求数と、前記アプリケーションプログラムに発行された前記リクエストの応答時間の平均・最小・最大値と、前記アプリケーションプログラムに発行された前記リクエストのエラー発生回数及びエラー発生率を含む、
ことを特徴とする付記20に記載のプログラム。
(付記22)
前記統計情報通知処理機能は、前記エンドサーバの負荷状態をフロントサーバ負荷情報として更に前記サーバ負荷分散装置に通知し、
前記サーバ負荷分散装置は、前記アプリケーションパス管理情報及び前記フロントサーバ負荷情報に基づいて、複数の前記サーバ装置に対する前記リクエストの振り分け制御を実施する、
ことを特徴とする付記17に記載のプログラム。
(付記23)
前記エンドサーバの位置に、複数のエンドサーバに対して負荷分散制御を実施する仮想サーバ装置を配置する、
ことを特徴とする付記17に記載のプログラム。
(付記24)
エンドサーバと通信を行いながらクライアントからのリクエストを処理するフロントサーバに対して、前記クライアントからのリクエストを振り分けるサーバ負荷分散装置に、
少なくとも一台の前記エンドサーバが接続されるべきフロントサーバを介して前記エンドサーバの負荷状態の統計情報を受信する受信機能と、
前記統計情報と前記フロントサーバへの前記リクエストのコネクション数とから算出される負荷情報に基づいて前記各フロントサーバの振り分け比率を計算し、前記フロントサーバへの前記リクエストの振分けを制御するフロントサーバ負荷分散機能と、
を実行させるためのプログラム。
(付記25)
前記統計情報は前記エンドサーバ上の負荷状態の識別情報に基づいて前記フロントサーバが取得し、
前記コネクション数は自装置と前記フロントサーバとの間の前記エンドサーバ上の負荷状態語とのコネクション数である、
ことを特徴とする付記24記載のプログラム。
(付記26)
前記受信機能は、
前記各フロントサーバから、前記エンドサーバ及び前記エンドサーバが実行するアプリケーションプログラムの組合せ毎に前記組合せに対応する負荷状態を示すアプリケーションパス管理情報を受信し、サーバ統計情報として管理する統計情報受信処理機能からなり、
前記負荷分散機能は、
前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎のコネクション数を含むコネクション情報と、前記アプリケーションパス管理情報とに基づいて、前記各フロントサーバへのリクエストの振分け比率を示す振分け情報を算出する振分け比率設定処理機能と、
前記クライアントからのリクエストに基づくコネクションの設定時に、前記振分け情報に基づいて振分け先のフロントサーバを決定する振分け処理機能と、
前記クライアントからのリクエストに基づいて、前記振分け処理機能によって決定される振分け先のフロントサーバとの間で、コネクションの確立及び解放を行うと共に、前記コネクションに対応する前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎のコネクション数を前記コネクション情報上で更新するコネクション管理機能と、
を具備することを特徴とする付記24記載のプログラム。
(付記27)
前記統計情報受信処理機能は、
前記各フロントサーバから、前記エンドサーバの負荷状態とこれに基づく前記各フロントサーバの負荷状態を示すフロントサーバ負荷情報を受信し、
前記振分け比率設定処理機能は、前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎のコネクション数を含むコネクション情報と、前記アプリケーションパス管理情報と、前記フロントサーバ負荷情報とに基づいて、前記各フロントサーバへのリクエストの振分け比率を示す振分け情報を算出する、
ことを特徴とする付記26に記載のプログラム。
(付記28)
コンピュータがエンドサーバと通信を行いながら、サーバ負荷分散装置によって振り分けられるクライアントからのリクエストを処理するフロントサーバとして機能するサーバ装置を制御する方法において、
自装置がアクセスするエンドサーバ毎に前記各エンドサーバ上の負荷状態毎の識別情報を取得し、前記識別情報に基づいて前記負荷状態をエンドサーバ負荷状態の統計情報として計測し、
前記エンドサーバ負荷状態の統計情報を、前記サーバ負荷分散装置に通知する、
ことを特徴とするサーバ負荷分散方法。
(付記29)
前記識別情報は、自装置がアクセスする前記エンドサーバ上のアプリケーションプログラムの設定場所を決定するアプリケーションパス情報である、
ことを特徴とする付記28記載のサーバ負荷分散方法。
(付記30)
前記エンドサーバ負荷状態の統計情報の計測において、自装置がアクセスする前記エンドサーバ上のアプリケーションプログラムの設定場所を前記エンドサーバにアクセスするプログラムの設定情報から解析して前記アプリケーションパス情報を取得し、前記アプリケーションパス情報に基づいて決定される前記エンドサーバの負荷状態をアプリケーションパス管理情報として取得し、
前記エンドサーバ負荷状態の統計情報の前記サーバ負荷分散装置への通知において、前記アプリケーションパス管理情報を、前記サーバ負荷分散装置に通知する、
ことを特徴とする付記29記載のサーバ負荷分散方法。
(付記31)
前記アプリケーションパス情報の取得において、自装置上での起動デーモンプログラムを調査することにより、前記エンドサーバにアクセスするプログラムを特定し、前記プログラムに対する前記設定情報を調査することにより、前記エンドサーバ上のアプリケーションプログラムにアクセスする自装置上のプログラムが格納されているディレクトリを特定し、前記ファイルがアクセスするエンドサーバ及びアプリケーションプログラムを特定し、前記特定されたエンドサーバ及びアプリケーションプログラムを、前記アプリケーションパス情報として取得する、
ことを特徴とする付記30に記載のサーバ負荷分散方法。
(付記32)
前記アプリケーションパス情報の取得において、ユーザが設定する設定情報に基づいて前記アプリケーションパス情報を取得する、
ことを特徴とする付記31に記載のサーバ負荷分散方法。
(付記33)
前記アプリケーションパス管理情報の取得において、前記アプリケーションパス情報に基づいて決定される前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎に、前記組合せに対応するアプリケーションプログラムが動作しているか否かを定期的に検査し、前記組合せに対応するアプリケーションプログラムの自装置上での負荷状態を判断するための統計情報を取得する、
ことを特徴とする付記30に記載のサーバ負荷分散方法。
(付記34)
前記統計情報は、前記サーバ負荷分散装置から到達する前記アプリケーションプログラム向けの前記リクエストの要求数と、前記アプリケーションプログラムに発行された前記リクエストの応答時間の平均・最小・最大値と、前記アプリケーションプログラムに発行された前記リクエストのエラー発生回数及びエラー発生率を含む、
ことを特徴とする付記33に記載のサーバ負荷分散方法。
(付記35)
前記アプリケーションパス管理情報の前記サーバ負荷分散装置への通知において、前記エンドサーバの負荷状態をフロントサーバ負荷情報として更に前記サーバ負荷分散装置に通知し、
前記サーバ負荷分散装置は、前記アプリケーションパス管理情報及び前記フロントサーバ負荷情報に基づいて、複数の前記サーバ装置に対する前記リクエストの振り分け制御を実施する、
ことを特徴とする付記30に記載のサーバ負荷分散方法。
(付記36)
前記エンドサーバの位置に、複数のエンドサーバに対して負荷分散制御を実施する仮想サーバ装置を配置する、
ことを特徴とする付記30に記載のサーバ負荷分散方法。
(付記37)
コンピュータがエンドサーバと通信を行いながらクライアントからのリクエストを処理するフロントサーバに対して、前記クライアントからのリクエストを振り分けるサーバ負荷分散方法において、
少なくとも一台の前記エンドサーバが接続されるべきフロントサーバを介して前記エンドサーバの負荷状態の統計情報を受信し、
前記統計情報と前記フロントサーバへの前記リクエストのコネクション数とから算出される負荷情報に基づいて前記各フロントサーバの振り分け比率を計算し、
前記フロントサーバへの前記リクエストの振分けを制御する、
ことを特徴とするサーバ負荷分散方法。
(付記38)
前記統計情報は前記エンドサーバ上の負荷状態の識別情報に基づいて前記フロントサーバが取得し、
前記コネクション数は自装置と前記フロントサーバとの間の前記エンドサーバ上の負荷状態語とのコネクション数である、
ことを特徴とする付記37記載のサーバ負荷分散方法。
(付記39)
前記エンドサーバの負荷状態の統計情報の受信において、前記各フロントサーバから、前記エンドサーバ及び前記エンドサーバが実行するアプリケーションプログラムの組合せ毎に前記組合せに対応する負荷状態を示すアプリケーションパス管理情報を受信し、サーバ統計情報として管理し、
前記フロントサーバへの前記リクエストの振分けの制御において、前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎のコネクション数を含むコネクション情報と、前記アプリケーションパス管理情報とに基づいて、前記各フロントサーバへのリクエストの振分け比率を示す振分け情報を算出し、前記クライアントからのリクエストに基づくコネクションの設定時に、前記振分け情報に基づいて振分け先のフロントサーバを決定し、前記クライアントからのリクエストに基づいて、前記振分け処理機能によって決定される振分け先のフロントサーバとの間で、コネクションの確立及び解放を行うと共に、前記コネクションに対応する前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎のコネクション数を前記コネクション情報上で更新する、
ことを特徴とする付記37記載のサーバ負荷分散方法。
(付記40)
前記アプリケーションパス管理情報の受信において、前記各フロントサーバから、前記エンドサーバの負荷状態とこれに基づく前記各フロントサーバの負荷状態を示すフロントサーバ負荷情報を受信し、
前記振分け情報の算出において、前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎のコネクション数を含むコネクション情報と、前記アプリケーションパス管理情報と、前記フロントサーバ負荷情報とに基づいて、前記各フロントサーバへのリクエストの振分け比率を示す振分け情報を算出する、
ことを特徴とする付記39に記載のサーバ負荷分散方法。
(付記41)
コンピュータがエンドサーバにて実行されているアプリケーションプログラムと通信を行いながらクライアントからのリクエストを処理するフロントサーバに対して、サーバ負荷分散装置が前記クライアントからのリクエストを振り分けるサーバ負荷分散方法において、
前記フロントサーバにおいて、
自装置がアクセスするエンドサーバ毎に前記各エンドサーバ上の負荷状態を取得し、前記負荷状態をエンドサーバ負荷状態の統計情報として計測し、
前記エンドサーバ負荷状態の統計情報を、前記サーバ負荷分散装置に通知し、
前記サーバ負荷分散装置において、
少なくとも一台の前記エンドサーバが接続されるべき前記フロントサーバを介して前記エンドサーバの負荷状態の統計情報を受信し、
前記統計情報を含む計測情報に基づいて前記各フロントサーバの振り分け比率を計算し、
前記フロントサーバへの前記リクエストの振分けを制御する、
ことを特徴とするサーバ負荷分散方法。
101 サーバ負荷分散装置
102 フロントサーバ
103 エンドサーバ
104 仮想サーバ
105 クライアント
106 統計情報受信制御部
107 コネクション管理部
108 振分け処理部
109 負荷計測エージェント
110 アプリケーション
111、112、113 LAN
114 インターネット114
301 サーバ統計情報
302 振分け情報
303 コネクション情報
1401 アプリケーションパス管理情報

Claims (8)

  1. エンドサーバと通信を行いながら、サーバ負荷分散装置によって振り分けられるクライアントからのリクエストを処理するフロントサーバとして機能するサーバ装置において、
    自装置がアクセスするエンドサーバ毎に前記各エンドサーバ上の負荷状態毎の識別情報を取得し、前記識別情報に基づいて前記負荷状態をエンドサーバ負荷状態の統計情報として計測する計測手段と、
    前記エンドサーバ負荷状態の統計情報を、前記サーバ負荷分散装置に通知する通知手段と、
    を具備することを特徴とするサーバ装置。
  2. 前記識別情報は、自装置がアクセスする前記エンドサーバ上のアプリケーションプログラムの設定場所を決定するアプリケーションパス情報である、
    ことを特徴とする請求項1記載のサーバ装置。
  3. 前記計測手段は、
    自装置がアクセスする前記エンドサーバ上のアプリケーションプログラムの設定場所を前記エンドサーバにアクセスするプログラムの設定情報から解析して前記アプリケーションパス情報を取得するエンドサーバ取得統計情報解析処理部と、
    前記アプリケーションパス情報に基づいて決定される前記エンドサーバの負荷状態をアプリケーションパス管理情報として取得するエンドサーバ統計情報取得処理部とからなり、
    前記通知手段は、
    前記アプリケーションパス管理情報を、前記サーバ負荷分散装置に通知する統計情報通知処理部からなる、
    ことを特徴とする請求項2記載のサーバ装置。
  4. 前記エンドサーバ取得統計情報解析処理部は、
    自装置上での起動デーモンプログラムを調査することにより、前記エンドサーバにアクセスするプログラムを特定し、
    前記プログラムに対する前記設定情報を調査することにより、前記エンドサーバ上のアプリケーションプログラムにアクセスする自装置上のプログラムが格納されているディレクトリを特定し、
    前記ファイルがアクセスするエンドサーバ及びアプリケーションプログラムを特定し、
    前記特定されたエンドサーバ及びアプリケーションプログラムを、前記アプリケーションパス情報として取得する、
    ことを特徴とする請求項3に記載のサーバ装置。
  5. エンドサーバと通信を行いながらクライアントからのリクエストを処理するフロントサーバに対して、前記クライアントからのリクエストを振り分けるサーバ負荷分散装置において、
    少なくとも一台の前記エンドサーバが接続されるべきフロントサーバを介して前記エンドサーバの負荷状態の統計情報を受信する受信手段と、
    前記統計情報と前記フロントサーバへの前記リクエストのコネクション数とから算出される負荷情報に基づいて前記各フロントサーバの振り分け比率を計算し、前記フロントサーバへの前記リクエストの振分けを制御するフロントサーバ負荷分散手段と、
    を具備するサーバ負荷分散装置。
  6. 前記受信手段は、
    前記各フロントサーバから、前記エンドサーバ及び前記エンドサーバが実行するアプリケーションプログラムの組合せ毎に前記組合せに対応する負荷状態を示すアプリケーションパス管理情報を受信し、サーバ統計情報として管理する統計情報受信処理部からなり、
    前記負荷分散手段は、
    前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎のコネクション数を含むコネクション情報と、前記アプリケーションパス管理情報とに基づいて、前記各フロントサーバへのリクエストの振分け比率を示す振分け情報を算出する振分け比率設定処理部と、
    前記クライアントからのリクエストに基づくコネクションの設定時に、前記振分け情報に基づいて振分け先のフロントサーバを決定する振分け処理部と、
    前記クライアントからのリクエストに基づいて、前記振分け処理部によって決定される振分け先のフロントサーバとの間で、コネクションの確立及び解放を行うと共に、前記コネクションに対応する前記エンドサーバ及び前記アプリケーションプログラムの組合せ毎のコネクション数を前記コネクション情報上で更新するコネクション管理部と、
    を具備することを特徴とする請求項10記載のサーバ負荷分散装置。
  7. エンドサーバと通信を行いながら、サーバ負荷分散装置によって振り分けられるクライアントからのリクエストを処理するフロントサーバとして機能するサーバ装置に、
    自装置がアクセスするエンドサーバ毎に前記各エンドサーバ上の負荷状態毎の識別情報を取得し、前記識別情報に基づいて前記負荷状態をエンドサーバ負荷状態の統計情報として計測する計測機能と、
    前記エンドサーバ負荷状態の統計情報を、前記サーバ負荷分散装置に通知する通知機能と、
    を実行させるためのプログラム。
  8. コンピュータがエンドサーバにて実行されているアプリケーションプログラムと通信を行いながらクライアントからのリクエストを処理するフロントサーバに対して、サーバ負荷分散装置が前記クライアントからのリクエストを振り分けるサーバ負荷分散方法において、
    前記フロントサーバにおいて、
    自装置がアクセスするエンドサーバ毎に前記各エンドサーバ上の負荷状態を取得し、前記負荷状態をエンドサーバ負荷状態の統計情報として計測し、
    前記エンドサーバ負荷状態の統計情報を、前記サーバ負荷分散装置に通知し、
    前記サーバ負荷分散装置において、
    少なくとも一台の前記エンドサーバが接続されるべき前記フロントサーバを介して前記エンドサーバの負荷状態の統計情報を受信し、
    前記統計情報を含む計測情報に基づいて前記各フロントサーバの振り分け比率を計算し、
    前記フロントサーバへの前記リクエストの振分けを制御する、
    ことを特徴とするサーバ負荷分散方法。
JP2009296174A 2009-12-25 2009-12-25 サーバ装置、サーバ負荷分散装置、サーバ負荷分散方法、及びプログラム Pending JP2011138202A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009296174A JP2011138202A (ja) 2009-12-25 2009-12-25 サーバ装置、サーバ負荷分散装置、サーバ負荷分散方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009296174A JP2011138202A (ja) 2009-12-25 2009-12-25 サーバ装置、サーバ負荷分散装置、サーバ負荷分散方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2011138202A true JP2011138202A (ja) 2011-07-14

Family

ID=44349610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009296174A Pending JP2011138202A (ja) 2009-12-25 2009-12-25 サーバ装置、サーバ負荷分散装置、サーバ負荷分散方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2011138202A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017129935A (ja) * 2016-01-18 2017-07-27 キヤノン株式会社 サーバシステム、サーバシステムを制御する方法およびプログラム。
US10469618B2 (en) 2017-02-08 2019-11-05 Fujitsu Limited Adaptive scaling of a service provided for a plurality of terminal devices
JP2019219748A (ja) * 2018-06-15 2019-12-26 日本電気株式会社 分配装置、分配方法及び分配プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259354A (ja) * 2001-03-01 2002-09-13 Hitachi Ltd ネットワークシステム及び負荷分散方法
WO2004084085A1 (ja) * 2003-03-18 2004-09-30 Fujitsu Limited サイト間連携による負荷分散システム
JP2006227963A (ja) * 2005-02-18 2006-08-31 Fujitsu Ltd 多段負荷分散装置、方法及びプログラム
JP2006268155A (ja) * 2005-03-22 2006-10-05 Nec Corp ロードバランス装置、サーバシステム及びそのロードバランス方法
JP2006338653A (ja) * 2005-05-06 2006-12-14 Hitachi Ltd 計算機システムおよび計算機制御方法
JP2008250806A (ja) * 2007-03-30 2008-10-16 Fujitsu Ltd ネットワーク機器、アクセス制御方法及びアクセス制御プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259354A (ja) * 2001-03-01 2002-09-13 Hitachi Ltd ネットワークシステム及び負荷分散方法
WO2004084085A1 (ja) * 2003-03-18 2004-09-30 Fujitsu Limited サイト間連携による負荷分散システム
JP2006227963A (ja) * 2005-02-18 2006-08-31 Fujitsu Ltd 多段負荷分散装置、方法及びプログラム
JP2006268155A (ja) * 2005-03-22 2006-10-05 Nec Corp ロードバランス装置、サーバシステム及びそのロードバランス方法
JP2006338653A (ja) * 2005-05-06 2006-12-14 Hitachi Ltd 計算機システムおよび計算機制御方法
JP2008250806A (ja) * 2007-03-30 2008-10-16 Fujitsu Ltd ネットワーク機器、アクセス制御方法及びアクセス制御プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017129935A (ja) * 2016-01-18 2017-07-27 キヤノン株式会社 サーバシステム、サーバシステムを制御する方法およびプログラム。
US10469618B2 (en) 2017-02-08 2019-11-05 Fujitsu Limited Adaptive scaling of a service provided for a plurality of terminal devices
JP2019219748A (ja) * 2018-06-15 2019-12-26 日本電気株式会社 分配装置、分配方法及び分配プログラム
JP7099068B2 (ja) 2018-06-15 2022-07-12 日本電気株式会社 分配装置、分配方法及び分配プログラム

Similar Documents

Publication Publication Date Title
CN106105160B (zh) 预取断开连接时段的应用数据
US10268750B2 (en) Log event summarization for distributed server system
KR101221205B1 (ko) Http 세션 작업부하를 특성화하기 위한 데이터를수집하는 방법 및 장치
JP4677813B2 (ja) サーバ性能計測方法及びサーバ性能計測システム並びにこれらに用いるコンピュータプログラム
US20100235409A1 (en) System and method for managing data stored in a data network
WO2017074472A1 (en) Network aware distributed business transaction anomaly detection
US8438276B1 (en) Method of monitoring network and application performance by analyzing web clients and web servers
US20100017486A1 (en) System analyzing program, system analyzing apparatus, and system analyzing method
JP2014520336A (ja) 動的コンテンツのキャッシング
JP6607963B2 (ja) 集計されたメトリクスの測定値のデータストア
JP2006011888A (ja) 遠隔管理システム
US10775751B2 (en) Automatic generation of regular expression based on log line data
WO2013171865A1 (ja) 管理方法及び管理システム
JP2011138202A (ja) サーバ装置、サーバ負荷分散装置、サーバ負荷分散方法、及びプログラム
KR101586587B1 (ko) 시스템 모니터링 방법 및 장치
US20170223136A1 (en) Any Web Page Reporting and Capture
JP2006301769A (ja) サーバ装置
US8326977B2 (en) Recording medium storing system analyzing program, system analyzing apparatus, and system analyzing method
EP3306471B1 (en) Automatic server cluster discovery
CN112948733B (zh) 接口维护方法、装置、计算设备以及介质
CN111913732B (zh) 一种服务更新方法、装置及管理服务器、存储介质
KR101502589B1 (ko) 웹개체를 이용한 공유단말 검출 방법 및 그 장치
JP7421165B2 (ja) データ連携システムおよびapiプラットフォーム
KR20190015817A (ko) 미들웨어를 이용한 모니터링 방법, 장치 및 시스템
US20170222904A1 (en) Distributed Business Transaction Specific Network Data Capture

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131029

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140304