JP2005503626A - クライアントサーバネットワーク - Google Patents
クライアントサーバネットワーク Download PDFInfo
- Publication number
- JP2005503626A JP2005503626A JP2003529726A JP2003529726A JP2005503626A JP 2005503626 A JP2005503626 A JP 2005503626A JP 2003529726 A JP2003529726 A JP 2003529726A JP 2003529726 A JP2003529726 A JP 2003529726A JP 2005503626 A JP2005503626 A JP 2005503626A
- Authority
- JP
- Japan
- Prior art keywords
- server
- servers
- requests
- activity
- response
- 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
Links
- 238000009826 distribution Methods 0.000 claims abstract description 44
- 238000011068 loading method Methods 0.000 claims abstract description 36
- 230000000694 effects Effects 0.000 claims abstract description 34
- 238000011156 evaluation Methods 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims description 74
- 238000000034 method Methods 0.000 claims description 29
- 230000000052 comparative effect Effects 0.000 claims 1
- 238000005259 measurement Methods 0.000 description 26
- 238000013459 approach Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Communication Control (AREA)
- Multi Processors (AREA)
Abstract
サーバシステムとのネットワーク通信におけるクライアントノードは、複数のサーバから成る。前記クライアントは、サーバアクティビティを周期的に測定する分配器から成り、前記サーバの相対ローディングを評価し、前記リクエスト分配を調整し、それによって、前記ローディング評価に従って前記サーバローディングを調整する。
Description
【技術分野】
【0001】
本発明は、クライアントサーバネットワークに関し、より詳細には、リクエストを処理できる多数の代替サーバを、クライアントが有するネットワークに関する。
【背景技術】
【0002】
前記クライアントサーバネットワークにおいて、クライアントが、どのサーバノードに対して所定のリクエストを送信するかを決定する際に問題が生じる。この問題の処理について知られている方法は、負荷分割法を含んでおり、この場合において、前記負荷はラウンドロビンに基づいて多数のサーバに亘り分散され、動作待機方式は、リクエストが代替サーバの待機状態を除いて通常送信される動作としてサーバが設計されている場合に、動作不能であるリクエストを処理する。前記動作が再度リクエストを処理できる場合、前記リクエストは動作に再度送信される。しかしながら、これらのアプローチのどちらも満足なものではない。前記アプローチは関連するサーバサイズを考慮しないので、該多様なサーバの容量が大きく異なる場合には、ラウンドロビン負荷分割法は不適当である。動作待機状態は、前記リクエスト容量が単一サーバの容量を超える場合には不適切である。
【0003】
例えば、サーバが他のクライアントからのリクエストを処理しているという理由、又はメインテナンス作業やアーカイブのような他の理由により、任意の所定のサーバの有効な容量は、時間によってかなり変化し得る。
【0004】
本発明は、上記に概説した問題に取り組み、多数のサーバに対するリクエストの改善処理を提供することを目的とする。
【発明の開示】
【課題を解決するための手段】
【0005】
本発明は、クライアントノードから複数のサーバを有するサーバシステムのサーバに対するリクエストを分配する方法であって、
各サーバのアクティビティを測定することと、
前記測定されるサーバアクティビティから複数のサーバの相対ローディング(relative loadings)を評価することと、
相対ローディングの評価に従ってリクエストの分配を複数のサーバの個々のサーバに適合させることと、の段階を周期的に繰り返すことを含む方法において、
要求の分配を個々のサーバに適合させることが、測定されるサーバアクティビティ、前記複数のサーバに渡る平均アクティビティ、前記サーバに割り当てられるリクエストの存在割合の関数として、各サーバに割り当てられるリクエストの割合に適合させることから成ることを特徴とする方法を提供することにある。
【0006】
本発明はまた、クライアントノードから複数のサーバを有するサーバシステムのサーバに対するリクエストを分配するシステムであって、
前記分配器が、各サーバのアクティビティを測定する手段と、前記測定されるサーバアクティビティから複数のサーバの相対ローディングを評価する手段と、相対ローディングの評価に従ってリクエストの分配を複数のサーバの個々のサーバに調整する手段と、を含んでいるシステムにおいて、
前記分配調整手段が、測定されるサーバアクティビティ、前記複数のサーバに渡る前記平均アクティビティ、及び前記サーバに割り当てられる要求の存在割合の関数として各サーバに割り当てられるリクエストの割合に適合させる手段から成ることを特徴とするシステムを提供する。
【0007】
本発明の実施例は、負荷分配が、関連する容量を考慮すると、サーバに亘って一様であり得るという優位性を備えている。
【0008】
望ましくは、前記クライアントノードは、前記複数のサーバの全サーバに分配されるリクエストにロード制御アルゴリズムを適用するための負荷コントローラから成る。これは、負荷が全サーバのオーバーローディングを妨げるように制御され、前記分配器が前記複数のサーバを単一サーバであるように見せるという優位性を持つ。
【0009】
望ましくは、サーバアクティビティは、ある期間のサーバリクエスト及びレスポンスの数を数えることによって測定される。望ましくは、この期間は、リクエストの総計数である。
【0010】
望ましくは、相対ローディングの評価は、前記サンプル期間の前記サーバの各々に対する前記サーバリクエスト及びレスポンスを比較することから成る。
【0011】
望ましくは、サーバのリクエスト分配は、測定されるサーバアクティビティ、全サーバに渡る平均アクティビティ、及びサーバに割り当てられるリクエストの存在割合の関数に従って調整される。
【0012】
望ましくは、オーバーライド機能が提供され、それによって、先行リクエストに関するリクエストが、前記先行リクエストと同じサーバに送信される。
【発明を実施するための最良の形態】
【0013】
ここで、以下の添付図を参照し、例を通じて、本発明の実施例について述べる。
【0014】
図1を参照すると、描写される実施例は、各クライアントノード12内部のリクエスト分配器ユニット10に基づいている。前記リクエスト分配器は、前記クライアントノードの内部に発生させられるローカルリクエスト14と外部インターフェースを介して受信される外部リクエスト16の両方を受信する。前記分配器は、サーバ1を示す18、サーバ2を示す20、及びサーバnを示す22のように示される、n個のサーバの間のサーバリクエストに分配する。前記クライアントノードはまた、ロード制御アルゴリズムを実行するロード制御ユニット24から成る。前記分配器は、リモートサーバに一様にロードすることを確実にする。前記分配器は、前記ロード制御アルゴリズムによって終端に効果的に向かう。
【0015】
図1に例証されるアーキテクチャにより、同じロード制御は外部リクエスト及び前記クライアントノードでローカルに起こるリクエストに利用されるようになる。また、前記分配器は、サーバネットワークを前記ロード制御アルゴリズムに対する単一ノードのように見せる。これは前記分配器を前記サーバと前記ロード制御の間に論理的に位置を定めることよりも図1から理解される。
【0016】
リクエストに基づくことによってリクエストに関するサーバに負荷を分配することは、リクエストが初期のリクエストに関係する場合には動作しない。前記分配器は、幾つかのリクエストの部分を同じサーバに送信するオーバーライド機能を含んでいる。これは、典型的には、前記サーバが後続のリクエストを処理するのに必要とされる最初のリクエストから得られる内容を記憶する場合に必要である。
【0017】
前記分配器に対する前記UMLユースケースが、図2に示される。前記ローカルアプリケーション又はリモートクライアント26、タイム28、及びリモートサーバ30がシステムから遠く離れているように示されている。図は、前記分配器が、サーバからのレスポンス32及び分配とレスポンスに基づく幾つかの測定34に従って31のサーバリクエストを分配することを示している。前記分配はタイム36を介して再評価される。
【0018】
クライアントノードの外部又は内部である、前記サーバリクエストの出所に関係なく、サーバリクエストを1組の利用できるサーバに分配する3つの必要性が以下のように識別される。
1.できる限り一様に利用できるサーバにロードすること
2.新しいロードの不均衡を引き起こす過去のロードの不均衡に対して過度に反応しないことによってサーバロードの高周波振幅を避けること
3.オーバーライドリクエストが分配アルゴリズムにかかわらず特定サーバに固執できること
【0019】
オーバーライドリクエストの必要性は、後続のリクエストが先行するリクエストを処理したサーバで作り出されたコンテキストデータを必要とする場合に生じる。前記先行リクエストに対するレスポンスは、どのサーバがそれを処理したかが示されている。
【0020】
利用される分配は、望ましくは、広い適用範囲を確実にするためにクライアントサーバプロトコルの特定の細目には依存していない。描写している実施例において、異なるサーバに対する測定は、相対ローディングを評価するために比較される。後続のリクエストの分配は、その後、前記サーバ測定をその平均に収束するために調整される。従って、前記サーバのローディングは、再度バランスをとる。このアプローチは、サーバがローディングの相対的測定である場合に個々のサーバが負荷をかけられ過ぎているかを考えていないため、完全な制御メカニズムを提供していない。負荷をかけ過ぎているサーバを避けることがクライアントノードに関係する場合、前記クライアントノードは、例えば図1の24に示すように分配器の前に分離したロード制御アルゴリズムを取り入れる。前記ロード制御アルゴリズムは、全サーバに対する総計のトラフィックの測定から実行する。リクエストトラフィックを中止するサーバノードに適合するロード制御方式は、リクエスト分配器を有するクライアントノードに等しく適合するべきである。ロード制御は本質的でないことが理解されるべきである。
【0021】
上記に概説したアプローチは、相対ローディングの測定に基づいている。リクエストとレスポンスの数及びその割合変化、(平均、95パーセント、及び標準偏差のような)応答時間分布、及び応答保留状態を有するリクエスト数のようなトラフィック関連量を測定することが可能である。これらは全て汎用測定であるが、それらは、過負荷状態から切り離す閾値が、通常、プロトコル及び/又は特定アプリケーションであるという問題を多かれ少なかれ欠点としてもつ。例えば、1つのアプリケーションに対して十分な応答時間を構成することが、別のアプリケーションに対しては受け入れられないことになり得る。従って、絶対値に対して測定のテストに基づいたデザインは不十分である。
【0022】
相対ローディングの測定に基づいたアプローチに加えて、幾つかのプロトコルは、負荷がかけられ過ぎている場合、サーバに対してクライアントリクエストを拒否するための明確な機能を含んでいる。これらの拒否されたリクエストを分配器で区別してカウントすることは、分配を制御するのに用いられる測定の付加的セットを提供する。
【0023】
図3から7は、分配器の生成されるUMLクラス及びシーケンスの図を示す。図3は3つの構成要素、サーバ38、リクエスト40、及びレスポンス42を示しているUMLクラスの図である。サーバは、測定、割合の属性を有し、リクエストは、タイムスタンプ、取引IDとオーバーライドの属性を有し、レスポンスは、タイムスタンプと取引IDの属性を有する。サーバは、オペレーションリード及び更新を有する。
【0024】
図4は、クライアント又はローカルアプリケーション、及びリモートサーバ42、44が分配器システムの外側に示される、分配ユースケースに対するシーケンスを示す。リクエスト46は分配器に送信され、リードオペレーション48は最新の割合を得るためにあらゆるサーバオブジェクトインスタンスで実行され、サーバオブジェクトからレスポンス50を受信することを含んでいる。リクエスト52は、その後、相対ローディングにより適切なリモートサーバ44に分配される。
【0025】
図5はレスポンスユースケースに対するシーケンスを示す。ここで、リモートサーバ44は、クライアント又はローカルアプリケーション42にレスポンスを送信する分配器制御(Distributor_Control)にレスポンスを送信する。図6は、測定値51に対する更新が分配制御(Distribution_Control)とサーバオブジェクト(Server_Objects)の間で行われ、分配制御(Distribution_Control)へ56を返信する、測定ユースケースに対するシーケンスを示す。
【0026】
図7は、再評価ユースケースのシーケンスを示す。ここでの外部制御はタイム58である。周期的イベントであるタイマーの終了の時に、リード測定がサーバオブジェクトから分配器によってなされ、更新がなされる。両方ともサーバオブジェクトからのレスポンスを受信し、両方ともサーバオブジェクトのあらゆるインスタンスで生じる。
【0027】
分配アルゴリズムは、サーバの追加及び除去によって中断されてはならない。他のアルゴリズムが可能ではあるが、要素方式(parts scheme)による分配が望ましい。望ましい方式の下、サーバの割合は、容量による割合として表される。例えば、サーバのうちの1つが他の2つの容量の2倍である3つのサーバの場合において、割合は1:2:1として表現される。
【0028】
各サーバに割り当てられる要素の数は、P1、P2、P3...Pnである。上記の1:2:1の場合において、P1=1、P2=2、及びP3=3である。分配アルゴリズムは、各時間間隔に対してサーバ強度を記憶し、第1サーバから最後のサーバにこれらの数を追加方式で追加する。従って、P1-P2の範囲がサーバ2に割り当てられ、P2-P3の範囲がサーバ3に割り当てられる。各サーバリクエストに対して、ランダムナンバーはΣPr(r=1-n)に対して範囲0で発生させられる。ランダムナンバーが存在する範囲内のサーバが、リクエストが送信されるサーバである。
【0029】
発生するランダムナンバーがインターバル境界値の1つに等しい場合、タイブレーカールールが適用される。
【0030】
分配器が起動する場合、全てのサーバは同じ容量を有することを仮定し、それぞれに対して同じ割合を割り当てる。値1を適用するよりもむしろ10のような大きな値は、上向きの調整と同様に下向きに対しても適用される。
【0031】
図8は、分配ユースケースのUMLアクティビティ図を示す。60では、値Bはゼロに設定される。ボックス62内では、サーバの範囲は、各サーバに対して繰り返される。これは、各サーバオブジェクト64から割合Pを読み出す段階を伴い、サーバ66に対して(B+P+1)の範囲Bを割り当て、その後、68でB=B+Pの値Bをリセットする。ランダムナンバーRは、その後、70で発生し、72で値XがX=R mod Bのように設定され、範囲がXを含むサーバが選択され、76でリクエストがそのサーバに送信される。
【0032】
前述の描写において、どのサーバがリクエストを送信するかという選択が、サーバローディングの相対的測定に基づいているということ、及び、分配がサーバの容量に基づいたアルゴリズムを用いて成し遂げられるということが確立されている。以下の描写は、サーバローディングの測定に関係し、サーバローディングを測定する3つの可能な方法:応答時間測定、未処理のレスポンスカウント、及びリクエストとレスポンスのカウントを描写する。最後が特に望ましいが、前の2つの方法も可能である。他の方法もまた、可能であり、当業者であれば思い浮かぶであろう。
【0033】
応答時間測定
分配器は、各サーバの応答時間分布を計算することができる。相対ローディングは、その時、選択された測定、例えば平均又は95パーセントを直接比較することによって評価される。サーバが負荷をかけられ過ぎる場合、その応答時間について急激な増加を示す。この解決策は、全てのサーバに対して実行される段階120の応答時間測を示す図12のフローチャートにおいて例証され、これは段階122の応答時間の分配の比較に続く。このアプローチは可能ではあるが、多くの問題を抱えている。
【0034】
第1に、個々のサーバは、通常動作する自然応答時間が実質的に異なり、過負荷のサーバを識別することをより難しくさせている。第2に、応答時間サンプルの一定の最小数は、統計的分配が確実に評価され得る前に選択されなければならない。これは、サンプル期間が長すぎることを導き、分配器は変更に対してその反応が鈍すぎる。第3に、分配器はタイミングを得るための適切なリクエストとレスポンスを関連させなければならない。
【0035】
未処理レスポンスカウント
択一的に、分配器は、少なくとも1つのレスポンスを受信しなかった各サーバに送信されるリクエストの数のカウントを保持する。これは連続する測定であり、周期的評価は固定の時間間隔か又はリクエストの総計数のどちらかに基づいている。サーバが過負荷になる場合、サーバはその未処理のレスポンスの増加を示すべきである。TCPロード制御は、この原理に基づいている。その処理は、段階124のレスポンスを受信しなかったリクエストのカウント、及び段階126のリクエストの期間又は総計数であるこれらのカウントの比較を示す図13に示される。しかしながら、2つの潜在的な問題がある。第1に、アプローチが、サーバ応答時間中の任意の通常の差異から間接的に影響を受ける。これは、以下に示す基本待ち合わせ理論式に従う。
【0036】
平均同時処理=1秒当たりのトランザクション(tps)のx平均応答時間である。
【0037】
従って、自然に低速サーバから再度強制されるサーバを識別することは難しい。
【0038】
第2に、分配器は、初期レスポンスが送信される場合、未処理のレスポンスカウントが減少するのみになるように、後続のレスポンスからリクエストに対する初期レスポンスを識別しなければならない。これは成し遂げるのが難しい。
【0039】
リクエスト及びレスポンスのカウント
このオプションは、考えられる3つのうちで最も好ましい。分配器は、短いサンプル期間を介して、各サーバに送信されるリクエストの数及び各サーバから反対に受信されるレスポンスの数を記録する。相対ローディングは、その時、サンプル期間のリクエストとレスポンスのカウントを比較することによって評価される。サーバリクエストが100でカウントされ、サーバレスポンスが段階110でカウントされ、比較が段階112になされる方法が図11に示される。この処理は、各サーバに対して繰り返される。
【0040】
リクエスト又はレスポンスの絶対数は、異なる容量のためサーバ間で異なる。しかしながら、負荷をかけられ過ぎていないことを仮定すると、それぞれのサーバに対するリクエスト/レスポンスの割合は、ほとんど同じであるべきである。これは、同じ混合比のリクエストタイプを受信している各サーバを信頼しており、多数のリクエストに対しては正確であるが、リクエストがほとんどない短期間に対しては信頼できない。従って、期間によるよりもむしろ送信されるリクエストの総計数によって定義することが望ましい。
【0041】
相対ローディングを決定するために比較される値に対しては、多くの候補が存在する。レスポンスに対するリクエストの直接の割合は、単なる1つの選択肢である。以下は、幾つかの候補及びそれらの理論上の範囲のリストであって網羅的なリストではない。リストにおいて、Rqはサーバに送信される理論上のリクエスト数であり、Rsは返信されるレスポンス数である。
【0042】
1.Rq/Rs: 0 ⇒ +∞
2.Rs/Rq: 0 ⇒ +∞
3.Rq-Rs: -∞ ⇒ +∞
4.Rs-Rq: -∞ ⇒ +∞
5.Rq/(Rc+Rs): 0 ⇒ 1
6.Rs/(Rs+Rc): 0 ⇒ 1
7.(Rq-Rs)/(Rq+Rs):-1 ⇒ +1
8.(Rs-Rq)/(Rq+Rs):-1 ⇒ +1
【0043】
これらの候補値のうち、1から4は範囲が制限されておらず、これらはゼロレスポンス又はリクエストのサンプル期間の可能性によって生じる。オプション5及び6は、リクエスト又はレスポンスのカウントのどちらかがより大きく強調されている。相対サーバローディングのうちで最も有益であるのは、リクエストとレスポンスのカウントの間の規格化差分であるということが理論的に示されており、オプション7及び8が最も望ましいことが示される。値の極性は、それがローディングを増加させるのか、又は減少させるのかという1つの考察となる。値がオプション7によりローディングが増加するように増加させるべきであることが直感的にわかる。しかしながら、多くのプロトコルはリクエストごとに2以上のレスポンスを平均的に生じるので、最後のオプションのオプション8は、サーバ測定が通常の条件下で実際的である場合に有利である。
【0044】
図9及び10は、リクエスト及びレスポンスが増加するトラフィックに従う場合の2つのサーバのリクエスト及びレスポンスのカウントを示す。図は、時間に対する1秒当たりのメッセージ(mps)の2つのグラフである。図9のサーバは、相対的に大きい容量を有し、図10のサーバは、相対的に小さい容量を有する。2つのサーバは、等しいトラフィックを共有する。図は、サーバがその容量に達して困窮するようになる場合に、どのようにサーバの応答速度が安定状態に達するかを強調する。図9及び10は、1リクエスト当たり平均1.5のレスポンスという仮定条件に基づいている。
【0045】
図10において、より小さな容量のサーバは、時間t1で安定状態に入り始める。この時間で、分配器は、リクエストトラフィックを大きなサーバにシフトし始めるべきである。
【0046】
分配調整
振幅を設定してサーバ分配の任意の調整を過度に補償しないことが重要であることを上述した。周期的に、或いは一定数のリクエスト後、分配器は、各サーバに割り当てられるリクエストトラフィックの特性を調整する必要がある。その対象は、各サーバ間で選択される測定値の不一致を低減することである。これは以下のように行われる。
【0047】
M1、M2、M3...Mnが各サーバに対する最後のサンプル期間に計算された測定量である場合に、μはそれらの演算手段であり、P1、P2、P3...Pnはそれらの各サーバに対して最新の割り当てられた特性であり、r番目のサーバに割り当てられる新しい特性は、以下のような式によって一般に与えられる。
【0048】
Pr=f(Mr, μ, Pr)
【0049】
2つの候補の式及び理論上の範囲は、以下のようになる。
【0050】
1.(1+(Mr-μ)/(|Mr|+|μ|)) x Pc 0 ⇒ 2xPr
2.(1-(Mr-μ)/(|Mr|+|μ|)) x Pc 0 ⇒ 2xPr
【0051】
2つの間の差異は、前記オプション7と8の間の選択において参照される極性選択を反映する。これらの式は、古い値に比例した新しい値を生成し、これにより、割合は算術上の切り捨てにより決してゼロに調整されてはならない。
【0052】
振幅は、2つの方法のうちの1つによって低減される。第1に、最後の新しいサンプル期間からのデータは、次の期間の特性に対する調整を計算するために明示的に結合される。これは、保持されたデータの変化する領域を効果的に利用する。第2に、全ての前のサンプルからのデータが、減衰式を用いて暗示的に結合される。このアプローチの下では、第2の期間調整に対するデータは、真正の第2期間データと第1期間からのデータの平均である。第3期間に対して用いられるデータは、真正の第3期間のデータと第2期間等で用いられたデータの平均である。
【0053】
述べてきた実施例により、サーバの個々の容量を反映してそれらの相対ローディングに基づいた方法で、クライアントノードからの多数のサーバに対するリクエストの分配が可能になる。
【0054】
述べてきた実施例に対し、さまざまな変更が可能であって、それは当業者であれば思い浮かぶであろう。例えば、サーバアクティビティを測定する他の方法が可能であり、他の分配調整式が採用され得る。しかしながら、そのような変更は、添付する請求項によって定義される本発明の範囲内にある。
【図面の簡単な説明】
【0055】
【図1】本発明を包含するリクエスト分配システムの略図を示す。
【図2】図1の分配器に対するUMLユースケース図である。
【図3】相対ローディングを評価するサーバローディングの測定のためのUMLクラスの図である。
【図4】分配ユースケースのシーケンス例である。
【図5】レスポンスユースケースのシーケンス例である。
【図6】測定ユースケースのシーケンス例である。
【図7】再評価ユースケースのシーケンス例である。
【図8】分配ユースケースのUMLアクティビティ図である。
【図9】オーバーローディングの影響を示す比較的大規模なサーバに対するレスポンス及びリクエストのグラフである。
【図10】オーバーローディングの影響を示す比較的小規模なサーバに対するリクエスト及びレスポンスのグラフである。
【図11】アクティビティ測定の第1の実施例を示すフローチャートである。
【図12】アクティビティ測定の第2の実施例を示すフローチャートである。
【図13】アクティビティ測定の第3の実施例を示すフローチャートである。
【0001】
本発明は、クライアントサーバネットワークに関し、より詳細には、リクエストを処理できる多数の代替サーバを、クライアントが有するネットワークに関する。
【背景技術】
【0002】
前記クライアントサーバネットワークにおいて、クライアントが、どのサーバノードに対して所定のリクエストを送信するかを決定する際に問題が生じる。この問題の処理について知られている方法は、負荷分割法を含んでおり、この場合において、前記負荷はラウンドロビンに基づいて多数のサーバに亘り分散され、動作待機方式は、リクエストが代替サーバの待機状態を除いて通常送信される動作としてサーバが設計されている場合に、動作不能であるリクエストを処理する。前記動作が再度リクエストを処理できる場合、前記リクエストは動作に再度送信される。しかしながら、これらのアプローチのどちらも満足なものではない。前記アプローチは関連するサーバサイズを考慮しないので、該多様なサーバの容量が大きく異なる場合には、ラウンドロビン負荷分割法は不適当である。動作待機状態は、前記リクエスト容量が単一サーバの容量を超える場合には不適切である。
【0003】
例えば、サーバが他のクライアントからのリクエストを処理しているという理由、又はメインテナンス作業やアーカイブのような他の理由により、任意の所定のサーバの有効な容量は、時間によってかなり変化し得る。
【0004】
本発明は、上記に概説した問題に取り組み、多数のサーバに対するリクエストの改善処理を提供することを目的とする。
【発明の開示】
【課題を解決するための手段】
【0005】
本発明は、クライアントノードから複数のサーバを有するサーバシステムのサーバに対するリクエストを分配する方法であって、
各サーバのアクティビティを測定することと、
前記測定されるサーバアクティビティから複数のサーバの相対ローディング(relative loadings)を評価することと、
相対ローディングの評価に従ってリクエストの分配を複数のサーバの個々のサーバに適合させることと、の段階を周期的に繰り返すことを含む方法において、
要求の分配を個々のサーバに適合させることが、測定されるサーバアクティビティ、前記複数のサーバに渡る平均アクティビティ、前記サーバに割り当てられるリクエストの存在割合の関数として、各サーバに割り当てられるリクエストの割合に適合させることから成ることを特徴とする方法を提供することにある。
【0006】
本発明はまた、クライアントノードから複数のサーバを有するサーバシステムのサーバに対するリクエストを分配するシステムであって、
前記分配器が、各サーバのアクティビティを測定する手段と、前記測定されるサーバアクティビティから複数のサーバの相対ローディングを評価する手段と、相対ローディングの評価に従ってリクエストの分配を複数のサーバの個々のサーバに調整する手段と、を含んでいるシステムにおいて、
前記分配調整手段が、測定されるサーバアクティビティ、前記複数のサーバに渡る前記平均アクティビティ、及び前記サーバに割り当てられる要求の存在割合の関数として各サーバに割り当てられるリクエストの割合に適合させる手段から成ることを特徴とするシステムを提供する。
【0007】
本発明の実施例は、負荷分配が、関連する容量を考慮すると、サーバに亘って一様であり得るという優位性を備えている。
【0008】
望ましくは、前記クライアントノードは、前記複数のサーバの全サーバに分配されるリクエストにロード制御アルゴリズムを適用するための負荷コントローラから成る。これは、負荷が全サーバのオーバーローディングを妨げるように制御され、前記分配器が前記複数のサーバを単一サーバであるように見せるという優位性を持つ。
【0009】
望ましくは、サーバアクティビティは、ある期間のサーバリクエスト及びレスポンスの数を数えることによって測定される。望ましくは、この期間は、リクエストの総計数である。
【0010】
望ましくは、相対ローディングの評価は、前記サンプル期間の前記サーバの各々に対する前記サーバリクエスト及びレスポンスを比較することから成る。
【0011】
望ましくは、サーバのリクエスト分配は、測定されるサーバアクティビティ、全サーバに渡る平均アクティビティ、及びサーバに割り当てられるリクエストの存在割合の関数に従って調整される。
【0012】
望ましくは、オーバーライド機能が提供され、それによって、先行リクエストに関するリクエストが、前記先行リクエストと同じサーバに送信される。
【発明を実施するための最良の形態】
【0013】
ここで、以下の添付図を参照し、例を通じて、本発明の実施例について述べる。
【0014】
図1を参照すると、描写される実施例は、各クライアントノード12内部のリクエスト分配器ユニット10に基づいている。前記リクエスト分配器は、前記クライアントノードの内部に発生させられるローカルリクエスト14と外部インターフェースを介して受信される外部リクエスト16の両方を受信する。前記分配器は、サーバ1を示す18、サーバ2を示す20、及びサーバnを示す22のように示される、n個のサーバの間のサーバリクエストに分配する。前記クライアントノードはまた、ロード制御アルゴリズムを実行するロード制御ユニット24から成る。前記分配器は、リモートサーバに一様にロードすることを確実にする。前記分配器は、前記ロード制御アルゴリズムによって終端に効果的に向かう。
【0015】
図1に例証されるアーキテクチャにより、同じロード制御は外部リクエスト及び前記クライアントノードでローカルに起こるリクエストに利用されるようになる。また、前記分配器は、サーバネットワークを前記ロード制御アルゴリズムに対する単一ノードのように見せる。これは前記分配器を前記サーバと前記ロード制御の間に論理的に位置を定めることよりも図1から理解される。
【0016】
リクエストに基づくことによってリクエストに関するサーバに負荷を分配することは、リクエストが初期のリクエストに関係する場合には動作しない。前記分配器は、幾つかのリクエストの部分を同じサーバに送信するオーバーライド機能を含んでいる。これは、典型的には、前記サーバが後続のリクエストを処理するのに必要とされる最初のリクエストから得られる内容を記憶する場合に必要である。
【0017】
前記分配器に対する前記UMLユースケースが、図2に示される。前記ローカルアプリケーション又はリモートクライアント26、タイム28、及びリモートサーバ30がシステムから遠く離れているように示されている。図は、前記分配器が、サーバからのレスポンス32及び分配とレスポンスに基づく幾つかの測定34に従って31のサーバリクエストを分配することを示している。前記分配はタイム36を介して再評価される。
【0018】
クライアントノードの外部又は内部である、前記サーバリクエストの出所に関係なく、サーバリクエストを1組の利用できるサーバに分配する3つの必要性が以下のように識別される。
1.できる限り一様に利用できるサーバにロードすること
2.新しいロードの不均衡を引き起こす過去のロードの不均衡に対して過度に反応しないことによってサーバロードの高周波振幅を避けること
3.オーバーライドリクエストが分配アルゴリズムにかかわらず特定サーバに固執できること
【0019】
オーバーライドリクエストの必要性は、後続のリクエストが先行するリクエストを処理したサーバで作り出されたコンテキストデータを必要とする場合に生じる。前記先行リクエストに対するレスポンスは、どのサーバがそれを処理したかが示されている。
【0020】
利用される分配は、望ましくは、広い適用範囲を確実にするためにクライアントサーバプロトコルの特定の細目には依存していない。描写している実施例において、異なるサーバに対する測定は、相対ローディングを評価するために比較される。後続のリクエストの分配は、その後、前記サーバ測定をその平均に収束するために調整される。従って、前記サーバのローディングは、再度バランスをとる。このアプローチは、サーバがローディングの相対的測定である場合に個々のサーバが負荷をかけられ過ぎているかを考えていないため、完全な制御メカニズムを提供していない。負荷をかけ過ぎているサーバを避けることがクライアントノードに関係する場合、前記クライアントノードは、例えば図1の24に示すように分配器の前に分離したロード制御アルゴリズムを取り入れる。前記ロード制御アルゴリズムは、全サーバに対する総計のトラフィックの測定から実行する。リクエストトラフィックを中止するサーバノードに適合するロード制御方式は、リクエスト分配器を有するクライアントノードに等しく適合するべきである。ロード制御は本質的でないことが理解されるべきである。
【0021】
上記に概説したアプローチは、相対ローディングの測定に基づいている。リクエストとレスポンスの数及びその割合変化、(平均、95パーセント、及び標準偏差のような)応答時間分布、及び応答保留状態を有するリクエスト数のようなトラフィック関連量を測定することが可能である。これらは全て汎用測定であるが、それらは、過負荷状態から切り離す閾値が、通常、プロトコル及び/又は特定アプリケーションであるという問題を多かれ少なかれ欠点としてもつ。例えば、1つのアプリケーションに対して十分な応答時間を構成することが、別のアプリケーションに対しては受け入れられないことになり得る。従って、絶対値に対して測定のテストに基づいたデザインは不十分である。
【0022】
相対ローディングの測定に基づいたアプローチに加えて、幾つかのプロトコルは、負荷がかけられ過ぎている場合、サーバに対してクライアントリクエストを拒否するための明確な機能を含んでいる。これらの拒否されたリクエストを分配器で区別してカウントすることは、分配を制御するのに用いられる測定の付加的セットを提供する。
【0023】
図3から7は、分配器の生成されるUMLクラス及びシーケンスの図を示す。図3は3つの構成要素、サーバ38、リクエスト40、及びレスポンス42を示しているUMLクラスの図である。サーバは、測定、割合の属性を有し、リクエストは、タイムスタンプ、取引IDとオーバーライドの属性を有し、レスポンスは、タイムスタンプと取引IDの属性を有する。サーバは、オペレーションリード及び更新を有する。
【0024】
図4は、クライアント又はローカルアプリケーション、及びリモートサーバ42、44が分配器システムの外側に示される、分配ユースケースに対するシーケンスを示す。リクエスト46は分配器に送信され、リードオペレーション48は最新の割合を得るためにあらゆるサーバオブジェクトインスタンスで実行され、サーバオブジェクトからレスポンス50を受信することを含んでいる。リクエスト52は、その後、相対ローディングにより適切なリモートサーバ44に分配される。
【0025】
図5はレスポンスユースケースに対するシーケンスを示す。ここで、リモートサーバ44は、クライアント又はローカルアプリケーション42にレスポンスを送信する分配器制御(Distributor_Control)にレスポンスを送信する。図6は、測定値51に対する更新が分配制御(Distribution_Control)とサーバオブジェクト(Server_Objects)の間で行われ、分配制御(Distribution_Control)へ56を返信する、測定ユースケースに対するシーケンスを示す。
【0026】
図7は、再評価ユースケースのシーケンスを示す。ここでの外部制御はタイム58である。周期的イベントであるタイマーの終了の時に、リード測定がサーバオブジェクトから分配器によってなされ、更新がなされる。両方ともサーバオブジェクトからのレスポンスを受信し、両方ともサーバオブジェクトのあらゆるインスタンスで生じる。
【0027】
分配アルゴリズムは、サーバの追加及び除去によって中断されてはならない。他のアルゴリズムが可能ではあるが、要素方式(parts scheme)による分配が望ましい。望ましい方式の下、サーバの割合は、容量による割合として表される。例えば、サーバのうちの1つが他の2つの容量の2倍である3つのサーバの場合において、割合は1:2:1として表現される。
【0028】
各サーバに割り当てられる要素の数は、P1、P2、P3...Pnである。上記の1:2:1の場合において、P1=1、P2=2、及びP3=3である。分配アルゴリズムは、各時間間隔に対してサーバ強度を記憶し、第1サーバから最後のサーバにこれらの数を追加方式で追加する。従って、P1-P2の範囲がサーバ2に割り当てられ、P2-P3の範囲がサーバ3に割り当てられる。各サーバリクエストに対して、ランダムナンバーはΣPr(r=1-n)に対して範囲0で発生させられる。ランダムナンバーが存在する範囲内のサーバが、リクエストが送信されるサーバである。
【0029】
発生するランダムナンバーがインターバル境界値の1つに等しい場合、タイブレーカールールが適用される。
【0030】
分配器が起動する場合、全てのサーバは同じ容量を有することを仮定し、それぞれに対して同じ割合を割り当てる。値1を適用するよりもむしろ10のような大きな値は、上向きの調整と同様に下向きに対しても適用される。
【0031】
図8は、分配ユースケースのUMLアクティビティ図を示す。60では、値Bはゼロに設定される。ボックス62内では、サーバの範囲は、各サーバに対して繰り返される。これは、各サーバオブジェクト64から割合Pを読み出す段階を伴い、サーバ66に対して(B+P+1)の範囲Bを割り当て、その後、68でB=B+Pの値Bをリセットする。ランダムナンバーRは、その後、70で発生し、72で値XがX=R mod Bのように設定され、範囲がXを含むサーバが選択され、76でリクエストがそのサーバに送信される。
【0032】
前述の描写において、どのサーバがリクエストを送信するかという選択が、サーバローディングの相対的測定に基づいているということ、及び、分配がサーバの容量に基づいたアルゴリズムを用いて成し遂げられるということが確立されている。以下の描写は、サーバローディングの測定に関係し、サーバローディングを測定する3つの可能な方法:応答時間測定、未処理のレスポンスカウント、及びリクエストとレスポンスのカウントを描写する。最後が特に望ましいが、前の2つの方法も可能である。他の方法もまた、可能であり、当業者であれば思い浮かぶであろう。
【0033】
応答時間測定
分配器は、各サーバの応答時間分布を計算することができる。相対ローディングは、その時、選択された測定、例えば平均又は95パーセントを直接比較することによって評価される。サーバが負荷をかけられ過ぎる場合、その応答時間について急激な増加を示す。この解決策は、全てのサーバに対して実行される段階120の応答時間測を示す図12のフローチャートにおいて例証され、これは段階122の応答時間の分配の比較に続く。このアプローチは可能ではあるが、多くの問題を抱えている。
【0034】
第1に、個々のサーバは、通常動作する自然応答時間が実質的に異なり、過負荷のサーバを識別することをより難しくさせている。第2に、応答時間サンプルの一定の最小数は、統計的分配が確実に評価され得る前に選択されなければならない。これは、サンプル期間が長すぎることを導き、分配器は変更に対してその反応が鈍すぎる。第3に、分配器はタイミングを得るための適切なリクエストとレスポンスを関連させなければならない。
【0035】
未処理レスポンスカウント
択一的に、分配器は、少なくとも1つのレスポンスを受信しなかった各サーバに送信されるリクエストの数のカウントを保持する。これは連続する測定であり、周期的評価は固定の時間間隔か又はリクエストの総計数のどちらかに基づいている。サーバが過負荷になる場合、サーバはその未処理のレスポンスの増加を示すべきである。TCPロード制御は、この原理に基づいている。その処理は、段階124のレスポンスを受信しなかったリクエストのカウント、及び段階126のリクエストの期間又は総計数であるこれらのカウントの比較を示す図13に示される。しかしながら、2つの潜在的な問題がある。第1に、アプローチが、サーバ応答時間中の任意の通常の差異から間接的に影響を受ける。これは、以下に示す基本待ち合わせ理論式に従う。
【0036】
平均同時処理=1秒当たりのトランザクション(tps)のx平均応答時間である。
【0037】
従って、自然に低速サーバから再度強制されるサーバを識別することは難しい。
【0038】
第2に、分配器は、初期レスポンスが送信される場合、未処理のレスポンスカウントが減少するのみになるように、後続のレスポンスからリクエストに対する初期レスポンスを識別しなければならない。これは成し遂げるのが難しい。
【0039】
リクエスト及びレスポンスのカウント
このオプションは、考えられる3つのうちで最も好ましい。分配器は、短いサンプル期間を介して、各サーバに送信されるリクエストの数及び各サーバから反対に受信されるレスポンスの数を記録する。相対ローディングは、その時、サンプル期間のリクエストとレスポンスのカウントを比較することによって評価される。サーバリクエストが100でカウントされ、サーバレスポンスが段階110でカウントされ、比較が段階112になされる方法が図11に示される。この処理は、各サーバに対して繰り返される。
【0040】
リクエスト又はレスポンスの絶対数は、異なる容量のためサーバ間で異なる。しかしながら、負荷をかけられ過ぎていないことを仮定すると、それぞれのサーバに対するリクエスト/レスポンスの割合は、ほとんど同じであるべきである。これは、同じ混合比のリクエストタイプを受信している各サーバを信頼しており、多数のリクエストに対しては正確であるが、リクエストがほとんどない短期間に対しては信頼できない。従って、期間によるよりもむしろ送信されるリクエストの総計数によって定義することが望ましい。
【0041】
相対ローディングを決定するために比較される値に対しては、多くの候補が存在する。レスポンスに対するリクエストの直接の割合は、単なる1つの選択肢である。以下は、幾つかの候補及びそれらの理論上の範囲のリストであって網羅的なリストではない。リストにおいて、Rqはサーバに送信される理論上のリクエスト数であり、Rsは返信されるレスポンス数である。
【0042】
1.Rq/Rs: 0 ⇒ +∞
2.Rs/Rq: 0 ⇒ +∞
3.Rq-Rs: -∞ ⇒ +∞
4.Rs-Rq: -∞ ⇒ +∞
5.Rq/(Rc+Rs): 0 ⇒ 1
6.Rs/(Rs+Rc): 0 ⇒ 1
7.(Rq-Rs)/(Rq+Rs):-1 ⇒ +1
8.(Rs-Rq)/(Rq+Rs):-1 ⇒ +1
【0043】
これらの候補値のうち、1から4は範囲が制限されておらず、これらはゼロレスポンス又はリクエストのサンプル期間の可能性によって生じる。オプション5及び6は、リクエスト又はレスポンスのカウントのどちらかがより大きく強調されている。相対サーバローディングのうちで最も有益であるのは、リクエストとレスポンスのカウントの間の規格化差分であるということが理論的に示されており、オプション7及び8が最も望ましいことが示される。値の極性は、それがローディングを増加させるのか、又は減少させるのかという1つの考察となる。値がオプション7によりローディングが増加するように増加させるべきであることが直感的にわかる。しかしながら、多くのプロトコルはリクエストごとに2以上のレスポンスを平均的に生じるので、最後のオプションのオプション8は、サーバ測定が通常の条件下で実際的である場合に有利である。
【0044】
図9及び10は、リクエスト及びレスポンスが増加するトラフィックに従う場合の2つのサーバのリクエスト及びレスポンスのカウントを示す。図は、時間に対する1秒当たりのメッセージ(mps)の2つのグラフである。図9のサーバは、相対的に大きい容量を有し、図10のサーバは、相対的に小さい容量を有する。2つのサーバは、等しいトラフィックを共有する。図は、サーバがその容量に達して困窮するようになる場合に、どのようにサーバの応答速度が安定状態に達するかを強調する。図9及び10は、1リクエスト当たり平均1.5のレスポンスという仮定条件に基づいている。
【0045】
図10において、より小さな容量のサーバは、時間t1で安定状態に入り始める。この時間で、分配器は、リクエストトラフィックを大きなサーバにシフトし始めるべきである。
【0046】
分配調整
振幅を設定してサーバ分配の任意の調整を過度に補償しないことが重要であることを上述した。周期的に、或いは一定数のリクエスト後、分配器は、各サーバに割り当てられるリクエストトラフィックの特性を調整する必要がある。その対象は、各サーバ間で選択される測定値の不一致を低減することである。これは以下のように行われる。
【0047】
M1、M2、M3...Mnが各サーバに対する最後のサンプル期間に計算された測定量である場合に、μはそれらの演算手段であり、P1、P2、P3...Pnはそれらの各サーバに対して最新の割り当てられた特性であり、r番目のサーバに割り当てられる新しい特性は、以下のような式によって一般に与えられる。
【0048】
Pr=f(Mr, μ, Pr)
【0049】
2つの候補の式及び理論上の範囲は、以下のようになる。
【0050】
1.(1+(Mr-μ)/(|Mr|+|μ|)) x Pc 0 ⇒ 2xPr
2.(1-(Mr-μ)/(|Mr|+|μ|)) x Pc 0 ⇒ 2xPr
【0051】
2つの間の差異は、前記オプション7と8の間の選択において参照される極性選択を反映する。これらの式は、古い値に比例した新しい値を生成し、これにより、割合は算術上の切り捨てにより決してゼロに調整されてはならない。
【0052】
振幅は、2つの方法のうちの1つによって低減される。第1に、最後の新しいサンプル期間からのデータは、次の期間の特性に対する調整を計算するために明示的に結合される。これは、保持されたデータの変化する領域を効果的に利用する。第2に、全ての前のサンプルからのデータが、減衰式を用いて暗示的に結合される。このアプローチの下では、第2の期間調整に対するデータは、真正の第2期間データと第1期間からのデータの平均である。第3期間に対して用いられるデータは、真正の第3期間のデータと第2期間等で用いられたデータの平均である。
【0053】
述べてきた実施例により、サーバの個々の容量を反映してそれらの相対ローディングに基づいた方法で、クライアントノードからの多数のサーバに対するリクエストの分配が可能になる。
【0054】
述べてきた実施例に対し、さまざまな変更が可能であって、それは当業者であれば思い浮かぶであろう。例えば、サーバアクティビティを測定する他の方法が可能であり、他の分配調整式が採用され得る。しかしながら、そのような変更は、添付する請求項によって定義される本発明の範囲内にある。
【図面の簡単な説明】
【0055】
【図1】本発明を包含するリクエスト分配システムの略図を示す。
【図2】図1の分配器に対するUMLユースケース図である。
【図3】相対ローディングを評価するサーバローディングの測定のためのUMLクラスの図である。
【図4】分配ユースケースのシーケンス例である。
【図5】レスポンスユースケースのシーケンス例である。
【図6】測定ユースケースのシーケンス例である。
【図7】再評価ユースケースのシーケンス例である。
【図8】分配ユースケースのUMLアクティビティ図である。
【図9】オーバーローディングの影響を示す比較的大規模なサーバに対するレスポンス及びリクエストのグラフである。
【図10】オーバーローディングの影響を示す比較的小規模なサーバに対するリクエスト及びレスポンスのグラフである。
【図11】アクティビティ測定の第1の実施例を示すフローチャートである。
【図12】アクティビティ測定の第2の実施例を示すフローチャートである。
【図13】アクティビティ測定の第3の実施例を示すフローチャートである。
Claims (23)
- クライアントノードからのリクエストを複数のサーバを有するサーバシステムのサーバに分配する方法であって、
各サーバのアクティビティを測定する段階と、
前記測定されたサーバアクティビティから前記複数のサーバの相対ローディング(relative loadings)を評価する段階と、
相対ローディングの評価に従って前記複数のサーバの個々のサーバに対するリクエストの分配を調整する段階と、を周期的に繰り返す段階を有する方法において、
個々のサーバに対してリクエストの分配を調整する段階が、測定されたサーバアクティビティ、前記複数のサーバに亘る平均アクティビティ、及び前記サーバに割り当てられるリクエストの現存する割合の関数として各サーバに割り当てられるリクエストの割合を調整する段階を有することを特徴とする方法。 - 各サーバの前記アクティビティを測定することが、前記複数のサーバの各々に対するサーバリクエストの数をカウントし、サンプル期間に各サーバから受信されるサーバレスポンスの数をカウントする段階を有することを特徴とする請求項1に記載の方法。
- 前記サンプル期間が一定時間の周期であることを特徴とする請求項2に記載の方法。
- 前記サンプル期間が、前記複数のサーバに送信されるリクエストの総計数から成ることを特徴とする請求項2に記載の方法。
- 前記複数のサーバの相対ローディングを評価することが、前記サンプル期間における前記複数のサーバの各々に対する前記サーバリクエスト及びレスポンスを比較することから成ることを特徴とする請求項2、3、又は4に記載の方法。
- 各サーバの前記アクティビティを測定することが、各サーバの前記応答時間を計算することから成ることを特徴とする請求項1に記載の方法。
- 前記複数のサーバの相対ローディングを評価することが、前記複数のサーバの各々に対する前記サーバ応答時間の分布を比較することから成ることを特徴とする請求項6に記載の方法。
- 各サーバの前記アクティビティを測定することが、レスポンスを受信しなかった各サーバに対するリクエストの数をカウントすることから成ることを特徴とする請求項1に記載の方法。
- 前記複数のサーバの前記相対ローディングを評価することが、前記複数のサーバ全てに対するリクエストの時間間隔又は総計数のどちらに対するレスポンスもなくしてリクエストの数を比較することから成ることを特徴とする請求項8に記載の方法。
- リクエストの分配を調整することが、次のサンプル期間の分配に対する調整を計算するために先のサンプル期間からの分配データを結合することから成ることを特徴とする請求項1に記載の方法。
- リクエストの分配を調整することが、遅延の式に従う先のサンプル期間からのデータを結合することから成ることを特徴とする請求項1又は10に記載の方法。
- 前記相対ローディングが、Rqが前記サーバに送信されるリクエストの数であり、Rsが前記サーバから返信されるレスポンスの数である場合の割合(Rq-Rs)/(Rq+Rs)を比較することによって比較されることを特徴とする請求項5に記載の方法。
- 前記相対ローディングが、Rqが前記サーバに送信されるリクエストの数であり、Rsが前記サーバから返信されるレスポンスの数である場合の割合(Rs-Rq)/(Rq+Rs)を比較することによって比較されることを特徴とする請求項5に記載の方法。
- クライアントノードの分配器から成り、クライアントノードから複数のサーバを有するサーバシステムのサーバへリクエストを分配するシステムであって、
前記分配器が、各サーバの前記アクティビティを測定する手段と、前記測定されたサーバアクティビティからの前記複数のサーバの前記相対ローディングを評価する手段と、相対ローディングの前記評価に従って前記複数のサーバの個々のサーバに対するリクエストの分配を調整する手段と、を含んでいるシステムにおいて、
前記分配調整手段が、測定されるサーバアクティビティ、前記複数のサーバを横切る平均アクティビティ、及び前記サーバに割り当てられるリクエストの現存する割合の関数として、各サーバに割り当てられるリクエストの割合を調整する手段から成ることを特徴とするシステム。 - サーバアクティビティを測定する前記手段が、前記複数のサーバの各々に送信されるサーバリクエストの数をカウントし、サンプル期間に各サーバから受信されるサーバレスポンスの数をカウントするためのカウンタから成ることを特徴とする請求項14に記載のシステム。
- 前記相対ローディング評価手段が、前記サンプル期間における前記複数のサーバの各々に対する前記サーバリクエストとレスポンスを比較する手段から成ることを特徴とする請求項15に記載のシステム。
- 前記アクティビティ測定手段が、各サーバの応答時間を計算するための計算手段から成ることを特徴とする請求項14に記載のシステム。
- 前記相対ローディング評価手段が、前記複数のサーバの各々に対するサーバ応答時間の分布を比較する手段から成ることを特徴とする請求項17に記載のシステム。
- 前記アクティビティ測定手段が、レスポンスを受信しなかった各々のサーバに対するリクエストの数をカウントするためのカウンタから成ることを特徴とする請求項14に記載のシステム。
- 前記相対ローディング評価手段が、前記複数のサーバ全てに対するリクエストの時間間隔又は総計数のどちらに対するレスポンスもなくしてリクエストの数を比較するための比較測定器から成ることを特徴とする請求項19に記載のシステム。
- 前記リクエスト分配調整手段が、次のサンプル期間の分配に対する調整を計算するために先のサンプル期間からの分配データを結合する結合器から成ることを特徴とする請求項14に記載のシステム。
- サーバリクエストとレスポンスを比較する前記手段が、Rqが前記サーバに送信されるリクエストの数であり、Rsが前記サーバから返信されるレスポンスの数である場合の割合(Rq-Rs)/(Rq+Rs)を比較することを特徴とする請求項17に記載のシステム。
- サーバリクエストとレスポンスを比較する前記手段が、Rqが前記サーバに送信されるリクエストの数であり、Rsが前記サーバから返信されるレスポンスの数である場合の割合(Rs-Rq)/(Rq+Rs)を比較することによって比較されることを特徴とする請求項17に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0122507.7A GB0122507D0 (en) | 2001-09-18 | 2001-09-18 | Client server networks |
PCT/GB2002/004234 WO2003026244A2 (en) | 2001-09-18 | 2002-09-18 | Client server networks |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005503626A true JP2005503626A (ja) | 2005-02-03 |
Family
ID=9922293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003529726A Pending JP2005503626A (ja) | 2001-09-18 | 2002-09-18 | クライアントサーバネットワーク |
Country Status (10)
Country | Link |
---|---|
US (1) | US7519710B2 (ja) |
EP (1) | EP1430684B1 (ja) |
JP (1) | JP2005503626A (ja) |
CN (1) | CN100459608C (ja) |
AT (1) | ATE291809T1 (ja) |
AU (1) | AU2002331949A1 (ja) |
CA (1) | CA2459575C (ja) |
DE (1) | DE60203404T2 (ja) |
GB (1) | GB0122507D0 (ja) |
WO (1) | WO2003026244A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5189974B2 (ja) * | 2006-04-26 | 2013-04-24 | 日本電信電話株式会社 | 負荷制御装置およびその方法 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2005266945A1 (en) | 2004-07-23 | 2006-02-02 | Citrix Systems, Inc. | A method and systems for securing remote access to private networks |
EP1771998B1 (en) | 2004-07-23 | 2015-04-15 | Citrix Systems, Inc. | Systems and methods for optimizing communications between network nodes |
US9606821B2 (en) * | 2004-12-17 | 2017-03-28 | Intel Corporation | Virtual environment manager for creating and managing virtual machine environments |
US7810089B2 (en) | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
EP2757757B1 (en) * | 2004-12-30 | 2018-08-15 | Citrix Systems, Inc. | Systems and methods for providing client-side acceleration techniques |
US8954595B2 (en) | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
US20070168405A1 (en) * | 2006-01-17 | 2007-07-19 | Ori Pomerantz | Self-optimizing network attached storage for multiple geographic locations |
US20100036903A1 (en) * | 2008-08-11 | 2010-02-11 | Microsoft Corporation | Distributed load balancer |
US20100302944A1 (en) * | 2009-05-29 | 2010-12-02 | Bessis Thierry C | System & method for load spreading |
CN102195851A (zh) | 2010-03-09 | 2011-09-21 | 华为技术有限公司 | 负载分担方法、系统和接入服务器 |
EP2395710B1 (en) * | 2010-06-08 | 2013-11-06 | Alcatel Lucent | Device and method for data load balancing |
CN102195876B (zh) * | 2011-03-21 | 2014-07-02 | 北京神州绿盟信息安全科技股份有限公司 | 一种网络任务分配设备、系统和方法 |
US8589480B2 (en) * | 2011-05-24 | 2013-11-19 | Sony Computer Entertainment America Llc | Automatic performance and capacity measurement for networked servers |
CN102932389B (zh) * | 2011-08-11 | 2016-06-22 | 阿里巴巴集团控股有限公司 | 一种请求处理方法、装置及服务器系统 |
US9448849B2 (en) * | 2011-08-31 | 2016-09-20 | Oracle International Corporation | Preventing oscillatory load behavior in a multi-node distributed system |
WO2017117040A1 (en) * | 2015-12-31 | 2017-07-06 | Affirmed Networks, Inc. | Adaptive peer overload control in mobile networks |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5377327A (en) * | 1988-04-22 | 1994-12-27 | Digital Equipment Corporation | Congestion avoidance scheme for computer networks |
US5664106A (en) * | 1993-06-04 | 1997-09-02 | Digital Equipment Corporation | Phase-space surface representation of server computer performance in a computer network |
US5649103A (en) * | 1995-07-13 | 1997-07-15 | Cabletron Systems, Inc. | Method and apparatus for managing multiple server requests and collating reponses |
US6078943A (en) * | 1997-02-07 | 2000-06-20 | International Business Machines Corporation | Method and apparatus for dynamic interval-based load balancing |
US6173322B1 (en) * | 1997-06-05 | 2001-01-09 | Silicon Graphics, Inc. | Network request distribution based on static rules and dynamic performance data |
US5946686A (en) * | 1997-07-11 | 1999-08-31 | International Business Machines Corporation | Parallel file system and method with quota allocation |
US6697103B1 (en) * | 1998-03-19 | 2004-02-24 | Dennis Sunga Fernandez | Integrated network for monitoring remote objects |
US6138159A (en) * | 1998-06-11 | 2000-10-24 | Phaal; Peter | Load direction mechanism |
US6327622B1 (en) | 1998-09-03 | 2001-12-04 | Sun Microsystems, Inc. | Load balancing in a network environment |
JP3270012B2 (ja) * | 1998-09-08 | 2002-04-02 | 富士通株式会社 | ネットワークサーバ負荷検出装置、割当装置および方法 |
JP2003527763A (ja) * | 1998-10-16 | 2003-09-16 | シルバーストリーム・ソフトウェア・インコーポレーテッド | 分散オブジェクト・システム用の接続集線装置 |
JP3550503B2 (ja) * | 1998-11-10 | 2004-08-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 通信を可能とするための方法及び通信システム |
US6587881B1 (en) * | 1999-04-09 | 2003-07-01 | Microsoft Corporation | Software server usage governor |
US6560717B1 (en) * | 1999-12-10 | 2003-05-06 | Art Technology Group, Inc. | Method and system for load balancing and management |
US20030046394A1 (en) * | 2000-11-03 | 2003-03-06 | Steve Goddard | System and method for an application space server cluster |
US7321926B1 (en) * | 2002-02-11 | 2008-01-22 | Extreme Networks | Method of and system for allocating resources to resource requests |
-
2001
- 2001-09-18 GB GBGB0122507.7A patent/GB0122507D0/en not_active Ceased
-
2002
- 2002-09-18 US US10/490,040 patent/US7519710B2/en not_active Expired - Fee Related
- 2002-09-18 JP JP2003529726A patent/JP2005503626A/ja active Pending
- 2002-09-18 AU AU2002331949A patent/AU2002331949A1/en not_active Abandoned
- 2002-09-18 CN CNB028227875A patent/CN100459608C/zh not_active Expired - Fee Related
- 2002-09-18 WO PCT/GB2002/004234 patent/WO2003026244A2/en active IP Right Grant
- 2002-09-18 CA CA2459575A patent/CA2459575C/en not_active Expired - Lifetime
- 2002-09-18 AT AT02767647T patent/ATE291809T1/de not_active IP Right Cessation
- 2002-09-18 DE DE60203404T patent/DE60203404T2/de not_active Expired - Lifetime
- 2002-09-18 EP EP02767647A patent/EP1430684B1/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5189974B2 (ja) * | 2006-04-26 | 2013-04-24 | 日本電信電話株式会社 | 負荷制御装置およびその方法 |
US8667120B2 (en) | 2006-04-26 | 2014-03-04 | Nippon Telegraph And Telephone Corporation | Load control device and method thereof for controlling requests sent to a server |
Also Published As
Publication number | Publication date |
---|---|
CN1589558A (zh) | 2005-03-02 |
CN100459608C (zh) | 2009-02-04 |
EP1430684B1 (en) | 2005-03-23 |
ATE291809T1 (de) | 2005-04-15 |
DE60203404D1 (de) | 2005-04-28 |
CA2459575C (en) | 2012-07-24 |
DE60203404T2 (de) | 2005-09-08 |
CA2459575A1 (en) | 2003-03-27 |
AU2002331949A1 (en) | 2003-04-01 |
US20050038891A1 (en) | 2005-02-17 |
EP1430684A2 (en) | 2004-06-23 |
WO2003026244A3 (en) | 2003-06-19 |
US7519710B2 (en) | 2009-04-14 |
GB0122507D0 (en) | 2001-11-07 |
WO2003026244A2 (en) | 2003-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005503626A (ja) | クライアントサーバネットワーク | |
US11546644B2 (en) | Bandwidth control method and apparatus, and device | |
US7882230B2 (en) | Method and system for dynamically allocating servers to compute-resources using capacity thresholds | |
US7400633B2 (en) | Adaptive bandwidth throttling for network services | |
EP3453148B1 (en) | System and method for latency-based queuing | |
JP4593812B2 (ja) | データ交換システム及び方法 | |
US7062556B1 (en) | Load balancing method in a communication network | |
EP1102442B1 (en) | Device for measuring load on network server, and allotting device and method | |
US8370517B2 (en) | Conserving energy in a data processing network | |
CN106385459B (zh) | 一种连接请求报文的分配方法及装置 | |
US20030229693A1 (en) | Self-correcting monitor | |
US20070143460A1 (en) | Load-balancing metrics for adaptive dispatching of long asynchronous network requests | |
US10623482B2 (en) | Server load management for data migration | |
CN117014381A (zh) | 流量控制方法、装置、计算机设备及计算机存储介质 | |
US6009473A (en) | Using callbacks to effectively manage resources | |
JP2001202318A (ja) | データ配信システム | |
JP4595274B2 (ja) | 負荷分散方法及び負荷分散装置 | |
Yang et al. | Random early detection web servers for dynamic load balancing | |
Li et al. | An adaptive load balancing algorithm based on discrete uniform distribution |