JP4916809B2 - 負荷分散制御装置および方法 - Google Patents

負荷分散制御装置および方法 Download PDF

Info

Publication number
JP4916809B2
JP4916809B2 JP2006213023A JP2006213023A JP4916809B2 JP 4916809 B2 JP4916809 B2 JP 4916809B2 JP 2006213023 A JP2006213023 A JP 2006213023A JP 2006213023 A JP2006213023 A JP 2006213023A JP 4916809 B2 JP4916809 B2 JP 4916809B2
Authority
JP
Japan
Prior art keywords
server
request
response
requests
waiting
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.)
Active
Application number
JP2006213023A
Other languages
English (en)
Other versions
JP2008040718A (ja
Inventor
亮介 榑林
和昭 尾花
修 石田
修 野口
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.)
NTT Advanced Technology Corp
Nippon Telegraph and Telephone Corp
Original Assignee
NTT Advanced Technology Corp
Nippon Telegraph and Telephone Corp
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 NTT Advanced Technology Corp, Nippon Telegraph and Telephone Corp filed Critical NTT Advanced Technology Corp
Priority to JP2006213023A priority Critical patent/JP4916809B2/ja
Publication of JP2008040718A publication Critical patent/JP2008040718A/ja
Application granted granted Critical
Publication of JP4916809B2 publication Critical patent/JP4916809B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、1つ以上のクライアントと2つ以上のサーバとの間に配置され、クライアントから受信したリクエストをサーバのいずれかに転送し、当該リクエストに対してサーバから返却されるレスポンスをクライアントに転送する装置に利用する。特に、サーバへのリクエストの分配とスケジューリングに関する。
なお、本明細書では、Webサーバに着目して説明するが、他のサーバへの本発明の適用も可能であり、同様の効果を発揮する。
インターネットの普及に伴い、ネットワークを介して様々なサービスを利用できるようになっている。メール、ホームページの閲覧、検索、オンライン取引、IP電話、ビデオオンデマンドなどは、その一例である。これらのネットワークサービスは様々な形態で提供し得るが、近年、クライアントとのインタフェースとして、Webサーバの利用が主流となっている。
Webサーバを用いたサービス(Webサービス)の基本的な仕組みは以下のとおりである。まず、クライアントがWebサーバに対して、取得したいコンテンツを識別するURL(Uniform Resource Locator)を付与したりリクエストを送信する。Webサーバがリクエストを受け取ると、リクエスト中のURLに対応するコンテンツをレスポンスとしてクライアントに送り返す。Webサービスは、このリクエスト−レスポンスの繰り返しによって提供される。
本明細書では、Webサービスを行うサーバシステム全体をWebサーバ、また、Webサーバ上でリクエストに応じたコンテンツを生成する機能をWebアプリケーションと呼ぶ。
Webサービスが普及するにつれて、サービスを快適に利用していくための課題も明らかになりつつある。その課題の一つとして、サービス利用が集中した際の過剰トラヒックへの対応が挙げられる。サービス利用の集中の例として、人気の高い銘柄の株やチケットの売買によるリクエスト集中や、災害発生時の見舞呼などがある。また、悪意のあるクライアントによって、再送を過剰に要求するF5アタックなどの無意味なリクエストが大量に送信される場合もある。これらの要因によって、Webサーバにリクエストが過剰に送信されると、Webサーバにおいて、リクエストの取りこぼしや、リクエスト処理性能の低下が生じる。
図1は、リクエスト過剰によるWebサーバのリクエストの取りこぼし、リクエストの処理性能の低下を示す実験結果である。実験では、あるWebサーバに対して、入力リクエストレート、すなわち、単位時間当りのリクエスト数(rps)を変化させてリクエストを送信する。そして、スループット、すなわち、Webサーバが単位時間当りに完了できたリクエスト数(rps)を計測している。
図1の横軸は入力リクエストレートであり、縦軸はスループットである。入力リクエストレートとスループットとの差が、Webサーバが取りこぼしたリクエストレートとなる。図1に示されるように、入力リクエストレートが一定範囲内であるならば、入力レートに対してスループットは比例する(図1破線(a))。しかしながら、Webサーバの最大スループットに達すると、Webサーバがリクエストを取りこぼすようになる。さらに、リクエストレートが上昇するとスループットが低下に転じる(図1破線(b))。本明細書では、図1破線(b)に従う状態を、サーバの過負荷状態と呼ぶ。
リクエスト過剰の対策として、大きく負荷分散と負荷制御とに分けられる。負荷分散はサーバ台数を追加してリクエストをサーバ間で振り分けることで、システム全体の最大性能を向上させる手法である。負荷分散によって、図1の破線(b)が破線(d)のように上方向にシフトされ、破線(a)に沿う領域が拡大される。リクエストの振り分けアルゴリズムとして、一定順序でサーバに対してリクエストを振り分けるラウンドロビン方式、接続中のコネクション数が最も少ないサーバにリクエストを振り分ける最小コネクション数方式、などが知られている(例えば、非特許文献1参照)。
負荷制御は、システムの最大性能を超える過剰リクエストを受信した場合に、一部のリクエスト量を制限することで、サーバの過負荷を防ぐ手法である。すなわち、負荷制御では、リクエスト量がサーバの最大性能を超えても、図1の破線(c)の維持を試みる。リクエスト量を制限する指標として、(a)TCPコネクション数、(b)サーバ負荷状態などが用いられる。(a)TCPコネクション数は、同時接続可能なTCPコネクション数の上限を定めることによって、サーバの過負荷回避を試みる。この手法は、Apacheなどの汎用的なHTTPサーバなどで用いられている。
W.Zhan,"Linux Virtual Server for Scalable Network Services",Ottawa Linux Symposium,2000
上述した負荷分散では、ラウンドロビン方式や最小コネクション数方式では、リクエストやコネクション毎の負荷の偏りから、サーバの負荷を均衡化させることは難しい。その結果、サーバ台数増加分に見合う性能向上効果(台数効果)が得られていない。また、システム全体の最大性能を超える過剰トラヒックに対しては、依然としてスループットの低下が生じる。
また、上述した負荷制御では、リクエストの種類、クライアントの回線速度などによって、TCPコネクション毎にその負荷が大きく異なる。このため、TCPコネクション数の上限に達する前にサーバが過負荷となる。逆に、サーバリソースが余っていても、TCPコネクション数が上限に達していることによって、新たなTCPコネクションを確立できない、といった問題が生じる。(b)サーバの負荷状態は、CPU占有率、メモリ使用量、応答時間などからサーバの負荷状態を推測し、過負荷か否かを判定するものである。
過負荷と判定した場合は、新規リクエストの転送または拒絶など、サーバの負荷を軽減させるためのトラヒック制御を行う。しかし、過負荷と判定されてから初めてトラヒック制御を行うため、一時的なサーバの性能低下が免れない。また、サーバの過負荷からの回復を検出するまでの遅延時間が生じるため、その間、計算リソースの利用効率が低下する、といった問題が生じる。
負荷分散と負荷制御とを組み合わせた装置もある。すなわち、過負荷と判定されたサーバをリクエストの振り分け候補から外し、過負荷となっていないサーバに対してのみリクエストを振り分ける手法である。しかしながら、前述したように、従来の負荷制御手法では(1)サーバの負荷を正確に測ることができない、(2)過負荷および過負荷から回復の検出に遅延時間が生じる。故に、過負荷となっているにも関わらずそのサーバにリクエストを送信されるという問題や、余裕があるにも関わらずサーバにリクエストが振り分けられない、という問題が生じている。
本発明は、このような背景の下に行われたものであって、特定のサーバに対して過剰な負荷がかからず、サーバの負荷を均等化でき、サーバ台数増加分に見合う性能向上が得られる負荷分散制御装置および方法を提供することを目的とする。
本発明の負荷分散制御装置は、負荷制御と負荷分散とを融合し、過剰リクエストに際しても、サーバ台数に比例したスループットを得ることができる。負荷制御手法として、サーバに送信済みであるが、サーバからレスポンスが返却されていないリクエスト、すなわち、応答待ちリクエストの数を制限する。
本手法は、クライアントとサーバとの間に配置され、両者のリクエストおよびレスポンスの送受信を仲介する。すなわち、クライアントから受信したリクエストをサーバに転送し、さらにサーバから返却されるレスポンスをクライアントに転送する。このとき、本手法は、応答待ちリクエスト数が閾値を超える場合は、最大性能を発揮するのに必要十分なリクエストがサーバに供給されているとみなす。そして、リクエストをバッファリングし、応答待ちリクエスト数が閾値を下回るまで、リクエストの送信を待ち合わせる。
本手法に基づき負荷制御を実施することで、過剰リクエストを受信した場合でも、サーバの性能を発揮するための必要十分なリクエストのみがサーバに送信される。このため、サーバの性能を制限することなく、サーバ過負荷を回避できる。そこで、本発明では、応答待ちリクエスト数の制限による負荷制御手法を負荷分散に拡張する。
本発明では、この負荷制御方法を拡張し、受信したリクエストの転送先サーバが複数候補ある場合は、そのうち応答待ちリクエストの数が閾値に達していないサーバに対してリクエストを送信するようにする。転送先サーバの全候補が応答待ちリクエスト数の閾値に達している場合は、そのリクエストをバッファに格納し、いずれかのサーバで応答待ちリクエスト数の閾値が下回るまで転送を待ち合わせる。
応答待ちリクエスト数が閾値に達しているサーバへのリクエストの振り分けを見合わせることで、各サーバが過負荷となることが確実に回避される。さらに、リクエストまたはレスポンス単位で細粒度に個々のサーバへのリクエスト転送の可否を判定する。故に、従来手法のように、サーバの過負荷検出または過負荷からの回復検出に要する遅延時間がない。この結果、各サーバの計算リソースの利用効率低下といった問題も生じない。このため、応答待ちリクエスト数が閾値に達しているか否かに応じてリクエストの振り分け先を判定することで、サーバ台数に比例したスループット向上が可能となる。
さらに本発明では、応答待ちリクエスト数が閾値に達していないサーバが複数ある場合は、各サーバの応答待ちリクエスト数に基づいてサーバを選択することができる。応答待ちリクエスト数の増加は、そのサーバで多重に実行されているリクエスト数の増加を意味する。したがって、応答待ちリクエスト数が大きいサーバほど、リクエストを転送してからレスポンスが返ってくるまでの応答時間が大きくなる。故に、応答待ちリクエスト数に基づいてサーバを選択することで、サーバから返送されるレスポンスの応答時間を最小化することができる。
すなわち、本発明は、1つ以上のクライアントと2つ以上のサーバとの間に配置され、前記クライアントから受信したリクエストを前記サーバのいずれかに転送し、当該リクエストに対して前記サーバから返却されるレスポンスを前記クライアントに転送する負荷分散制御装置である。
ここで、本発明の特徴とするところは、サーバへ送信済みのリクエストのうち、サーバからレスポンスが返却されていないリクエストである応答待ちリクエストの数をサーバ毎に計測する手段と、この計測する手段の計測結果に基づきいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、閾値を下回っているサーバのいずれかにリクエストを転送する手段と、全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストをバッファに一時蓄積する手段と、いずれかのサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせる手段とを備えたところにある。
あるいは、本発明の特徴とするところは、リクエストを処理できるサーバの範囲である転送可能範囲を特定する手段と、サーバへ送信済みのリクエストのうち、サーバからレスポンスが返却されていないリクエストである応答待ちリクエストの数をサーバ毎に計測する手段と、この計測する手段の計測結果に基づき転送可能範囲内のいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、閾値を下回っているサーバのいずれかにリクエストを転送する手段と、転送可能範囲内の全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストを転送可能範囲毎に設けられたバッファに一時蓄積する手段と、転送可能範囲内のいずれかのサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせる手段とを備えたところにある。
このときに、転送可能範囲としてリクエストを処理できるサーバのいずれかから一つのサーバを特定することもできる。前記転送可能範囲として一つのサーバを特定する手段は、例えば、リクエストを処理できるサーバのいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合には、閾値を下回っているサーバから一つのサーバを選択し、リクエストを処理できるサーバの全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合には、バッファ中で転送を待ち合わせているリクエスト数に基づき一つのサーバを選択する。
また、応答待ちリクエスト数がその閾値を下回っているサーバの中から、各サーバの応答待ちリクエスト数に基づきリクエストの転送先サーバを選択する手段を備えることができる。
さらに、転送可能範囲内毎に設けられるバッファ間でリクエスト転送順序を優先制御することもできる。
また、本発明を負荷分散制御方法の観点から観ることもできる。すなわち、本発明は、1つ以上のクライアントと2つ以上のサーバとの間に配置され、前記クライアントから受信したリクエストを前記サーバのいずれかに転送し、当該リクエストに対して前記サーバから返却されるレスポンスを前記クライアントに転送する負荷分散制御装置において実行される負荷分散制御方法である。
ここで、本発明の特徴とするところは、サーバへ送信済みのリクエストのうち、サーバからレスポンスが返却されていないリクエストである応答待ちリクエストの数をサーバ毎に計測し、この計測結果に基づきいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、閾値を下回っているサーバのいずれかにリクエストを転送し、全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストをバッファに一時蓄積し、いずれかのサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせるところにある。
あるいは、本発明の特徴とするところは、リクエストを処理できるサーバの範囲である転送可能範囲を特定し、サーバへ送信済みのリクエストのうち、サーバからレスポンスが返却されていないリクエストである応答待ちリクエストの数をサーバ毎に計測し、この計測結果に基づき転送可能範囲内のいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、閾値を下回っているサーバのいずれかにリクエストを転送し、転送可能範囲内の全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストを転送可能範囲毎に設けられたバッファに一時蓄積し、転送可能範囲内のいずれかのサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせるところにある。
このときに、転送可能範囲としてリクエストを処理できるサーバのいずれかから一つのサーバを特定することもできる。前記転送可能範囲として一つのサーバを特定する際に、例えば、リクエストを処理できるサーバのいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合には、閾値を下回っているサーバから一つのサーバを選択し、リクエストを処理できるサーバの全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合には、バッファ中で転送を待ち合わせているリクエスト数に基づき一つのサーバを選択する。
また、応答待ちリクエスト数がその閾値を下回っているサーバの中から、各サーバの応答待ちリクエスト数に基づきリクエストの転送先サーバを選択することができる。
さらに、転送可能範囲内毎に設けられるバッファ間でリクエスト転送順序を優先制御することもできる。
また、本発明をプログラムの観点から観ることもできる。すなわち、本発明は、汎用の情報処理装置にインストールすることにより、その汎用の情報処理装置に、本発明の負荷分散制御装置の機能に相応する機能を実現させるプログラムである。本発明のプログラムは記録媒体に記録されることにより、前記汎用の情報処理装置は、この記録媒体を用いて本発明のプログラムをインストールすることができる。あるいは、本発明のプログラムを保持するサーバからネットワークを介して直接前記汎用の情報処理装置に本発明のプログラムをインストールすることもできる。
これにより、汎用の情報処理装置を用いて、本発明の負荷分散制御装置を実現することができる。
本発明によれば、過剰リクエスト受信時におけるサーバの性能低下を回避しつつ、サーバ台数に見合う性能向上を得ることができる。
本発明の全実施形態に共通したブロック図を図2に示す。本発明は、リクエストを発行する1つ以上のクライアント1−1〜1−nと、リクエストに対応するレスポンスを返す2つ以上のサーバS1〜SN、および、リクエストおよびレスポンスを転送する負荷分散制御装置3とからなる。クライアント1−1〜1−nと負荷分散制御装置3とはインターネットなどのネットワーク2を介して接続される。負荷分散制御装置3がクライアント1−i(i=1,…,n)からリクエストを受信すると、いずれかのサーバSiに対してリクエストを転送する。サーバSiからリクエストに対するレスポンスが返却されると、負荷分散制御装置3はリクエストの送信元にレスポンスを転送する。
負荷分散制御装置3は、リバースProxy、Webアクセラレータ、Firewall、負荷分散システムなどの既存装置を拡張して実装してもよい。なお、本明細書では、負荷分散制御装置3がN台のサーバに接続されている場合に、各サーバを記号Si(i=1,…,N)と表す。なお、以下の説明では、負荷分散制御装置の符号“3”は省略する。
(第一の実施形態)
本発明の第一の実施形態のリクエスト振り分け機能の概念図を図3に示す。負荷分散制御装置が受信したリクエストを負荷分散制御装置に接続されたいずれのサーバ上でも処理できると仮定する。このとき、負荷分散制御装置は、受信したリクエストを全てのサーバで共有するバッファ10に格納する。そして、転送先サーバ選択部11により、サーバの実行状況に応じて、バッファ10からリクエストを取り出し、各サーバにリクエストを振り分ける。
負荷分散制御装置によるリクエスト振り分け方法について具体的に述べる。負荷分散制御装置は、サーバに送信済みであるが、まだ、レスポンスが返されていないリクエスト数、すなわち応答待ちリクエスト数を監視する。全てのサーバで応答待ちリクエスト数が定められた閾値を超える場合は、受信したリクエストをバッファリングする。そして、いずれかのサーバで応答待ちリクエスト数が閾値を下回るまで、リクエストの送信を見合わせる。以下では、サーバSiの応答待ちリクエスト数をXi、サーバSiの応答待ちリクエスト数の閾値をRiと表記する。
図4に、負荷分散制御装置の処理手順を示す。負荷分散制御装置の実行が開始されると、負荷分散制御装置は、まず、メッセージを受信するまで待ち合わせる。ここで、負荷分散制御装置が受信するメッセージは、リクエストまたはレスポンスの2種類のみとする。メッセージを受信すると、そのメッセージがリクエストである場合はリクエスト受信処理を起動し、レスポンスである場合はレスポンス受信処理を起動する。リクエスト受信処理またはレスポンス受信処理を終了すると、次のメッセージを受信するまで再度待ち合わせる。
図4中のリクエスト受信処理の実行手順を図5に示す。リクエストを受信した場合に、負荷分散制御装置はそのリクエストをバッファ10に格納する。次に、各サーバSiの応答待ちリクエスト数Xiを検査し、応答待ちリクエスト数がその閾値Riを下回っているサーバ、すなわちXi<Riが成り立つサーバSiが存在するか否かを検査する。
Xi<Riが成り立つサーバSiが存在しない場合は、全てのサーバに性能を発揮するための必要十分なリクエストが供給されていることを意味するため、リクエストのサーバへの転送を見合わせる。一方、Xi<Riが成り立つサーバSiは、サーバの最大性能を発揮するために必要十分なリクエストが供給されていないことを意味する。故に、転送先サーバ選択処理において、Xi<Riが成り立つサーバSiから当該リクエストを送信すべきサーバを選択する。ここで選択されたサーバをSjと表記する。次に、バッファからリクエストを一つ取り出す。なお、後述するレスポンス受信処理によって、Xi<Riが成り立つサーバSiが存在する場合には、バッファ10中にあるリクエストは当該受信処理でバッファ10に格納したリクエスト1つのみであることに注意されたい。次に、選択されたサーバSjの応答待ちリクエスト数Xjを1インクリメントする。最後に、取り出したリクエストを選択されたサーバSjに転送する。
図5中の転送先サーバ選択処理の実施例を列挙する。
・Xi<Riとなるサーバに対し、ラウンドロビン方式に基づき一定順序で、リクエストを振り分ける。
・Xi<Riとなるサーバのうち、応答待ちリクエスト数Xiが最も小さいサーバを選択する。すなわち、応答待ちリクエスト数を均一化させる。
・Xi<Riとなるサーバのうち、応答待ちリクエスト数と閾値との比Xi/Riが最も小さいサーバを選択する。すなわち、各サーバの閾値に対する応答待ちリクエスト数の割合が均一化されるようにリクエストを転送する。
・サーバSiの応答待ちリクエスト数に対するスループット(単位時間当りのリクエスト完了数など)を予め計測しておく。ここで、応答待ちリクエスト数がXiであるときのサーバSiの平均スループットをTi[Xi]と表記する。このとき、Xi<Riとなるサーバのうち、Ti[Xi+1]−Ti[Xi]が最大となるサーバを選択する。すなわち、当該リクエストの転送によるシステム全体のスループット向上効果が最大となるように、リクエストの転送先を選択する。
図4中のレスポンス受信処理の実施例を図6に示す。まず負荷分散制御装置は、そのレスポンスに対応するリクエストを送信したクライアントにリクエストを転送する。次に、レスポンスの返送に伴うサーバの応答待ちリクエスト数の減少を補填するため、レスポンスを返送したサーバに対し、バッファ中のリクエストの転送を試みる。ここで、レスポンスを返送したサーバをSkと表記する。また、バッファ中にリクエストが存在する場合は必ず、Sk以外の全てのサーバにおいて応答待ちリクエスト数がその閾値に達していることに注意されたい。
まず、バッファ10中にリクエストが存在するか否かを検査する。バッファ10中にリクエストが存在しない場合は、レスポンスを返送したサーバSkの応答待ちリクエスト数Xkを1デクリメントし、当該処理を終了する。一方で、バッファ10中にリクエストが格納されている場合は、リクエスト選択処理によってバッファからリクエストを一つ選択する。次に、選択したリクエストを、レスポンスを返送したサーバSkに転送する。
図6のリクエスト選択処理では、バッファ10としてFIFO(First-In First-Out)方式や、タイムアウトするまでの時間長が昇順となるようにリクエストを並べるEDF(Earliest
Deadline First)方式などを用いて、リクエストを選択できる。また、リクエストの重要度や要求品質に応じた優先制御を実施することもできる。
(第二の実施形態)
第一の実施形態では、負荷分散制御装置が受信したリクエストを負荷分散制御装置に接続されたいずれのサーバ上でも処理できる、と仮定していた。しかしながら、サーバのアプリケーションによっては、受信したリクエストによって、そのリクエストを処理できるサーバの範囲が異なる場合がある。
例えば、Webサーバによるオンラインショッピングサイトでは、一連の購入手続き(セッション)が終了するまで、同じクライアントからのリクエストを同じサーバ上に送信しなければならない場合がある。したがって、全てのサーバに転送可能なリクエストに加え、特定のサーバに転送しなければならないリクエストを考慮する必要がある。第一の実施形態では、全てのサーバ間でバッファ10を共有している。このため、特定のサーバに転送しなければならないリクエストが混在すると、バッファ10の方式によっては、サーバのリソースが十分にあるにも関わらず、サーバにリクエストが転送できなくなる(ブロッキングされる)場合が生じる。その結果、サーバリソースの利用効率が低下する。
バッファ10の方式としてFIFOを仮定した場合のブロッキング例を図7に示す。図7では、負荷分散制御装置はサーバS1、S2、S3に接続されている。図7のバッファ(FIFO)10内の○印はリクエストを示し、○印内部の数字は転送可能なサーバ番号を示す。なお、サーバ番号が※である場合は、全てのサーバに転送可能なリクエストであることを示す。また、図7には、現在の応答待ちリクエスト数Xiとその閾値Riとをサーバ毎に示している。
例えば、サーバS2の応答待ちリクエスト数X2は“8”であり閾値R2は“10”である。図7から、サーバS1を除く他のサーバは、応答待ちリクエスト数がその閾値を下回っており、リクエストを受付可能な状態である。このとき、バッファ10の先頭で待機しているリクエストは、サーバS1以外では処理できないと仮定すると、サーバS1の応答待ちリクエスト数はその閾値に達しているため、先頭のリクエストを転送できない。その結果、サーバS2、S3がリクエストを受付可能であっても、先頭リクエストがサーバS1に転送されるまで、後続のリクエストを転送できなくなる。
図7の問題は、先頭のリクエストがブロッキングされても、後続のリクエストを先に転送できるように、バッファ10を拡張することによっても解決できる。しかしながら、サーバに転送可能なリクエストをバッファ10から検索する処理が必要となるため、計算コストが飛躍的に増加する。
バッファ10中のリクエストを検索することなくブロッキングの問題を解決するため、リクエストをサーバに送信できる範囲毎に別のバッファに格納することができるようにする。説明を簡単化するために、いずれか一つの特定サーバにのみ送信できるリクエストおよび全てのサーバに送信できるリクエストの2種類を仮定する。そして、第二の実施形態では、図8に示すように、転送可能範囲特定部12により、特定のサーバに転送しなければならないリクエストはサーバ毎に設けられたバッファQ0〜QNに、全てのサーバに転送可能なリクエストを全サーバで共有するバッファに格納する。以下では、サーバSi(i=1,…,N)に転送しなければならないリクエストを格納するためのバッファをQiと表記する。また、いずれのサーバにも転送可能なリクエストを格納するためのバッファをQ0と表記する。本明細書では、Webサーバにおけるセッション処理を例にとり、セッション実行中のリクエストは、常に同じサーバに送信しなければならないとする。
第二の実施形態の実行手順は第一の実施形態の図4と同様である。ただし、図4中のリクエスト受信処理、レスポンス受信処理はそれぞれ第一の実施形態と異なる。
第二の実施形態のリクエスト受信処理の実行手順を図9に示す。まずリクエストを受信すると、まず当該リクエストをいずれのサーバに対しても転送可能か、または特定のサーバにのみ転送可能かを判定する。
転送可能範囲となるサーバの判定処理では、まずセッション処理を実行中のリクエストか否かを判定する。Webサーバでは一般的に、セッション処理の開始時にセッション識別番号を発行する。そして、セッション識別番号を、HTTPのCookieなどを用いてレスポンスに付与し、クライアントに通知する。クライアントは、その後のリクエストにWebサーバから通知されたセッション識別番号を付与することで、Webサーバはリクエストが属するセッションを識別する。
したがって、負荷分散制御装置において、セッション識別番号が付与されているレスポンスを転送する際に、レスポンスの返送元のサーバとそのセッション識別番号とを記憶させる。そして、リクエストを受信する度に、リクエストにセッション識別番号が含まれているか否かを検査する。リクエストにセッション識別番号が含まれている場合は、当該リクエストは非セッション処理とみなし、いずれのサーバにも転送してよいとする。一方で、登録されているセッション番号が付与されているならば、そのセッション識別番号を発行したサーバを転送先サーバとする。
転送可能範囲の判定処理にてリクエストをいずれのサーバに対しても転送できると判定された場合には、まず、当該リクエストを、いずれのサーバにも送信可能なリクエストを格納するためのバッファQ0に格納する。次に、応答待ちリクエスト数Xiがその閾値Riを下回っているサーバがあるか否かを判定する。全てのサーバで、Xi<Riが成り立たない場合は、リクエストの転送を待ち合わせ、本処理を終了する。一方で、Xi<Riが成り立つサーバがある場合は、転送先サーバ選択処理にてXi<Riが成り立つサーバの中から、リクエストの転送先となるサーバSjを選択する。
第二の実施形態における転送先サーバ選択処理は、第一の実施形態における転送先サーバの選択処理と同様の手法を用いて実現できる。次に、バッファQ0からリクエストを一つ取り出す。次に、選択されたサーバSjの応答待ちリクエスト数Xjを1インクリメントする。最後に、取り出したリクエストを選択されたサーバSjに転送する。
転送可能範囲の判定処理にてリクエストの転送先サーバSjが特定された場合には、まず、リクエストを特定されたサーバSj用のバッファQjに格納する。次に、特定されたサーバSjにおいて、Xj<Rjが成り立つか判定する。Xj<Rjが成り立たない場合は、リクエストの転送を待ち合わせ、本処理を終了する。一方で、Xj<Rjが成り立つ場合は、バッファQjからリクエストを一つ取り出す。次に、選択されたサーバSjの応答待ちリクエスト数Xjを1インクリメントする。最後に、取り出したリクエストを選択されたサーバSjに転送する。
第二の実施形態のレスポスン受信処理の実行手順を図10に示す。まず負荷分散制御装置は、受信したレスポンスに対応するリクエストを送信したクライアントに、当該レスポンスを転送する。次に、レスポンスの返送に伴うサーバの応答待ちリクエスト数の減少を補填するために、返送したサーバに対し、バッファ中のリクエストの転送を試みる。ここで、レスポンスを返送したサーバをSkと表記する。まず、サーバSkに送信できるリクエストを有している可能性がある、バッファS0、またはバッファSk中にリクエストが存在するか否かを検査する。バッファ中にリクエストが存在しない場合は、レスポンスを返送したサーバSkの応答待ちリクエスト数Xkを1デクリメントし、当該処理を終了する。一方で、バッファ中にリクエストが格納されている場合は、リクエスト選択処理によってバッファQ0またはQkからリクエストを一つ選択する。次に、選択したリクエストを、レスポンスを返送したサーバSkに転送する。
図10のリクエスト選択処理では、リクエストにタイムスタンプを振っておき、より早く負荷分散制御装置に到達したリクエストを先に選択することもできる。また、バッファQ0とバッファQkとをラウンドロビン方式に基づき、交互に出力することもできる。また、バッファQ0とバッファQkとの間のリクエスト選択にて、PQ(Priority Queuing)、WRR(Waited Round Robin)、WFQ(Waited Fair Queuing)といった既存の優先制御手法を用いることができる。
例えば、前述したセッション識別番号に基づきリクエストの格納先バッファを決定している場合には、バッファQkには既に開始済みのセッションに属するリクエストが格納される。一方で、バッファQ0には、非セッション処理のリクエストやセッション開始要求のリクエストが格納される。故に、バッファQ0よりバッファQkに属するリクエストを高優先にサーバに転送することで、サーバ混雑時においても、開始済みのセッションを効率良く保護することが可能となる。
(第三の実施形態)
第一および第二の実施形態では、バッファの格納後にリクエストの転送先を決定している。しかしながら、図11のように、転送可能サーバ特定部13により、予めリクエストのバッファへの格納前に、その転送先サーバを決定することもできる。転送先サーバ毎に独立したバッファを持つことができるため、サーバ毎のリクエストの優先制御を、他のサーバに影響されることなく実現できる、という利点が得られる。以下では、サーバSi(i=1,…,N)に送信されるリクエストを格納するためのバッファをQiと表記する。
第三の実施形態の実行手順は第一の実施形態の図1と同様である。ただし、図1中のリクエスト受信処理およびレスポンス受信処理はそれぞれ第一の実施形態と異なる。
第三の実施形態のリクエスト受信処理の実行手順を図12に示す。まずリクエストを受信すると、当該リクエストをいずれのサーバに対しても転送できるか、または、特定のサーバにのみ転送できるかを判定する。判定方法は、第二の実施形態と同様の方法を利用できる。
いずれのサーバに対しても転送できると判定された場合は、次に、転送先サーバの選択処理にて、リクエストの転送先サーバSjを決定する。ここで、転送サーバの選択処理の実施例として以下がある。
・いずれかのサーバの応答待ちリクエスト数がその閾値を下回っている場合には、第一の実施形態の転送サーバの選択処理と同様の手法が利用できる。
・全てのサーバの応答待ちリクエスト数がその閾値に達している場合には、ラウンドロビン方式に基づき、順番にリクエストの転送先サーバを選択する。または、バッファ中のリクエスト数が最も少ないサーバを選択する。すなわち、バッファ中のリクエスト数が均一化されるように、リクエストの転送先サーバを決定する。または、各サーバSiのスループット(単位時間当りの完了リクエスト数)を計測しておく。スループットに対するバッファ中のリクエスト数の割合が最も小さいサーバを選択する。すなわち、バッファ中の待機する時間が最も短くなるように、リクエストの転送先サーバを決定する。
特定のサーバにのみ転送できる場合は、そのサーバをリクエストの転送先サーバSjとする。次に、転送先サーバSjのバッファQjに、当該リクエストを格納する。次に、サーバSjにおいて、Xj<Rjが成り立つか判定する。Xj<Rjが成り立たない場合は、リクエストの転送を待ち合わせ、本処理を終了する。一方で、Xj<Rjが成り立つ場合は、バッファQjからリクエストを一つ取り出す。次に、選択されたサーバSjの応答待ちリクエスト数Xjを1インクリメントする。最後に、取り出したリクエストを選択されたサーバSjに転送する。
第三の実施形態のレスポンス受信処理の実行手順を図13に示す。まず負荷分散制御装置は、受信したレスポンスに対応するリクエストを送信したクライアントに、当該レスポンスを転送する。次にレスポンスの返送に伴うサーバの応答待ちリクエスト数の減少を補填するために、返送したサーバに対しバッファ中のリクエストの転送を試みる。ここで、レスポンスを返送したサーバをSkと表記する。
まず、サーバSkに対して転送すべきリクエストが格納されるキューSk中にリクエストが存在するか否かを検査する。バッファ中にリクエストが存在しない場合は、レスポンスを返送したサーバSkの応答待ちリクエスト数Xkを1デクリメントし、当該処理を終了する。一方で、バッファ中にリクエストが格納されている場合は、リクエスト選択処理によってQkからリクエストを一つ選択する。次に、選択したリクエストを、レスポンスを返送したサーバSkに転送する。
(第四の実施形態)
第四の実施形態は、汎用の情報処理装置にインストールすることにより、その汎用の情報処理装置に、本実施形態の負荷分散制御装置の機能に相応する機能を実現させるプログラムである。このプログラムは、記録媒体に記録されて汎用の情報処理装置にインストールされ、あるいは通信回線を介して汎用の情報処理装置にインストールされることにより当該汎用の情報処理装置に、本実施形態の負荷分散制御装置に相応する機能を実現させることができる。汎用の情報処理装置は、例えば、汎用のパーソナル・コンピュータである。
本発明によれば、特定のサーバに対して過剰な負荷がかからず、サーバの負荷を均等化でき、サーバ台数増加分に見合う性能向上が得られるので、ネットワーク事業者にとってはネットワークを効率良く運用することに寄与することができる。また、ネットワークユーザにとってはサービス品質の向上に寄与することができる。
過剰リクエストによる性能低下の様子を示す図。 全実施形態に共通のブロック図。 第一の実施形態のリクエスト振り分け機能を示す図。 負荷分散制御装置の処理手順を示すフローチャート。 第一の実施形態のリクエスト受信処理の実行手順を示すフローチャート。 第一の実施形態のレスポンス受信処理の実行手順を示すフローチャート。 リクエストのブロッキングの例を示す図。 第二の実施形態のリクエスト振り分け機能を示す図。 第二の実施形態のリクエスト受信処理手順を示すフローチャート。 第二の実施形態のレスポンス受信処理の実行手順を示すフローチャート。 第三の実施形態のリクエスト振り分け機能を示す図。 第三の実施形態のリクエスト受信処理の実行手順を示すフローチャート。 第三の実施形態のレスポンス受信処理の実行手順を示すフローチャート。
符号の説明
1−1〜1−n クライアント
2 ネットワーク
3 負荷分散制御装置
10、Q0〜QN バッファ
11 転送先サーバ選択部
12 転送可能範囲特定部
13 転送可能サーバ特定部
S1〜SN サーバ

Claims (6)

  1. 1つ以上のクライアントと2つ以上のサーバとの間に配置され、前記クライアントから受信したリクエストを前記サーバのいずれかに転送し、リクエストに対して前記サーバから返却されるレスポンスを前記クライアントに転送する負荷分散制御装置において、
    リクエストを処理できるサーバの範囲である転送可能範囲を特定する手段と、
    サーバへ送信済みのリクエストのうちサーバからレスポンスが返却されていないリクエストである応答待ちリクエストを複数、サーバに保持させる手段と、
    答待ちリクエストの数をサーバ毎にリアルタイムで計測する手段と、
    この計測する手段の計測結果に基づき、
    転送可能範囲内のいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、閾値を下回っているサーバのいずれかにリクエストを転送し、そのサーバに対応する応答待ちリクエスト数をインクリメントするためのリクエストを転送する手段と、
    レスポンスがサーバから返却される度にそのサーバの属する転送可能範囲に設けられたバッファ中に転送を待ち合わせているリクエストが存在するか否かを検査し、バッファ中に転送を待ち合わせているリクエストが存在しない場合にはそのサーバに対応する応答待ちリクエスト数をデクリメントし、バッファ中に転送を待ち合わせているリクエストが存在する場合にはバッファから選択した一つのリクエストを前記レスポンスを返却したサーバに転送するためのレスポンスを返却する手段と、
    転送可能範囲内の全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストを転送可能範囲毎に設けられたバッファに一時蓄積する手段と、
    転送可能範囲内のいずれかのサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせる手段と
    を備え、
    前記転送可能範囲を特定する手段は、セッション処理を実行中のリクエストについては、当該セッションを開始処理したサーバを転送先とすることで転送可能範囲を特定する
    ことを特徴とする負荷分散制御装置。
  2. 1つ以上のクライアントと2つ以上のサーバとの間に配置され、前記クライアントから受信したリクエストを前記サーバのいずれかに転送し、リクエストに対して前記サーバから返却されるレスポンスを前記クライアントに転送する負荷分散制御装置において、
    リクエストを処理できるサーバの範囲である転送可能範囲を特定する手段と、
    サーバへ送信済みのリクエストのうちサーバからレスポンスが返却されていないリクエストである応答待ちリクエストを複数、サーバに保持させる手段と、
    答待ちリクエストの数をサーバ毎にリアルタイムで計測する手段と、
    この計測する手段の計測結果に基づき、
    転送可能範囲内のサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、当該サーバにリクエストを転送し、そのサーバに対応する応答待ちリクエスト数をインクリメントするためのリクエストを転送する手段と、
    レスポンスがサーバから返却される度にそのサーバに設けられたバッファ中に転送を待ち合わせているリクエストが存在するか否かを検査し、バッファ中に転送を待ち合わせているリクエストが存在しない場合にはそのサーバに対応する応答待ちリクエスト数をデクリメントし、バッファ中に転送を待ち合わせているリクエストが存在する場合には選択した一つのリクエストを前記レスポンスを返却したサーバに転送するためのレスポンスを返却する手段と、
    転送可能範囲内のサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストを当該サーバ毎に設けられたバッファに一時蓄積する手段と、
    転送可能範囲内のサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせる手段と
    を備え、
    前記転送可能範囲を特定する手段は、
    セッション処理を実行中のリクエストについては、当該セッションを開始処理したサーバを転送先とすることで転送可能範囲を特定し、
    セッション処理を実行中のリクエスト以外のリクエストについては、リクエストを処理できるサーバのいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合には、閾値を下回っているサーバから選択した一つのサーバを転送先とすることで転送可能範囲を特定し、
    リクエストを処理できるサーバの全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合には、バッファ中で転送を待ち合わせているリクエスト数に基づき選択した一つのサーバを転送先とすることで転送可能範囲を特定する
    ことを特徴とする負荷分散制御装置。
  3. 前記転送する手段は、サーバの応答待ちリクエスト数が閾値を下回った場合において、当該サーバへの転送を待ち合わせているリクエストのうち、すでにセッションを開始済みであるクライアントからのリクエストを優先して当該サーバに転送する請求項1記載の負荷分散制御装置。
  4. 1つ以上のクライアントと2つ以上のサーバとの間に配置され、前記クライアントから受信したリクエストを前記サーバのいずれかに転送し、リクエストに対して前記サーバから返却されるレスポンスを前記クライアントに転送する負荷分散制御装置において実行される負荷分散制御方法において、
    リクエストを処理できるサーバの範囲である転送可能範囲を特定し、
    サーバへ送信済みのリクエストのうち、サーバからレスポンスが返却されていないリクエストである応答待ちリクエストを複数、サーバに保持させ、
    答待ちリクエストの数をサーバ毎にリアルタイムで計測し、
    この計測結果に基づき、
    転送可能範囲内のいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、閾値を下回っているサーバのいずれかにリクエストを転送し、そのサーバに対応する応答待ちリクエスト数をインクリメントし、
    レスポンスがサーバから返却される度にそのサーバに設けられたバッファ中に転送を待ち合わせているリクエストが存在するか否かを検査し、バッファ中に転送を待ち合わせているリクエストが存在しない場合にはそのサーバに対応する応答待ちリクエスト数をデクリメントし、バッファ中に転送を待ち合わせているリクエストが存在する場合には選択した一つのリクエストを前記レスポンスを返却したサーバに転送し、
    転送可能範囲内の全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストを転送可能範囲毎に設けられたバッファに一時蓄積し、
    転送可能範囲内のいずれかのサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせ、
    前記転送可能範囲を特定する際に、セッション処理を実行中のリクエストについては、当該セッションを開始処理したサーバを転送先とすることで転送可能範囲を特定する
    ことを特徴とする負荷分散制御方法。
  5. 1つ以上のクライアントと2つ以上のサーバとの間に配置され、前記クライアントから受信したリクエストを前記サーバのいずれかに転送し、リクエストに対して前記サーバから返却されるレスポンスを前記クライアントに転送する負荷分散制御装置において実行される負荷分散制御方法において、
    リクエストを処理できるサーバの範囲である転送可能範囲を特定し、
    サーバへ送信済みのリクエストのうち、サーバからレスポンスが返却されていないリクエストである応答待ちリクエストを複数、サーバに保持させ、
    答待ちリクエストの数をサーバ毎にリアルタイムで計測し、
    この計測結果に基づき、
    転送可能範囲内のサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、当該サーバにリクエストを転送し、そのサーバに対応する応答待ちリクエスト数をインクリメントし、
    レスポンスがサーバから返却される度にそのサーバに設けられたバッファ中に転送を待ち合わせているリクエストが存在するか否かを検査し、バッファ中に転送を待ち合わせているリクエストが存在しない場合にはそのサーバに対応する応答待ちリクエスト数をデクリメントし、バッファ中に転送を待ち合わせているリクエストが存在する場合には選択した一つのリクエストを前記レスポンスを返却したサーバに転送し、
    転送可能範囲内のサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストを当該サーバ毎に設けられたバッファに一時蓄積し、
    転送可能範囲内のサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせ、
    前記転送可能範囲を特定する際に、
    セッション処理を実行中のリクエストについては、当該セッションを開始処理したサーバを転送先とすることで転送可能範囲を特定し、
    セッション処理を実行中のリクエスト以外のリクエストについては、リクエストを処理できるサーバのいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合には、閾値を下回っているサーバから選択した一つのサーバを転送先とすることで転送可能範囲を特定し、
    リクエストを処理できるサーバの全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合には、バッファ中で転送を待ち合わせているリクエスト数に基づき選択した一つのサーバを転送先とすることで転送可能範囲を特定する
    ことを特徴とする負荷分散制御方法。
  6. 前記リクエストを転送する際に、サーバの応答待ちリクエスト数が閾値を下回った場合において、当該サーバへの転送を待ち合わせているリクエストのうち、すでにセッションを開始済みであるクライアントからのリクエストを優先して当該サーバに転送する請求項4記載の負荷分散制御方法。
JP2006213023A 2006-08-04 2006-08-04 負荷分散制御装置および方法 Active JP4916809B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006213023A JP4916809B2 (ja) 2006-08-04 2006-08-04 負荷分散制御装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006213023A JP4916809B2 (ja) 2006-08-04 2006-08-04 負荷分散制御装置および方法

Publications (2)

Publication Number Publication Date
JP2008040718A JP2008040718A (ja) 2008-02-21
JP4916809B2 true JP4916809B2 (ja) 2012-04-18

Family

ID=39175653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006213023A Active JP4916809B2 (ja) 2006-08-04 2006-08-04 負荷分散制御装置および方法

Country Status (1)

Country Link
JP (1) JP4916809B2 (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7675854B2 (en) 2006-02-21 2010-03-09 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
JP5291366B2 (ja) * 2008-03-18 2013-09-18 株式会社野村総合研究所 流量制御装置
JP2009245131A (ja) * 2008-03-31 2009-10-22 Nec Corp コンピュータ装置、コンピュータ装置の拡張カード、負荷分散方法及びプログラム
JP5177799B2 (ja) 2008-12-19 2013-04-10 株式会社ナカヨ通信機 分散処理機能を有するゲートウェイおよび通信端末
US9960967B2 (en) 2009-10-21 2018-05-01 A10 Networks, Inc. Determining an application delivery server based on geo-location information
JP5586985B2 (ja) 2010-02-22 2014-09-10 キヤノン株式会社 ネットワークシステム、ネットワークシステムの制御方法、及び、プログラム
JP2011186810A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd 負荷分散装置、負荷分散方法及び負荷分散プログラム
US9215275B2 (en) 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US9609052B2 (en) 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
WO2013047339A1 (ja) * 2011-09-26 2013-04-04 日本電気株式会社 負荷分散装置、方法及びプログラム
US9128764B2 (en) 2011-09-27 2015-09-08 Oracle International Corporation System and method for providing flexibility in configuring HTTP load balancing in a traffic director environment
US8897154B2 (en) 2011-10-24 2014-11-25 A10 Networks, Inc. Combining stateless and stateful server load balancing
JP5822125B2 (ja) 2011-11-09 2015-11-24 日本電気株式会社 サービス連携装置、サービス連携方法およびサービス連携プログラム
US9626273B2 (en) 2011-11-09 2017-04-18 Nec Corporation Analysis system including analysis engines executing predetermined analysis and analysis executing part controlling operation of analysis engines and causing analysis engines to execute analysis
US9386088B2 (en) 2011-11-29 2016-07-05 A10 Networks, Inc. Accelerating service processing using fast path TCP
US9094364B2 (en) 2011-12-23 2015-07-28 A10 Networks, Inc. Methods to manage services over a service gateway
US10044582B2 (en) 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
US8782221B2 (en) 2012-07-05 2014-07-15 A10 Networks, Inc. Method to allocate buffer for TCP proxy session based on dynamic network conditions
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
WO2014052099A2 (en) 2012-09-25 2014-04-03 A10 Networks, Inc. Load distribution in data networks
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9531846B2 (en) 2013-01-23 2016-12-27 A10 Networks, Inc. Reducing buffer usage for TCP proxy session based on delayed acknowledgement
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
WO2014144837A1 (en) 2013-03-15 2014-09-18 A10 Networks, Inc. Processing data packets using a policy based network path
JP2014217262A (ja) * 2013-04-30 2014-11-17 株式会社日立製作所 監視制御システム、処理分散装置及び処理分散方法
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
US10038693B2 (en) 2013-05-03 2018-07-31 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US10230770B2 (en) 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US9986061B2 (en) 2014-06-03 2018-05-29 A10 Networks, Inc. Programming a data network device using user defined scripts
US9992229B2 (en) 2014-06-03 2018-06-05 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US10129122B2 (en) 2014-06-03 2018-11-13 A10 Networks, Inc. User defined objects for network devices
JP6521784B2 (ja) * 2015-07-31 2019-05-29 三菱電機株式会社 サーバ
US10581976B2 (en) 2015-08-12 2020-03-03 A10 Networks, Inc. Transmission control of protocol state exchange for dynamic stateful service insertion
US10243791B2 (en) 2015-08-13 2019-03-26 A10 Networks, Inc. Automated adjustment of subscriber policies
US9665714B1 (en) * 2016-05-31 2017-05-30 AO Kaspersky Lab System and method of detecting malicious files on virtual machines in a distributed network
CN110659151B (zh) * 2018-06-28 2023-05-02 阿里巴巴集团控股有限公司 数据校验方法及装置,存储介质
ES2969719T3 (es) * 2019-09-06 2024-05-22 Everseen Ltd Sistema informático distribuido para procesamiento intensivo de vídeo
JP2023039500A (ja) 2021-09-09 2023-03-22 株式会社日立製作所 計算機システム及びデータ送信制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332834A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd リモートプロシジャコール方法
JPH10334064A (ja) * 1997-05-27 1998-12-18 Shikoku Nippon Denki Software Kk 負荷分散方式
JP2000268012A (ja) * 1999-03-12 2000-09-29 Nec Corp クライアントサーバシステムにおけるサーバ負荷の分散方法ならびに装置
JP2002269061A (ja) * 2001-03-08 2002-09-20 Ntt Comware Corp クライアントサーバシステム、中継サーバ、接続先サーバの決定方法
JP3856291B2 (ja) * 2001-10-12 2006-12-13 日本電信電話株式会社 クライアント監視方法、サーバー装置、プログラム及び記録媒体
JP2005062927A (ja) * 2003-08-11 2005-03-10 Hitachi Ltd 負荷制御方法および装置並びにその処理プログラム

Also Published As

Publication number Publication date
JP2008040718A (ja) 2008-02-21

Similar Documents

Publication Publication Date Title
JP4916809B2 (ja) 負荷分散制御装置および方法
US8667120B2 (en) Load control device and method thereof for controlling requests sent to a server
US9185047B2 (en) Hierarchical profiled scheduling and shaping
US9154572B2 (en) Changing I/O types for processing data requests
US9813529B2 (en) Effective circuits in packet-switched networks
Prabhavat et al. Effective delay-controlled load distribution over multipath networks
US7804773B2 (en) System and method of managing data flow in a network
JP4394710B2 (ja) 負荷制御装置及び方法及びプログラム
George et al. Congestion control mechanism for unresponsive flows in internet through active queue management system (AQM)
JP2008059040A (ja) 負荷制御システムおよび方法
JP2002091910A (ja) ユーザの行動及び予測に基づいて要求を分類するWebサーバ要求分類システム
Patel et al. Comparative analysis of congestion control algorithms using ns-2
JP4646931B2 (ja) サーバ装置およびリクエスト整理方法
Ding et al. DAQ: Deadline-aware queue scheme for scheduling service flows in data centers
JP4722150B2 (ja) クライアントサーバシステム
Nandhini et al. Exploration and Evaluation of Congestion Control Algorithms for Data Center Networks
KR20010038486A (ko) 이더넷 큐오에스 지원 버퍼 및 큐 구조와 그 운용 방법
CN107332786B (zh) 一种在服务链环境下保障数据流截止时间的调度方法
JP2003242065A (ja) コンテンツ選択、コンテンツ要求受付制御、輻輳制御方法およびコンテンツ管理装置、網リソース管理サーバ装置、ポータルサーバ装置、エッジ装置
JP2013222407A (ja) 流量制御機能を有するシステム
JP2017059250A (ja) 流量制御機能を有するシステム
Kurebayashi et al. A Web access SHaping method to improve the performance of congested servers
JP2005033673A (ja) パケット転送制御回路及びパケット転送制御方法
JP2008236625A (ja) パケット送信制御プログラム、パケット送信制御装置、及びパケット送信制御方法
JP2009033353A (ja) パケット転送システム、パケット転送装置、新規フロー受付判断方法、及び、コンピュータプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20090910

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090910

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100804

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100826

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20101112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111227

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120125

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4916809

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250