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

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

Info

Publication number
JP2008040718A
JP2008040718A JP2006213023A JP2006213023A JP2008040718A JP 2008040718 A JP2008040718 A JP 2008040718A JP 2006213023 A JP2006213023 A JP 2006213023A JP 2006213023 A JP2006213023 A JP 2006213023A JP 2008040718 A JP2008040718 A JP 2008040718A
Authority
JP
Japan
Prior art keywords
server
request
response
requests
servers
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.)
Granted
Application number
JP2006213023A
Other languages
English (en)
Other versions
JP4916809B2 (ja
Inventor
Ryosuke Kurebayashi
亮介 榑林
Kazuaki Obana
和昭 尾花
Osamu Ishida
修 石田
Osamu Noguchi
修 野口
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

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

Abstract

【課題】特定のサーバに対して過剰な負荷をかけず、サーバの負荷を均等化し、サーバ台数増加分に見合う性能向上を得る。
【解決手段】受信したリクエストの転送先サーバが複数候補ある場合は、そのうち応答待ちリクエストの数が閾値に達していないサーバに対してリクエストを送信する。転送先サーバの全候補が応答待ちリクエスト数の閾値に達している場合は、そのリクエストをバッファに格納し、いずれかのサーバで応答待ちリクエスト数の閾値が下回るまで転送を待ち合わせる。さらに、リクエストまたはレスポンス単位で細粒度に個々のサーバへのリクエスト転送の可否を判定する。さらに、応答待ちリクエスト数が閾値に達していないサーバが複数ある場合は、各サーバの応答待ちリクエスト数に基づいてサーバを選択する。
【選択図】 図5

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 (12)

  1. 1つ以上のクライアントと2つ以上のサーバとの間に配置され、前記クライアントから受信したリクエストを前記サーバのいずれかに転送し、当該リクエストに対して前記サーバから返却されるレスポンスを前記クライアントに転送する負荷分散制御装置において、
    サーバへ送信済みのリクエストのうち、サーバからレスポンスが返却されていないリクエストである応答待ちリクエストの数をサーバ毎に計測する手段と、
    この計測する手段の計測結果に基づきいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、閾値を下回っているサーバのいずれかにリクエストを転送する手段と、
    全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストをバッファに一時蓄積する手段と、
    いずれかのサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせる手段と
    を備えたことを特徴とする負荷分散制御装置。
  2. 1つ以上のクライアントと2つ以上のサーバとの間に配置され、前記クライアントから受信したリクエストを前記サーバのいずれかに転送し、リクエストに対して前記サーバから返却されるレスポンスを前記クライアントに転送する負荷分散制御装置において、
    リクエストを処理できるサーバの範囲である転送可能範囲を特定する手段と、
    サーバへ送信済みのリクエストのうち、サーバからレスポンスが返却されていないリクエストである応答待ちリクエストの数をサーバ毎に計測する手段と、
    この計測する手段の計測結果に基づき転送可能範囲内のいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、閾値を下回っているサーバのいずれかにリクエストを転送する手段と、
    転送可能範囲内の全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストを転送可能範囲毎に設けられたバッファに一時蓄積する手段と、
    転送可能範囲内のいずれかのサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせる手段と
    を備えたことを特徴とする負荷分散制御装置。
  3. 転送可能範囲としてリクエストを処理できるサーバのいずれかから一つのサーバを特定する請求項2記載の負荷分散制御装置。
  4. 前記転送可能範囲として一つのサーバを特定する手段は、リクエストを処理できるサーバのいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合には、閾値を下回っているサーバから一つのサーバを選択し、リクエストを処理できるサーバの全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合には、バッファ中で転送を待ち合わせているリクエスト数に基づき一つのサーバを選択する請求項3記載の負荷分散制御装置。
  5. 応答待ちリクエスト数がその閾値を下回っているサーバの中から、各サーバの応答待ちリクエスト数に基づきリクエストの転送先サーバを選択する手段を備えた請求項1または2記載の負荷分散制御装置。
  6. 転送可能範囲内毎に設けられるバッファ間でリクエスト転送順序を優先制御する請求項2記載の負荷分散制御装置。
  7. 1つ以上のクライアントと2つ以上のサーバとの間に配置され、前記クライアントから受信したリクエストを前記サーバのいずれかに転送し、当該リクエストに対して前記サーバから返却されるレスポンスを前記クライアントに転送する負荷分散制御装置において実行される負荷分散制御方法において、
    サーバへ送信済みのリクエストのうち、サーバからレスポンスが返却されていないリクエストである応答待ちリクエストの数をサーバ毎に計測し、
    この計測結果に基づきいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、閾値を下回っているサーバのいずれかにリクエストを転送し、
    全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストをバッファに一時蓄積し、
    いずれかのサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせる
    ことを特徴とする負荷分散制御方法。
  8. 1つ以上のクライアントと2つ以上のサーバとの間に配置され、前記クライアントから受信したリクエストを前記サーバのいずれかに転送し、リクエストに対して前記サーバから返却されるレスポンスを前記クライアントに転送する負荷分散制御装置において実行される負荷分散制御方法において、
    リクエストを処理できるサーバの範囲である転送可能範囲を特定し、
    サーバへ送信済みのリクエストのうち、サーバからレスポンスが返却されていないリクエストである応答待ちリクエストの数をサーバ毎に計測し、
    この計測結果に基づき転送可能範囲内のいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合に、閾値を下回っているサーバのいずれかにリクエストを転送し、
    転送可能範囲内の全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合に、リクエストを転送可能範囲毎に設けられたバッファに一時蓄積し、
    転送可能範囲内のいずれかのサーバの応答待ちリクエスト数が閾値を下回るまで前記バッファからのリクエストの転送を待ち合わせる
    ことを特徴とする負荷分散制御方法。
  9. 転送可能範囲としてリクエストを処理できるサーバのいずれかから一つのサーバを特定する請求項8記載の負荷分散制御方法。
  10. 前記転送可能範囲として一つのサーバを特定する際に、リクエストを処理できるサーバのいずれかのサーバにおいて応答待ちリクエスト数が閾値を下回っている場合には、閾値を下回っているサーバから一つのサーバを選択し、リクエストを処理できるサーバの全てのサーバにおいて応答待ちリクエスト数が閾値に達している場合には、バッファ中で転送を待ち合わせているリクエスト数に基づき一つのサーバを選択する請求項9記載の負荷分散制御方法。
  11. 応答待ちリクエスト数がその閾値を下回っているサーバの中から、各サーバの応答待ちリクエスト数に基づきリクエストの転送先サーバを選択する請求項7または8記載の負荷分散制御方法。
  12. 転送可能範囲内毎に設けられるバッファ間でリクエスト転送順序を優先制御する請求項8記載の負荷分散制御方法。
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 true JP2008040718A (ja) 2008-02-21
JP4916809B2 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)

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223810A (ja) * 2008-03-18 2009-10-01 Nomura Research Institute Ltd 流量制御装置
JP2009245131A (ja) * 2008-03-31 2009-10-22 Nec Corp コンピュータ装置、コンピュータ装置の拡張カード、負荷分散方法及びプログラム
WO2010070919A1 (ja) 2008-12-19 2010-06-24 株式会社ナカヨ通信機 分散処理機能を有するゲートウェイおよび通信端末
JP2011170766A (ja) * 2010-02-22 2011-09-01 Canon Inc ネットワークシステム、ネットワークシステムの制御方法、及び、プログラム
JP2011186810A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd 負荷分散装置、負荷分散方法及び負荷分散プログラム
WO2013047339A1 (ja) * 2011-09-26 2013-04-04 日本電気株式会社 負荷分散装置、方法及びプログラム
WO2013069191A1 (ja) * 2011-11-09 2013-05-16 日本電気株式会社 解析処理システム
JP2014502382A (ja) * 2010-09-30 2014-01-30 エイ10 ネットワークス インコーポレイテッド サーバ負荷状態に基づきサーバをバランスさせるシステムと方法
JP2014505918A (ja) * 2010-12-02 2014-03-06 エイ10 ネットワークス インコーポレイテッド 動的サービス応答時間に基づきサーバにアプリケーショントラフィックを配信するシステムと方法
JP2014530434A (ja) * 2011-09-27 2014-11-17 オラクル・インターナショナル・コーポレイション トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2014217262A (ja) * 2013-04-30 2014-11-17 株式会社日立製作所 監視制御システム、処理分散装置及び処理分散方法
US8984126B2 (en) 2011-11-09 2015-03-17 Nec Corporation Service collaboration device, service collaboration method, and computer-readable recording medium
US9253152B1 (en) 2006-10-17 2016-02-02 A10 Networks, Inc. Applying a packet routing policy to an application session
US9270705B1 (en) 2006-10-17 2016-02-23 A10 Networks, Inc. Applying security policy to an application session
US9270774B2 (en) 2011-10-24 2016-02-23 A10 Networks, Inc. Combining stateless and stateful server load balancing
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9386088B2 (en) 2011-11-29 2016-07-05 A10 Networks, Inc. Accelerating service processing using fast path TCP
US9531846B2 (en) 2013-01-23 2016-12-27 A10 Networks, Inc. Reducing buffer usage for TCP proxy session based on delayed acknowledgement
JP2017033240A (ja) * 2015-07-31 2017-02-09 三菱電機株式会社 サーバ
US9602442B2 (en) 2012-07-05 2017-03-21 A10 Networks, Inc. Allocating buffer for TCP proxy session based on dynamic network conditions
US9705800B2 (en) 2012-09-25 2017-07-11 A10 Networks, Inc. Load distribution in data networks
JP2017215923A (ja) * 2016-05-31 2017-12-07 エーオー カスペルスキー ラボAO Kaspersky Lab 分散ネットワークにおけるバーチャルマシン上の悪意のあるファイルを検出するシステム及び方法
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9960967B2 (en) 2009-10-21 2018-05-01 A10 Networks, Inc. Determining an application delivery server based on geo-location information
US9979801B2 (en) 2011-12-23 2018-05-22 A10 Networks, Inc. Methods to manage services over a service gateway
US9986061B2 (en) 2014-06-03 2018-05-29 A10 Networks, Inc. Programming a data network device using user defined scripts
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
US9992229B2 (en) 2014-06-03 2018-06-05 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
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
US10044582B2 (en) 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
US10129122B2 (en) 2014-06-03 2018-11-13 A10 Networks, Inc. User defined objects for network devices
US10230770B2 (en) 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
USRE47296E1 (en) 2006-02-21 2019-03-12 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
US10243791B2 (en) 2015-08-13 2019-03-26 A10 Networks, Inc. Automated adjustment of subscriber policies
US10581976B2 (en) 2015-08-12 2020-03-03 A10 Networks, Inc. Transmission control of protocol state exchange for dynamic stateful service insertion
JP2021529392A (ja) * 2018-06-28 2021-10-28 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited データ検証の方法および装置、ならびに記憶媒体
JP2022547515A (ja) * 2019-09-06 2022-11-14 エバーシーン リミテッド 集中ビデオ処理のための分散コンピューティングシステム
US11822979B2 (en) 2021-09-09 2023-11-21 Hitachi, Ltd. Computer system and data transmission control method

Citations (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 クライアントサーバシステム、中継サーバ、接続先サーバの決定方法
JP2003122712A (ja) * 2001-10-12 2003-04-25 Nippon Telegr & Teleph Corp <Ntt> クライアント監視方法、サーバー装置、プログラム及び記録媒体
JP2005062927A (ja) * 2003-08-11 2005-03-10 Hitachi Ltd 負荷制御方法および装置並びにその処理プログラム

Patent Citations (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 クライアントサーバシステム、中継サーバ、接続先サーバの決定方法
JP2003122712A (ja) * 2001-10-12 2003-04-25 Nippon Telegr & Teleph Corp <Ntt> クライアント監視方法、サーバー装置、プログラム及び記録媒体
JP2005062927A (ja) * 2003-08-11 2005-03-10 Hitachi Ltd 負荷制御方法および装置並びにその処理プログラム

Cited By (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE47296E1 (en) 2006-02-21 2019-03-12 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
US9497201B2 (en) 2006-10-17 2016-11-15 A10 Networks, Inc. Applying security policy to an application session
US9270705B1 (en) 2006-10-17 2016-02-23 A10 Networks, Inc. Applying security policy to an application session
US9253152B1 (en) 2006-10-17 2016-02-02 A10 Networks, Inc. Applying a packet routing policy to an application session
JP2009223810A (ja) * 2008-03-18 2009-10-01 Nomura Research Institute Ltd 流量制御装置
JP2009245131A (ja) * 2008-03-31 2009-10-22 Nec Corp コンピュータ装置、コンピュータ装置の拡張カード、負荷分散方法及びプログラム
WO2010070919A1 (ja) 2008-12-19 2010-06-24 株式会社ナカヨ通信機 分散処理機能を有するゲートウェイおよび通信端末
US8417769B2 (en) 2008-12-19 2013-04-09 Nakayo Telecommunications, Inc. Gateway having distributed processing function, and communication terminal
US10735267B2 (en) 2009-10-21 2020-08-04 A10 Networks, Inc. Determining an application delivery server based on geo-location information
US9960967B2 (en) 2009-10-21 2018-05-01 A10 Networks, Inc. Determining an application delivery server based on geo-location information
US8717600B2 (en) 2010-02-22 2014-05-06 Canon Kabushiki Kaisha Network system, network system control method, and storage medium
JP2011170766A (ja) * 2010-02-22 2011-09-01 Canon Inc ネットワークシステム、ネットワークシステムの制御方法、及び、プログラム
JP2011186810A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd 負荷分散装置、負荷分散方法及び負荷分散プログラム
JP2014502382A (ja) * 2010-09-30 2014-01-30 エイ10 ネットワークス インコーポレイテッド サーバ負荷状態に基づきサーバをバランスさせるシステムと方法
US10447775B2 (en) 2010-09-30 2019-10-15 A10 Networks, Inc. System and method to balance servers based on server load status
US9961135B2 (en) 2010-09-30 2018-05-01 A10 Networks, Inc. System and method to balance servers based on server load status
JP2014505918A (ja) * 2010-12-02 2014-03-06 エイ10 ネットワークス インコーポレイテッド 動的サービス応答時間に基づきサーバにアプリケーショントラフィックを配信するシステムと方法
US10178165B2 (en) 2010-12-02 2019-01-08 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US9961136B2 (en) 2010-12-02 2018-05-01 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
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 日本電気株式会社 負荷分散装置、方法及びプログラム
US9652293B2 (en) 2011-09-27 2017-05-16 Oracle International Corporation System and method for dynamic cache data decompression in a traffic director environment
JP2018067960A (ja) * 2011-09-27 2018-04-26 オラクル・インターナショナル・コーポレイション トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2014530434A (ja) * 2011-09-27 2014-11-17 オラクル・インターナショナル・コーポレイション トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2017010587A (ja) * 2011-09-27 2017-01-12 オラクル・インターナショナル・コーポレイション トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
JP2018067959A (ja) * 2011-09-27 2018-04-26 オラクル・インターナショナル・コーポレイション トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法
US9733983B2 (en) 2011-09-27 2017-08-15 Oracle International Corporation System and method for surge protection and rate acceleration in a traffic director environment
US9477528B2 (en) 2011-09-27 2016-10-25 Oracle International Corporation System and method for providing a rest-based management service in a traffic director environment
US10484465B2 (en) 2011-10-24 2019-11-19 A10 Networks, Inc. Combining stateless and stateful server load balancing
US9270774B2 (en) 2011-10-24 2016-02-23 A10 Networks, Inc. Combining stateless and stateful server load balancing
US9906591B2 (en) 2011-10-24 2018-02-27 A10 Networks, Inc. Combining stateless and stateful server load balancing
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
WO2013069191A1 (ja) * 2011-11-09 2013-05-16 日本電気株式会社 解析処理システム
US8984126B2 (en) 2011-11-09 2015-03-17 Nec Corporation Service collaboration device, service collaboration method, and computer-readable recording medium
JPWO2013069191A1 (ja) * 2011-11-09 2015-04-02 日本電気株式会社 解析処理システム
US9386088B2 (en) 2011-11-29 2016-07-05 A10 Networks, Inc. Accelerating service processing using fast path TCP
US9979801B2 (en) 2011-12-23 2018-05-22 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
US9602442B2 (en) 2012-07-05 2017-03-21 A10 Networks, Inc. Allocating buffer for TCP proxy session based on dynamic network conditions
US10516577B2 (en) 2012-09-25 2019-12-24 A10 Networks, Inc. Graceful scaling in software driven networks
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US10862955B2 (en) 2012-09-25 2020-12-08 A10 Networks, Inc. Distributing service sessions
US10491523B2 (en) 2012-09-25 2019-11-26 A10 Networks, Inc. Load distribution in data networks
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
US9705800B2 (en) 2012-09-25 2017-07-11 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
US9544364B2 (en) 2012-12-06 2017-01-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
US11005762B2 (en) 2013-03-08 2021-05-11 A10 Networks, Inc. Application delivery controller and global server load balancer
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
US10659354B2 (en) 2013-03-15 2020-05-19 A10 Networks, Inc. Processing data packets using a policy based network path
JP2014217262A (ja) * 2013-04-30 2014-11-17 株式会社日立製作所 監視制御システム、処理分散装置及び処理分散方法
US10038693B2 (en) 2013-05-03 2018-07-31 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
US10305904B2 (en) 2013-05-03 2019-05-28 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
US10257101B2 (en) 2014-03-31 2019-04-09 A10 Networks, Inc. Active application response delay time
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
US10686683B2 (en) 2014-05-16 2020-06-16 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
US10749904B2 (en) 2014-06-03 2020-08-18 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US10880400B2 (en) 2014-06-03 2020-12-29 A10 Networks, Inc. Programming a data network device using user defined scripts
JP2017033240A (ja) * 2015-07-31 2017-02-09 三菱電機株式会社 サーバ
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
JP2017215923A (ja) * 2016-05-31 2017-12-07 エーオー カスペルスキー ラボAO Kaspersky Lab 分散ネットワークにおけるバーチャルマシン上の悪意のあるファイルを検出するシステム及び方法
JP2021529392A (ja) * 2018-06-28 2021-10-28 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited データ検証の方法および装置、ならびに記憶媒体
JP7442466B2 (ja) 2018-06-28 2024-03-04 アリババ・グループ・ホールディング・リミテッド データ検証の方法および装置、ならびに記憶媒体
JP2022547515A (ja) * 2019-09-06 2022-11-14 エバーシーン リミテッド 集中ビデオ処理のための分散コンピューティングシステム
US11822979B2 (en) 2021-09-09 2023-11-21 Hitachi, Ltd. Computer system and data transmission control method

Also Published As

Publication number Publication date
JP4916809B2 (ja) 2012-04-18

Similar Documents

Publication Publication Date Title
JP4916809B2 (ja) 負荷分散制御装置および方法
US8667120B2 (en) Load control device and method thereof for controlling requests sent to a server
US9154572B2 (en) Changing I/O types for processing data requests
US9813529B2 (en) Effective circuits in packet-switched networks
US6748414B1 (en) Method and apparatus for the load balancing of non-identical servers in a network environment
US9185047B2 (en) Hierarchical profiled scheduling and shaping
Prabhavat et al. Effective delay-controlled load distribution over multipath networks
Nakai et al. Load balancing for internet distributed services using limited redirection rates
US20040024861A1 (en) Network load balancing
JP2005092862A (ja) 負荷分散方法及びクライアント・サーバシステム
JP4394710B2 (ja) 負荷制御装置及び方法及びプログラム
JP2008059040A (ja) 負荷制御システムおよび方法
CN102271078A (zh) 面向服务质量保障的负载均衡方法
JP2002091910A (ja) ユーザの行動及び予測に基づいて要求を分類するWebサーバ要求分類システム
Ding et al. DAQ: Deadline-aware queue scheme for scheduling service flows in data centers
JP4646931B2 (ja) サーバ装置およびリクエスト整理方法
Nakai et al. Improving the QoS of web services via client-based load distribution
JP2009237748A (ja) クライアントサーバシステム
KR20010038486A (ko) 이더넷 큐오에스 지원 버퍼 및 큐 구조와 그 운용 방법
JP2013222407A (ja) 流量制御機能を有するシステム
JP2017059250A (ja) 流量制御機能を有するシステム
US10834005B2 (en) Buffer shortage management system
Vakkalanka A classification of job scheduling algorithms for balancing load on web servers
Kurebayashi et al. A Web access SHaping method to improve the performance of congested servers
Borkar et al. Implementation of round robin policy in DNS for thresholding of distributed web server system

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