[go: up one dir, main page]

JP3270012B2 - ネットワークサーバ負荷検出装置、割当装置および方法 - Google Patents

ネットワークサーバ負荷検出装置、割当装置および方法

Info

Publication number
JP3270012B2
JP3270012B2 JP25431898A JP25431898A JP3270012B2 JP 3270012 B2 JP3270012 B2 JP 3270012B2 JP 25431898 A JP25431898 A JP 25431898A JP 25431898 A JP25431898 A JP 25431898A JP 3270012 B2 JP3270012 B2 JP 3270012B2
Authority
JP
Japan
Prior art keywords
server
communication
load
client
connection
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.)
Expired - Fee Related
Application number
JP25431898A
Other languages
English (en)
Other versions
JP2000092052A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP25431898A priority Critical patent/JP3270012B2/ja
Priority to PCT/JP1999/003692 priority patent/WO2000014931A1/ja
Priority to EP99929754A priority patent/EP1102442B1/en
Priority to DE69937241T priority patent/DE69937241T2/de
Publication of JP2000092052A publication Critical patent/JP2000092052A/ja
Priority to US09/800,488 priority patent/US7383331B2/en
Application granted granted Critical
Publication of JP3270012B2 publication Critical patent/JP3270012B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
    • H04L47/431Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR] using padding or de-padding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0847Transmission error
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、サーバ資源の割り
当てに関し、特に、ネットワークサービスを行うサーバ
へサービスを割り振る方法に関するものである。
【0002】
【従来の技術】近年、インターネット/イントラネット
の急速な普及により、ネットワークサービスサーバの効
率的利用およびサービス安定性が要求されてきている。
サーバの効率的利用および安定したサービス供給にはサ
ーバへのサービスの最適な割り振りが不可欠で、そのた
めにはサーバの負荷を正確に認識する必要がある。
【0003】従来技術におけるサーバの負荷認識方法と
しては以下に示すものが知られている。 (1).エージェント方式 サーバ上にCPUやメモリなどの資源使用率を計測するプ
ログラムをおく方式であるが、エージェント自身がサー
バの負荷を上げ、エージェントが外部と通信を行う場
合、そのために帯域を消費するなど、エージェントによ
る負荷計測精度への干渉が生じる。また、サーバへエー
ジェントプログラムをインストールしなければならない
ため、汎用性に欠け指導コストが大きいという問題があ
った。 (2).負荷計測通信方式 サーバに対しpingや擬似的なサービス通信などを行
い、レスポンス時間などからサーバ負荷を求める方式で
あるが、計測のための通信で経路の帯域を消費してしま
い、サーバも応答のための負荷を負うので負荷計測への
干渉が生じる。また、計測に用いるプロトコルなどをサ
ーバがサポートしている必要があり汎用性に欠けるとい
った問題があった。 (3).VC数、接続時間、接続頻度、接続エラー率、レスポ
ンス時間の計測 これらは、クライアントからのパケットをサーバへ中継
する装置上にあって、中継時に計測したサーバへのVC
数、接続時間、接続頻度、接続エラー率、レスポンス時
間からサーバ負荷を求める方式であるが、接続時のサー
バの振る舞いに基づくため誤差が大きい。精度を上げる
ためには多量の接続を必要とするため、少ない接続で大
量の通信を行うサービスには適さない。また、中継が必
須であるため、計測装置のスループットでサーバのスル
ープットが制限されるといった問題があった。 (4).ヒット回数、ヒット率計算方式 WWWサーバなどへのパケットを調べ、アクセス対象であ
るファイルなどのコンテンツ毎にアクセス回数(ヒット
回数)やアクセス頻度(ヒット率)を計測し、結果から
サーバ負荷を求める方式であるが、アクセス対象ファイ
ルを特定するためにはプロトコル毎のパケット解析処理
が必要になり新規サービスに対応できない。さらにサー
バの性能が既知でなければならない。サーバ性能をあら
かじめ与えるにはサーバ性能をカタログ値や経験で求め
るしかないが、サーバ性能はシステム構成や運用形態に
大きく影響されるため、標準的な構成や形態に基づいた
カタログ性能値は正確でなく、経験的に求める場合は少
なくとも1回の障害を避けることができないといった問
題があった。 以上のように、いずれの方式もサーバに負担をかけずに
高速かつ効率的にサーバの負荷を検出できるものではな
かった。
【0004】さらに、このようなサーバの負荷が正確に
認識できないために、サーバで提供されるサービスを割
り振ることも難しかった。サービスの割り振りという視
点だけからは以下のような方式が提案されている。 (5).ラウンドロビンDNS方式 DNS(Domain Name System)サービスにおいて、1つのド
メイン名に対し複数のサーバのIPアドレスを対応させる
ようエントリ表に設定しておき、クライアントからのサ
ーバIPアドレスの問い合わせ要求に対し、各サーバをエ
ントリ表にしたがい循環的(ラウンドロビン)に割り当
て、割り当てられたサーバのIPアドレスを選択してクラ
イアントに応えることで、サービスを複数のサーバへ分
配する方式である。
【0005】しかし、このラウンドロビンDNS方式で
は、サービスの分配率は、均等であるかあるいは単純な
比率でしか行えず、各サーバは、それぞれの能力や動的
な負荷状況に関係なく、割り当てられた分配率に応じて
サービスを行わなければならないので、各サーバの負荷
状況に差が生じてしまい、全体として非効率になってし
まっていた。また、DNS問い合わせ情報は、通常クライ
アント側でキャッシングされてしまうので、比率変更が
生じてもそれをただちに反映できないという問題もあっ
た。 (6).ハッシュテーブルを用いた分配方式 コネクションを管理するハッシュテーブルのエントリを
サーバへ割り当て、割り当てるエントリ数に応じた比率
でサービスをサーバへ分配する方式である。
【0006】この方式ではまず、クライアントからのサ
ービス要求時にクライアントアドレスやサービスからエ
ントリを決め、そのエントリが割り当てられているサー
バへ要求を送る。そして、割り当てたエントリ数の比率
に応じた数のサービスが各サーバへ振り分けられるの
で、高性能サーバへ多くのエントリを割り振ったり、高
負荷になったサーバへの割り当てたエントリをそれ程負
荷の高くないサーバへ割り当て直したりすることでサー
バの効率的利用を実現している。
【0007】しかし、このハッシュテーブルを用いた分
配方式では、ハッシュエントリ数の比率をサービス分配
率へ正しく反映させるためには、偏りのないハッシュ値
を生成するハッシュ関数が必要であるが、一般にハッシ
ュキー(クライアントアドレスやポート番号など)のあ
らゆる分布に対し偏りのないハッシュ値を生成するハッ
シュ関数を見つけることは不可能である。また、分配率
の精度はハッシュエントリ数に比例するため、精度を上
げるためには多数のエントリ数が必要となり、記憶資源
(バッファ)を多く消費してしまう。そして、結果的に
コネクション管理に使用できる記憶資源(バッファ)が
少なくなってしまい、大量なアクセスを扱うことができ
なくなるといった問題があった。 (7).サーバの状態や性能にしたがった分配方式 サーバに対しpingなどでレスポンス時間を計測した
り、クライアントからのパケットを中継して、中継時に
接続時間、接続エラー率などを計測してサーバの負荷の
高低を予測したり、サーバ間の性能比率を予測する等し
て、負荷や性能比に応じた量のサービスを分配する方式
である。
【0008】しかし、この方式では、クライアントの処
理能力、クライアントまでの経路の長さや帯域幅などと
は無関係にどのクライアントへのサービスも平等にサー
バへ分配するため、サーバの利用効率を最大にできなか
った。
【0009】たとえば経路の帯域幅が狭かったり長かっ
たりして経路がボトルネックとなっているクライアント
や処理能力の低いクライアントにとってサーバの性能
(特にスピード)差や負荷はサービス品質には現れてこ
ない。
【0010】逆に、近くや高速な回線で接続しているク
ライアントあるいは処理能力が高いクライアントにとっ
てサーバの性能差や負荷はサービス品質に大きく影響す
ることになる。そこで全てのクライアントへのサービス
を平等に振り分けようとすると、クライアントにとって
必要以上のサーバ資源を振り分けたり、不足したサーバ
資源を振り分けたりせざるを得なくなってしまうといっ
た問題があった。 以上述べたように、従来技術におけるサーバの負荷認識
方法ならびにサーバ割当方法はいずれも問題があった。
【0011】本発明は、上記問題点を解決するべく提案
されたものであり、その目的は、サーバの負荷をサーバ
に負担をかけずに高速かつ効率的に認識するとともに、
サーバにおいて動的な負荷状況に応じたサービス分配を
行い、設定や調整で得たサービス分配率を正確にサービ
ス分配に反映させるとともに、クライアント毎に必要な
サーバ資源を見積もりながらサービスを分配することで
サーバの利用効率を最大にすることにある。
【0012】
【課題を解決するための手段】本発明は、前記課題を解
決するため、以下の手段を採用した。本発明の第1の手
段は、クライアントからサーバへの通信を監視し、接続
当たりの通信データサイズをサーバの負荷として計測す
るステップと、接続当たりの通信データサイズの変化を
検出し、最大値を記録するステップと、前記最大値に対
するその時点での接続当たりの通信データサイズが小さ
くなればサーバが高負荷であると判断するステップとか
らなるネットワークサーバ負荷検出方法である。
【0013】ここで、TCP等では、サーバはクライア
ントから送られたパケットデータを保持するための記憶
資源(バッファ)を接続毎に均等に割り当てているが、
サーバは次回の受信で記憶資源(バッファ)に保持でき
るデータサイズをクライアントへ通知し、クライアント
はサーバから通知されたサイズのデータをサーバに送る
ようになっている。
【0014】したがって、サーバが高負荷になるとクラ
イアントから送られたデータをただちに処理できなくな
るので、データの全てあるいは一部がサーバの記憶資源
(バッファ)内に残留することになり、結果としてサー
バは記憶資源(バッファ)内の残留データの分だけ小さ
いサイズをクライアントに通知せざるを得なくなる。
【0015】したがって、通信回線上での接続時間当た
りでのデータサイズを検出することによって、サーバの
高負荷状態を検出することが可能となる。本発明の第2
の手段は、前記第1の手段において、監視通信最小数お
よび監視最小時間を用いて、監視した通信の数が監視通
信最小数に達し、かつ、計測時間が監視最小時間に達す
るまで、接続数および通信データサイズを計測するよう
にした。
【0016】本発明の第3の手段は、前記第1の手段に
おいて、接続開始および接続終了の通信を認識し、接続
開始および接続終了の通信データサイズを負荷検出対象
から除外するようにした。
【0017】接続開始と終了の通信データは小さくサー
バの負荷には依存しないので、通信総データサイズ計上
から除外することで、負荷計測および高負荷判断の精度
を上げる効果がある。
【0018】本発明の第4の手段は、前記第1の手段に
おいて、接続開始通信の情報を接続終了または接続確立
まで保持するステップと、クライアントが接続失敗と判
断して行う再接続のための接続開始通信を前記保持され
た情報に基づいて検出するステップと、接続開始通信回
数に占める再接続通信の割合をサーバの負荷とし、この
割合が高い場合にサーバが高負荷であると判断するもの
である。
【0019】サーバの負荷が大きい場合には、サーバは
クライアントからの接続要求に応答通知を返信しなくな
る。これに対してクライアントは接続要求を再送するこ
とになる。したがって、通信回線上でのクライアントの
接続要求の再送を検出することによりサーバの高負荷を
判定できる。
【0020】本発明の第5の手段は、前記第1の手段に
おいて、さらに、クライアントからの通信データサイズ
の分布を求めるステップと、前記分布からサーバの負荷
に関係しない極端に小さな通信データを識別するステッ
プと、前記極端に小さな通信データを負荷判定から除外
するステップとを含むものである。
【0021】サーバ負荷に関係しない極端に小さな通信
データを計測から除外することで負荷計測および高負荷
検出の精度を上げる効果がある。本発明の第6の手段
は、前記第1の手段において、クライアントからサーバ
への通信から少なくともシーケンス番号を求めるステッ
プと、前記シーケンス番号の最大値を、接続開始から終
了まで保持するステップと、受信した通信のシーケンス
番号を前記で保持されたシーケンス番号と比較するステ
ップと、通信から得られたシーケンス番号が保持された
シーケンス番号よりも小さい場合、その通信を計測から
除外するようにした。
【0022】シーケンス番号は通常昇順であるが、通信
回線上での輻輳などによって通信の順序性の破壊もしく
は欠損が起きると順序が昇順でなくなる。サーバは到着
していないデータ以降のデータを処理できないので、サ
ーバ負荷に関わらずサーバの受信可能データサイズが小
さくなり、クライアントの通信データサイズも合わせて
小さくなる。経路の影響を上記の方法で回避すること
で、サーバ負荷計測および高負荷検出の精度を上げる効
果がある。
【0023】本発明の第7の手段は、前記第1の手段に
おいて、前記通信から得られたシーケンス番号が保持さ
れたシーケンス番号よりも小さい場合、当該通信データ
を重み付け処理を行った後に計上する、または両シーケ
ンス番号から経路上に問題がなかったときの通信データ
サイズを予測して、予測したサイズを負荷検出に計上す
るようにした。
【0024】本発明の第8の手段は、サーバからクライ
アントへの通信を監視し、サーバがクライアントへ通知
する受信可能データサイズおよび接続数を計測するステ
ップと、接続当たりの受信可能データサイズをサーバ負
荷として求めるステップと、接続当たりの受信可能デー
タサイズの最大値を記憶し、当該最大値に対する現接続
当たりの受信可能データサイズが小さくなることでサー
バが高負荷であると判断するネットワークサーバ負荷検
出方法である。
【0025】本発明の第9の手段は、クライアントから
サーバへの通信を監視し、サーバの負荷状態を検出する
サーバ負荷検出装置であって、接続当たりの通信データ
のサイズを計算するデータサイズ計算手段と、接続当た
りの通信データサイズの変化を検出し、最大値を記憶す
る記憶手段と、前記最大値に対するその時点での接続当
たりの通信データサイズが一定値以下となったときにサ
ーバの高負荷を検出する負荷検出手段とからなるネット
ワークサーバ負荷検出装置である。
【0026】本発明の第10の手段は、データをネット
ワークを介してクライアントから複数のサーバに転送す
る装置において、クライアントから送信されるデータを
宛先を変えてサーバのいずれかに転送する中継手段と、
データとサーバの対応関係を保持し中継手段へ宛先を指
示する接続管理手段と、サーバ、クライアントおよび経
路の処理能力を計測して求め、それに基づいたサービス
分配率にしたがった関数を用いてデータとサーバの対応
を決定し接続管理手段へ伝えるサーバ割当手段とからな
るネットワークサーバ割当装置である。
【0027】サーバの性能・負荷およびクライアント側
の性能・負荷を計測して求めた方法にしたがってサービ
スを分配するので、サーバの動的な負荷状況の変化に自
動的に対応でき、さらに、クライアントから見えるサー
ビス品質を維持するために必要なだけのサーバを割り当
てることができ、サーバの利用効率を最大にするという
効果がある。さらに、サーバ割当決定を関数を用いて行
うので、サービス分配率を正確に分配に反映できる効果
がある。さらに、単一の接続管理手段のみで十分な効果
を得られる。
【0028】本発明の第11の手段は、前記第10の手
段でのサーバ割当手段において、サーバの処理能力に応
じた確率分布に対し、クライアントおよび経路の処理能
力が低いほど一様分布に近づける修正を行うことで求め
た修正確率分布を分配率とするネットワークサーバ割当
装置である。
【0029】クライアントおよび経路の処理能力の高さ
とサーバの処理能力がサービス品質に与える影響の大小
の比例関係をサービス分配率へ反映するので、サーバ処
理能力の影響がサービス品質に与える影響が大きいクラ
イアントへ処理能力が高いサーバを優先的に割り当てる
ことができる効果がある。
【0030】本発明の第12の手段は、前記第10の手
段でのサーバ割当手段において、現在サービス中のクラ
イアントについてのクライアントおよび経路の処理能力
の分布を求め、新規接続クライアントおよび経路の処理
能力が分布に対して低いほど、サーバの処理能力に応じ
た確率分布を一様分布に近づけ、逆に高いほど各サーバ
の処理能力を際立たせる修正を行い修正確率分布を求
め、それを分配率とするようにした。
【0031】サービス分配率を現在サービス中のクライ
アントおよび経路の処理能力分布との関係で調節するの
で、遠地からと近地からのクライアントの比率が変化す
るような場合でも自動的に対応できる効果がある。
【0032】本発明の第13の手段は、前記第10の手
段において、サーバ割当手段を複数分であり、接続管理
手段の規模はサービス分配に依存しないため、記憶資源
(バッファ)の利用効率を上げる効果がある。
【0033】サービス別やクライアント別に割当対象サ
ーバ群を使い分けたりサービス分配ポリシを切り替えた
りするなど多様なサーバ割り当てを単一の装置で行える
効果がある。
【0034】
【発明の実施の形態】
【0035】
【実施例1】図1は、本実施例1におけるサーバ負荷検
出装置4の機能構成を示したものである。同図に示すよ
うに、サーバ負荷検出装置4は、クライアント1とサー
バ2の通信回線3に接続されており、具体的には、ルー
タ等に実装することも可能である。
【0036】このサーバ負荷検出装置4は、同図に示す
ように、通信回線3を伝送されるパケットデータ(TC
Pパケット:Transmission Control Protocol Packet)
を取り込む通信データ取込部5を有している。この通信
データ取込部5には、接続数検出部6、パケット数計算
部8およびパケットサイズ計算部7が接続されている。
【0037】接続数検出部6は、通信データ取込部5が
取り込んだTCPパケットから単位時間当たりの接続数
Cを検出する機能を有している。この接続数検出部6
は、先頭パケットを意味するSYNパケットを検出する
と+1とし、最後のパケットを意味するFINパケット
を検出すると−1とする。これによって、当該サーバに
現在接続されているクライアントの数が検出できること
になる。
【0038】パケット数計算部8は、前記通信データ取
込部5が取り込んだ単位時間当たりのTCPパケットの
数Nをカウントする機能を有しており、パケットサイズ
計算部7は、前記通信データ取込部5が取り込んだ単位
時間当たりのTCPパケットの合計サイズSを計算する
機能を有している。
【0039】これらの各部の計算・計数データは、負荷
検出部10に送られて後述の所定の演算処理に基づいて
負荷が判定される。パケットサイズ計算部7によって計
算されるパケット合計サイズSは、計測開始時に0と
し、パケットが到着したらそのパケットサイズ分だけ順
次増やしていく。なお、SYN,FINパケットについ
てはデータパケットに較べてそのサイズが小さく、サー
バ負荷への影響が小さいため、無視してもよい。
【0040】パケット数計算部8によってカウントされ
るパケット数Nは、計測開始時に0とし、パケットが到
着する度に+1とする。なお、ここでもSYN,FIN
パケットについては前述した理由によりカウントを無視
してもよい。
【0041】パケット数計算部8によるカウントはNが
ある値Nminを超えるまで継続するが、このNmin
を超えても計測開始からの時間があらかじめ設定された
時間Tminよりも短かいときには、時間Tminが経
過するまでカウントを継続する。
【0042】ここで、NminおよびTminはあらか
じめパケット数計算部8に設定しておく。このようにN
min,Tminを併用することで、負荷検出のための
パケットのサンプル数が少ないために生じる計算誤差を
減じることができ、また、サンプル数が多すぎるために
生じるオーバーフローを回避することもでき、負荷検出
精度を高めることができる。
【0043】負荷検出部10における負荷検出は以下の
演算処理を行うことにより行われる。まず、負荷検出部
10は、接続数検出部6から接続数Cを、パケットサイ
ズ計算部7よりパケットサイズSを受け取ると、下記の
式に基づいてサーバ負荷指標値Lを求める。
【0044】なお、ここでTはタイマ11により計測さ
れた計測時間である。ここで設定されたTmin経過時
にサンプルとなるカウント数NがNminを超えている
ときにはT=Tminとする。
【0045】L=(S/C)/T ここで、Lは単位時間での1接続当たりのデータ転送量
を意味することになる。このLを用いてサーバ2の負荷
を検出することができる。
【0046】また、負荷検出部10では、サーバ2の処
理能力限界予測値Lmaxを更新する。ここでLmax
は0を初期値とし、LがLmaxを超えた場合にはLm
axの値をLとする。ここでもし、LとLmaxとの間
に以下の関係が成立すればサーバは高負荷であると判断
することができる。 L<αLmax ただし 0<α<=1 ・・・(1) 上式(1)において、αはあらかじめ設定した定数であ
る。図3は、前述した負荷検出部10における負荷検出
をフロー図で示したものである。
【0047】まず、計測が開始されると、カウント数N
およびサーバ負荷指標値Lはリセットされ、タイマ11
がスタートされる(ステップ301)。そして、通信デ
ータ取込部5を介してパケットの受信が開始されると
(302)、接続開始パケットSYNであるか(30
3)、接続終了パケットFINであるか(305)がそ
れぞれ判定される。ここで、接続開始パケットSYNで
ある場合には、変数Vが+1される(304)。また、
接続終了パケットFINである場合には変数Vが−1さ
れる(306)。
【0048】次に、新たなパケットが受信される度にN
が+1されてサーバ負荷指標値Lが負荷検出部10で計
算される(307)。この計算は前に説明した計算式に
基づいて行われる。そして、前述の(1)式を用いて、サ
ーバ負荷指標値LがαLmaxを超えている場合には、
サーバは高負荷状態になっていると判定される。
【0049】このような高負荷判定は、タイマ値があら
かじめ設定されたTmin以上となり、かつパケットの
カウント数Nがあらかじめ設定されたNmin以上とな
ったときに終了する(308)。
【0050】ここで、TCPでは、サーバ2はクライア
ント1から送られたパケットデータを保持するための記
憶資源(バッファ)を接続毎に均等に割り当てている。
サーバ2は次回の受信で記憶資源(バッファ)に保持で
きるデータサイズをクライアント1へ通知し、クライア
ント1はサーバ2から通知されたサイズのデータを通信
回線3を通じてサーバ2に送るようになっている。
【0051】したがって、サーバ2が高負荷になるとク
ライアント1から送られたデータをただちに処理できな
くなるので、データの全てあるいは一部がサーバ2の記
憶資源(バッファ)内に残留することになり、結果とし
てサーバ2は記憶資源(バッファ)内の残留データの分
だけ小さいサイズをクライアントに通知せざるを得なく
なる。
【0052】ここで、TCPはできるだけ大きなサイズ
のデータをやり取りするよう設計されたプロトコルであ
るため、サーバ2が高負荷となる前の状態では、クライ
アント1からサーバ2に送られるデータサイズは最大と
なり、その後、サーバ2の負荷が大きくなると通信回線
3上を伝送されるデータサイズも小さくなる。本実施例
では、図2に示すように、このデータサイズが小さくな
ることに着目してサーバの高負荷状態を検出している。
【0053】本実施例では、サーバ2が高負荷となる前
の状態のときの通信回線3を伝送されるデータサイズが
最大の値をLmaxとしてデータベース12に保持する
ようにしている。そして、(1)式で示したように、この
Lmaxに定数αを乗じた値(しきい値)とLとを比較
し、このLがしきい値以下となったときにサーバ2が高
負荷状態であると判定している。
【0054】このように本実施例では、接続当たりのサ
イズを調べるため、接続数自体が減少することによるデ
ータ合計サイズの減少で判断を誤ることを防ぐことがで
き、さらにαを用いることにより、外乱で生じるLの変
動による高負荷誤検出を防ぐことができる。
【0055】なお、図4のフロー図は、図3で説明した
フロー図とほぼ同様であるが、通信開始パケットSYN
と通信終了パケットFINとを考慮しないで高負荷を判
定する手順を示したものである。
【0056】
【実施例2】本実施例2は、クライアント1からサーバ
2への再送処理を利用した高負荷検出方法である。
【0057】本実施例2で用いる装置構成は実施例1の
図1で示したものとほぼ同様であるので図示は省略す
る。本実施例2では、個々の開始パケットSYNの情報
をデータベース12に記録している(図6(a)〜
(c)参照)。そして、それぞれの開始パケットSYN
の情報は、クライアントアドレス(IP)、クライアン
トポート番号(sp)、サーバポート番号(dp)の組
で識別するようになっている。
【0058】TCPではサーバ2がクライアント1から
の開始パケットSYNを受信すると、クライアント1に
対してSYN受信確認パケットを返信する。ここで、ク
ライアント1がサーバ2からのSYN受信確認パケット
を一定時間経過しても受信できない場合、再度開始パケ
ットSYNをサーバ2に対して再送信している。
【0059】この概念を示したものが図5である。同図
(a)において、まずクライアント1aより接続要求
(開始パケットSYN)がサーバ2に送信される。一
方、別のクライアント1bからも接続要求(開始パケッ
トSYN)がサーバ2に送信される。ここで、サーバ2
のバッファ51に余裕のある場合、すなわち低負荷状態
の場合には、サーバ2は、クライアント1aおよび1b
に対して応答通知(受信確認パケット)を送信する。し
かし、サーバ2のバッファ51に余裕のない場合には同
図(b)に示すように、クライアント1からの接続要求
(開始パケットSYN)に対して応答ができない。そこ
でクライアント1は、同図(c)に示すように、一定時
間内にサーバ2からの応答通知(受信確認パケット)を
受領できない場合には、サーバ2に対して接続要求を再
送する本実施例2では、開始パケットSYNの数Csを
接続数検出部6でカウントし、クライアント1からの開
始パケットSYNの再送回数を検出してCsに対する開
始パケットSYNの再送回数の比率Rsを算出し、これ
をサーバ負荷指標値Crsとする。
【0060】ここで、開始パケットSYNの再送は、開
始パケットSYNから抽出したSYN情報がデータベー
ス12に既に記録済みであれば再送であると判別でき
る。このことを示したのが図6である。同図(a)にお
いて、負荷検出装置4のデータベースには、SYN情報
として、SYN1(IP1,sp1,dp1)、SYN
2(IP2,sp2,dp2)およびSYN3(IP
3,sp3,dp3)が記録されている。このときクラ
イアント1からサーバに対して接続要求(開始パケット
SYN4)が通信回線3を通じて発信される。負荷検出
装置4は、この接続要求が、自身のデータベース12に
格納されていない接続要求、すなわち初めての接続要求
である場合には、この接続要求(SYN4:IP4,s
p4,dp4)を当該データベース12に格納する(図
6(b)) そして、この接続要求(SYN4)に対してサーバ2か
らクライアント1に応答通知がなされないときには、ク
ライアント1よりサーバ2に対して当該接続要求(SY
N4)が再送される。負荷検出装置4は、この接続要求
(SYN4)を通信データ取込部5で取り込んで、負荷
検出部10がデータベース12を検索することにより、
既に自身が格納している接続要求であることを知り、そ
の結果当該接続要求(SYN4)が再接続要求であると
判定する。
【0061】負荷検出部10における具体的な計測方法
は実施例1で説明した接続数CおよびパケットサイズS
の計数・検出方法にしたがう。ここで、求めた開始パケ
ットSYNの再送回数の比率Rs、すなわちCrsによ
り次式(2)が成立すればサーバ1は高負荷であると判
定する。 Crs>β ただし、0<β<1 ・・・(2) 上式(3)において、βはあらかじめ設定された定数で
ある。
【0062】サーバ2は接続毎にクライアント1からの
データを保持するバッファ51を割り当てるが、割り当
てるバッファ51が枯渇すると接続を行わずに応答通知
(SYN受信確認パケット)をクライアント1に返さな
い。そのため、クライアント1は開始パケットSYNの
再送数の割合が増加することになる。したがって、式
(2)よりサーバの高負荷を検出することが可能にな
る。図6(d)は、このような再送率(再送回数/通信
回数)とサーバ負荷の関係を示したグラフ図である。
【0063】なお、上式(2)の定数βは、外乱や瞬間
的な高負荷状態による誤検出を防ぐためのものである。
瞬間的な高負荷状態は生起確率が小さくかつ長くは続か
ないため、無視してよい。
【0064】
【実施例3】本実施例3は、負荷検出に際して、通信デ
ータサイズによって計測対象を弁別する技術である。な
お、本実施例3も装置構成は図1と同様であるので、図
1を用いて説明する。
【0065】本実施例3では、負荷検出部10におい
て、クライアント1からのパケットサイズSiとDsと
の間に以下の関係が成立する場合はSiをパケット合計
サイズLに加算しないで負荷検出を行う。 Si<γDs ・・・(3) ただし、0<γ<1, Ds=f(S1,S
2,....Si−1)とする。
【0066】ここで、γはあらかじめ設定された定数で
ある。Dsは計測したパケットサイズの分布指標を求め
る関数で、たとえば平均値としてよい。またDsの結果
値が複数の値であるならば、重み付き加算や選択などに
よって単一の値としてもよい。
【0067】TCPではクライアント1は接続後、送信
データサイズをサーバ2から通知されたデータサイズよ
りも小さなサイズにして送信を開始し、徐々に通知デー
タサイズまで大きくしていく。そのため接続開始後間も
ないクライアント1からのパケットサイズはサーバ2の
負荷に関わらず小さい。
【0068】したがって、接続開始後間もないクライア
ント1の数が多ければ多数の小さな送信データのために
式(1)のLを小さく見積もってしまい負荷計測、高負
荷検出の精度を落としてしまう可能性がある。
【0069】このことを概念的に示したものが図7であ
る。同図(a)では、クライアント1aはサーバ2に対
して比較的大きなサイズのパケットデータAを送信して
いるが、クライアント1bは、通信開始後間もないた
め、コマンドや応答信号など、比較的小さなサイズのパ
ケットデータBを送信している。このような小さなパケ
ットデータはサーバの負荷検出に際して無視して問題な
い。
【0070】そこで、本実施例3では、式(3)を用い
ることにより、接続開始後間もないクライアント1から
のパケットを検出してこれを計測対象から外すことで、
負荷計測と高負荷検出の精度を上げている。
【0071】サーバが高負荷になれば、接続している全
クライアントからのデータサイズが小さくなるが、デー
タ保持のためのバッファ51の減少は比較的緩やかであ
るため、上のLの減少も緩やかである。また、全クライ
アントが一斉に新たに接続を開始することは確率的に低
いため、式(3)で十分である。
【0072】精度を上げるために式(3)に適用条件と
してDsの下限値Dsminを設定し、DsがDsmi
n以下であれば式(3)を適用しない、つまりSiをL
に加算するようにしてもよい。
【0073】
【実施例4】本実施例4は、実施例1で説明した負荷検
出において、通信回線上での輻輳等により生じるパケッ
トの矛盾によりサーバ高負荷が誤検出されてしまうこと
を防止するための技術である。
【0074】本実施例4の装置構成は図1と同様であ
る。ここで、クライアント1からサーバ2へのパケット
は、クライアントアドレス(IP)とクライアントポー
ト番号(sp)およびサーバポート番号(dp)の組
(パケット識別子)およびシーケンス番号を接続開始か
ら終了までがデータベース12に保持される。このとき
保持されるシーケンス番号は最大値(その時点での最終
値)とする。
【0075】負荷検出装置4がクライアント1からのサ
ーバ2へのパケットを受信したら、そのパケットからパ
ケット識別子とシーケンス番号Piを求め、データベー
ス12に保持している同一のパケット識別子のシーケン
ス番号Pjと比較する。
【0076】ここで、負荷検出部10の判定により、P
i<Pjが成り立てば、通信回線3上でパケットの追い
越しが起きたか、途中のパケットが消失したことによっ
て再送されたことがわかる。
【0077】いずれにしても、このような状態でサーバ
2が受け取るデータには途中で欠損が生じることにな
り、欠損個所以降のデータをサーバ2は処理することが
できず、欠損個所以降のデータはバッファ51に残留す
ることになる。これによりサーバ2は受信可能なデータ
サイズが小さくなるが、原因はサーバ負荷ではなくクラ
イアント−サーバ間の経路での輻輳などである。このこ
とを概念的に示したものが図8である。同図では、クラ
イアント1からサーバ2に対してパケットデータ「1〜
3」が送信されているが、これが経路輻輳等の要因でパ
ケットデータ「2」のみが消失している。クライアント
2は、受信したパケットデータ「1,3」をバッファ5
1に格納する。ここで、クライアント1に対して応答通
知(パケットデータ「2」の再送要求)を送るが、自身
のバッファ内ではパケットデータ「2」が受信されてい
ないため、既に到着しているパケットデータ「3」以降
を処理できない状態となっている。
【0078】クライアント1はパケットデータ「2」に
関する応答通知を重複して受信するとパケットデータ
「2」の再送を行う。このようにして、パケットデータ
「2〜5」が揃うことによりサーバ2は受信したこれら
のパケットデータを処理できる状態となるが、ただちに
処理には移行できないため、クライアント1に通知する
バッファの空きサイズは本来のバッファの大きさNより
もはるかに小さいnとなる。
【0079】次に、クライアント1はサーバ2から通知
されたサイズnに格納可能なサイズのパケットデータ
「6」を送信するが、実際にはこのパケットデータ
「6」を受信する段階では、パケットデータ「1〜5」
が処理されているため、バッファには広い空き空間が存
在しており高負荷状態とはなっていない。
【0080】つまり、本実施例4では、このような図8
に示した状態を高負荷と判定しないようにしている。以
上のような理由により、Pi<Pjが成立したパケット
Piは計測から除外する。あるいはある重み付けを行い
計上してもよく、さらに負荷検出部10において、Pj
−Piをパケットサイズに加えて計上してもよい。
【0081】ここで、Pj−Piの算出は、サーバ2内
のバッファ51に残留しているデータの予測サイズをパ
ケットサイズに加えることでデータの欠損が生じなかっ
た場合のサーバ2からクライアント1へ通知される受信
可能データサイズすなわち現パケットのサイズの予測を
行うことを意味している。
【0082】
【実施例5】本実施例5は、サーバ2がクライアント1
に送信するパケットデータを監視することでサーバ2の
負荷を判定するものである。
【0083】本実施例5の負荷検出装置4は、サーバ2
がクライアント1へ送るパケット中のウィンドウサイズ
合計値Swと接続数Cとを監視する。ウィンドウサイズ
はサーバ2がクライアント1へ通知する受信可能なデー
タサイズである。
【0084】Cの値は、サーバ2からクライアント1へ
の開始パケットSYNを検出したときに1増やし、終了
パケットFINを検出した場合1減じることで求める。
ここで、SwとCの計測は実施例1と同様である。
【0085】サーバ2の負荷指標値L3は次式で求めら
れる。Tは実施例1のTと同様であるが必ずしも必須で
はない。 L3=(Sw/C)/T ・・・(4) L3は接続当たりのウィンドウサイズを意味する。L3
を用いてサーバ2の高負荷を検出する方法は次の通りで
ある。
【0086】まず、サーバ2の処理能力限界予測値L3
maxを更新する。L3maxは、0を初期値としL3
がL3maxを超えた場合にL3maxの値をL3とす
ることで行う。
【0087】ここでもし、L3とL3maxとの間に以
下の関係が成立すれば、サーバ2は高負荷であると判定
する。 L3=α3・L3max ただし、0<α3<=1 ・・・(5) 上式(5)において、α3はあらかじめ設定された定数
である。
【0088】サーバ2は、クライアント1に対して、自
身が処理できるバッファ51の空きサイズ、すなわちウ
ィンドウサイズを通知しているが(図9(a))、ここ
で、サーバ2の負荷が上昇しクライアント1から送られ
たデータを完全に処理できなくなると、図9(b)に示
すように、サーバ2はクライアント1に対して以前より
小さいウィンドウサイズnを通知する(より具体的には
次回受信可能なデータサイズである)。このように、サ
ーバ2からクライアントに通知されるウィンドウサイズ
と時間の関係をグラフで示したものが図9(b)であ
る。
【0089】サーバ2の負荷は接続した全てのクライア
ントに影響するため、L3はサーバ負荷の上昇に伴い減
少する。したがって、式(4)よりサーバ負荷を計測す
ることができ、式(5)で高負荷を検出することができ
る。
【0090】
【実施例6】本実施例6は、本発明のサーバ割当装置を
クライアント・サーバ間でTCPパケットを中継する装
置として実現した場合である。
【0091】図10において、宛先変換・パケット中継
手段1002は、クライアント1から受信したパケット
1010が接続要求を意味する開始パケットSYNであ
ると、サービスを割り当てるサーバを決定するためにサ
ーバ割当手段1001のサーバ選択手段1007に対し
てサーバ割当指示1020を出力し、クライアント側処
理能力計測手段1008に計測指示1021を行う。
【0092】サーバ処理能力計測手段1004は、各サ
ーバの処理能力を計算し、結果データ1013をサーバ
割当確率計算手段1006に送出する。各サーバの処理
能力は、サーバ2に対してpingなどを発信してそれ
に対する応答時間から算出することもできるし、ユーザ
があらかじめ設定しておいてもよい。また、本実施例1
〜5で述べたサーバ負荷検出装置を用いることもでき
る。
【0093】クライアント側処理能力計測手段1008
は、中継手段1002からの指示があると、クライアン
ト1および通信回線3の処理能力1018を計算し、サ
ーバ割当確率修正情報生成手段1009に報告する。こ
こで、クライアント側処理能力は、たとえばクライアン
トに対してpingなどを発信してその応答時間から求
めることもできる。また、Bprobなどの帯域計測手
法を用いたり、クライアント1の通信についての過去の
記録、パケットから抽出されるウィンドウサイズやTT
Lから求めることもできる。
【0094】サーバ割当修正情報生成手段1009は、
クライアント側処理能力1018から、サーバ割当確率
分布に対する修正関数1022を生成する。図11にサ
ーバ割当確率分布PsDの例を、図12下図に修正関数
M(1022)の例を示す。
【0095】サーバ割当確率計算手段1006は、サー
バ割当確率分布PsDに修正関数M(1022)を適用
してサーバ割当確率分布MPsDを求める。確率分布P
sDは、現時点で処理能力が高いサーバほど割当確率が
高くなるような分布とする。たとえば、現時点での各サ
ーバの処理能力値(後述)をp1,p2,...pn
(nはサーバの数)とすれば、サーバSiへの割当確率
Piを次式で求めることもできる。 Pi=pi/(p1+p2+...+pn) ・・・(6) 確率修正関数Mは、図12に示すように、クライアント
側の処理能力が低いほどPsDを一様分布に近づけるよ
うに修正する関数となる。たとえばpingなどによる
応答時間Tpingをクライアント処理能力とすれば、
各サーバ処理能力Piについて次の式から修正Pi’を
求めてもよい。 Pi’=Pi+(Pav−Pi) *2/π*arc_tan(α*Tping) ・・・(7) ここで、Pavは、Piの平均値であり、αはあらかじ
め設定された0より大きい数である。また、arc_t
an(x)はtan−1(x)を意味する。
【0096】このPi’から修正確率分布MPsDを求
める。サーバ割当確率計算手段1006は、求めたMP
sDをサーバ選択手段(1007)に送る。サーバ選択
手段(1007)は、MPsDから図13に示すテーブ
ルを生成し、0〜1の任意の値をとる一様乱数値を用い
て実現する。同図のテーブルは、たとえばサーバ数の要
素を持つ配列で実現し、各要素に0〜1までの範囲Pi
の最大値および最小値とサーバアドレスの組をおき、一
様乱数値を含む範囲を持つ要素のサーバアドレスをサー
ビス割当サーバアドレスとしてよい。ただし、各要素の
範囲は他の要素の範囲と重複しないようにする。
【0097】PsDおよびMPsDの確率分布について
は、サーバ処理能力値PiおよびPi’を度数分布とし
て実現してもよい。この場合、一様乱数値は0から全P
iの合計値までの範囲をとるようにする。
【0098】サーバ選択手段1007は、割当サーバを
決定したらそのサーバアドレス1012を接続管理手段
1003に送る。接続管理手段1003は、宛先変換・
パケット中継部より受け取った開始パケットSYNまた
はその一部からクライアントアドレス(IP)、クライ
アントポート番号(sp)、宛先ポート番号(dp)の
組情報を抽出し、組情報とサーバ割当手段1001とか
ら受け取ったサーバアドレスの対を記録する。ここで、
記録には組情報をキーとするハッシュテーブルを用いて
もよい。接続管理手段1003は、宛先変換・パケット
中継手段1002へサーバアドレス1012を送る。
【0099】宛先変換・パケット中継手段1002は、
受信したクライアント1からのパケットの宛先を接続管
理手段1003から受け取ったサーバアドレス1012
に変換してサーバ2に送信する。
【0100】サービス中、宛先変換・パケット中継手段
1002は、接続管理手段1003にパケット1014
を送り、この接続管理手段1003は、パケット101
4から求めた組情報より割当サーバアドレス1012を
求めて宛先変換・パケット中継手段1002に送る。開
始パケットSYNと同様に、宛先変換・パケット中継手
段1002は、受信したクライアント1からのパケット
の宛先を、接続管理手段1003から受けたサーバアド
レス1012に変換してサーバ2へ送信する。
【0101】サービス終了時、すなわち終了パケットF
IN受信時はサービス中と同様であるが、これを受信し
た接続管理手段1003は、パケットに対応した組情報
を破棄する。
【0102】本実施例では、確率分布を用いてサービス
割当を決定することで、処理能力が高いクライアントほ
ど処理能力が高いサーバを割り当て易くなるので、応答
時間などのサービス品質に対するサーバ処理能力の影響
力の大小にしたがったサービス割り当てが可能になる。
【0103】サーバ割当手段1001のサーバ割当確率
修正情報生成手段1009は、過去のクライアント側処
理能力の分布(図14)を求め、新規接続クライアント
のクライアント処理能力値の分布からの隔たりδを求
め、新規接続クライアントのクライアント側処理能力値
の分布からの隔たりδcを求める。そしてδcを修正関
数Mに加味して確率分布を修正する(図15)。ここ
で、たとえばδcを以下の式で求める。 δc=Pca−pci ここで、Pcaは過去のクライアント側処理能力平均値
であり、pciは新規接続クライアントのクライアント
側処理能力値である。δcが小さいほどサーバ処理能力
値piを全piの平均値に近づけ大きいほど平均値から
の隔たりを大きくするように修正関数Mを定める。ただ
し、平均値からの隔たりを大きくする場合、piの修正
値pi’が負数にならないようにする。たとえば、式
(7)を以下のようにしてもよい。 pi’=pi+(Pav−pi)*β*2/π*arc_tan(α*δc+ γ) ・・・(7’) ここで、Pavはpiの平均値であり、α、γはあらか
じめ設定された0より大きい数である。また、arc_
tan(x)はtan−1(x)を意味する。βは−1
のとき、δc<0であり、−dpj/pjのときδ>=
0である。pjはpiの最小値であり、dpj=Pav
−pjとなる。
【0104】このように、新規接続クライアントのクラ
イアント側処理能力値の過去のクライアント側処理能力
値の分布に対する隔たりにしたがってサーバ割当を行う
ことにより、各時点におけるクライアントに応じたサー
バ割当が可能となる。たとえば、遠隔地からと近隣地か
らのクライアントの比率が時間帯によって変動する場合
などに自動的に対応することが可能となる。
【0105】さらに、本実施例では、サーバ割当手段
(1001)を複数配置して、それぞれをクライアント
アドレス、クライアントポート番号、サービスポート番
号などに応じて選択してもよい。
【0106】サービス毎やクライアント毎に割当対象サ
ーバ群を使い分けたり、サービス分配ポリシを切り替え
たりすることが可能となり、多様なサービス割当を一つ
の装置で行うことができる。
【0107】
【発明の効果】以上説明してきたように、本発明は、サ
ーバの負荷計測および高負荷検出をクライアント・サー
バ間の通信を監視して行うので、サーバへ手を加える必
要がなく、サービス以外のパケットを出さない。したが
って、いかなるサーバへも対処でき導入コストが低く負
荷への干渉が一切ないという効果がある。また、プロト
コルに依存しない指標で負荷計測、高負荷検出を行うの
で、いかなるサービスへも対処できるという効果もあ
り、サービス中の通信状態を監視するために外乱の影響
が小さく精度が高いという効果もある。
【0108】さらに、サーバの提供するサービスを複数
のサーバに分担させる際、サーバ構成の変更やサーバの
状態の変化に対し、クライアントから見えるサービス品
質に対するサーバ処理能力の影響の大小に応じて各サー
バの負荷分担を自動的に、かつ、効率的に割り振るの
で、クライアントにとって、迅速なサービスの供給を受
けることができる効果がある。
【図面の簡単な説明】
【図1】 本発明の実施形態である負荷検出装置の接続
構成を示す図
【図2】 実施形態におけるサーバの高負荷判定を行う
ためのデータサイズと時間との関係を示したグラフ図
【図3】 実施例1におけるパケット監視方法を示すフ
ロー図(1)
【図4】 実施例1におけるパケット監視方法を示すフ
ロー図(2)
【図5】 クライアントからサーバへの接続要求と、バ
ッファの状態に応じた応答処理を説明するための図
【図6】 クライアントからサーバへの接続要求の再送
を説明するための図
【図7】 負荷検出においてデータサイズによって対象
データとするか否かの弁別を行う例を示す説明図
【図8】 シーケンス番号に基づくサーバの処理を説明
するための図
【図9】 サーバからクライアントへの通信を監視する
説明図
【図10】 実施形態のサーバ割当装置の構成を示すブ
ロック図
【図11】 サーバ割当確率分布PsDを説明するため
のグラフ図
【図12】 修正関数を説明するための図(1)
【図13】 実施形態において、サーバ選択手段により
生成されるテーブルの一例を示す図
【図14】 過去のクライアント側処理能力値の分布例
を示すグラフ図
【図15】 修正関数を説明するための図(2)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 菊池 慎司 神奈川県川崎市中原区上小田中4丁目1 番1号 富士通株式会社内 (56)参考文献 特開 平10−84385(JP,A) 小浅章,ロードバランシングでWeb サーバのトラフィックを解消 HYPE RFLOWを利用したWebトラフィッ クの解決,WindowsNT POW ERS,株式会社ビー・エヌ・エヌ, 1998年9月1日,第2巻,第6号,第 184−197頁,001,CSND 199800843012 (58)調査した分野(Int.Cl.7,DB名) H04L 12/56 H04L 12/24 - 12/28 G06F 13/00

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 クライアントからサーバへの通信を監視
    し、接続当たりの通信データサイズをサーバの負荷とし
    て計測するステップと、 接続当たりの通信データサイズの変化を検出し、最大値
    を記録するステップと、 前記最大値に対するその時点での接続当たりの通信デー
    タサイズが小さくなればサーバが高負荷であると判断す
    るステップとからなるネットワークサーバ負荷検出方
    法。
  2. 【請求項2】 請求項1において、監視通信最小数およ
    び監視最小時間を用い、監視した通信の数が監視通信最
    小数に達し、かつ、計測時間が監視最小時間に達するま
    で、接続数および通信データサイズを計測するネットワ
    ークサーバ負荷検出方法。
  3. 【請求項3】 請求項1において、接続開始および接続
    終了の通信を認識し、接続開始および接続終了の通信デ
    ータサイズを負荷検出対象から除外するネットワークサ
    ーバ負荷検出方法。
  4. 【請求項4】 請求項1において、接続開始通信の情報
    を接続終了または接続確立まで保持するステップと、 クライアントが接続失敗と判断して行う再接続のための
    接続開始通信を前記保持された情報に基づいて検出する
    ステップと、 接続開始通信回数に占める再接続通信の割合をサーバの
    負荷とし、この割合が高い場合にサーバが高負荷である
    と判断するネットワークサーバ負荷検出方法。
  5. 【請求項5】 請求項1において、さらに、クライアン
    トからの通信データサイズの分布を求めるステップと、 前記分布からサーバの負荷に関係しない極端に小さな通
    信データを識別するステップと、 前記極端に小さな通信データを負荷判定から除外するス
    テップとを含むネットワークサーバ負荷検出方法。
  6. 【請求項6】 請求項1において、クライアントからサ
    ーバへの通信から少なくともシーケンス番号を求めるス
    テップと、 前記シーケンス番号の最大値を、接続開始から終了まで
    保持するステップと、 受信した通信のシーケンス番号を前記で保持されたシー
    ケンス番号と比較するステップと、 通信から得られたシーケンス番号が保持されたシーケン
    ス番号よりも小さい場合、その通信を計測から除外する
    ネットワークサーバ負荷検出方法。
  7. 【請求項7】 請求項1において、前記通信から得られ
    たシーケンス番号が保持されたシーケンス番号よりも小
    さい場合、当該通信データを重み付け処理を行った後
    計上する、または両シーケンス番号から経路上に問題が
    なかったときの通信データサイズを予測して、予測した
    サイズを負荷検出に計上するネットワークサーバ負荷検
    出方法。
  8. 【請求項8】 サーバからクライアントへの通信を監視
    し、サーバがクライアントへ通知する受信可能データサ
    イズおよび接続数を計測するステップと、 接続当たりの受信可能データサイズをサーバ負荷として
    求めるステップと、 接続当たりの受信可能データサイズの最大値を記憶し、
    当該最大値に対する現接続当たりの受信可能データサイ
    ズが小さくなることでサーバが高負荷であると判断する
    ネットワークサーバ負荷検出方法。
  9. 【請求項9】 クライアントからサーバへの通信を監視
    し、サーバの負荷状態を検出するサーバ負荷検出装置で
    あって、 接続当たりの通信データのサイズを計算するデータサイ
    ズ計算手段と、 接続当たりの通信データサイズの変化を検出し、最大値
    を記憶する記憶手段と、 前記最大値に対するその時点での接続当たりの通信デー
    タサイズが一定値以下となったときにサーバの高負荷を
    検出する負荷検出手段とからなるネットワークサーバ負
    荷検出装置。
JP25431898A 1998-09-08 1998-09-08 ネットワークサーバ負荷検出装置、割当装置および方法 Expired - Fee Related JP3270012B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP25431898A JP3270012B2 (ja) 1998-09-08 1998-09-08 ネットワークサーバ負荷検出装置、割当装置および方法
PCT/JP1999/003692 WO2000014931A1 (en) 1998-09-08 1999-07-08 Device for measuring load on network server, and allotting device and method
EP99929754A EP1102442B1 (en) 1998-09-08 1999-07-08 Device for measuring load on network server, and allotting device and method
DE69937241T DE69937241T2 (de) 1998-09-08 1999-07-08 Vorrichtung zur messung der last eines netzwerkservers und berät und verfahren zur zuordnung
US09/800,488 US7383331B2 (en) 1998-09-08 2001-03-08 Network server load detection system, sharing system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25431898A JP3270012B2 (ja) 1998-09-08 1998-09-08 ネットワークサーバ負荷検出装置、割当装置および方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2001372976A Division JP2002251383A (ja) 2001-12-06 2001-12-06 ネットワークサーバ割当装置

Publications (2)

Publication Number Publication Date
JP2000092052A JP2000092052A (ja) 2000-03-31
JP3270012B2 true JP3270012B2 (ja) 2002-04-02

Family

ID=17263344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25431898A Expired - Fee Related JP3270012B2 (ja) 1998-09-08 1998-09-08 ネットワークサーバ負荷検出装置、割当装置および方法

Country Status (5)

Country Link
US (1) US7383331B2 (ja)
EP (1) EP1102442B1 (ja)
JP (1) JP3270012B2 (ja)
DE (1) DE69937241T2 (ja)
WO (1) WO2000014931A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8661130B2 (en) 2006-09-29 2014-02-25 Fujitsu Limited Program, method, and apparatus for dynamically allocating servers to target system

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889257B1 (en) * 1999-12-03 2005-05-03 Realnetworks, Inc. System and method of transmitting data packets
EP1303952A1 (de) * 2000-07-27 2003-04-23 Siemens Aktiengesellschaft Verfahren und vorrichtung zur überlastabwehr bei diensten mit datenübertragung
US6772375B1 (en) * 2000-12-22 2004-08-03 Network Appliance, Inc. Auto-detection of limiting factors in a TCP connection
WO2003026216A1 (fr) * 2001-09-14 2003-03-27 Sony Corporation Systeme et procede de traitement d'informations de reseau
GB0122507D0 (en) * 2001-09-18 2001-11-07 Marconi Comm Ltd Client server networks
US7216164B1 (en) * 2002-10-09 2007-05-08 Cisco Technology, Inc. Methods and apparatus for determining the performance of a server
US20040254931A1 (en) * 2003-05-29 2004-12-16 Marconi Communications, Inc. Multiple key self-sorting table
JP4337538B2 (ja) * 2003-12-12 2009-09-30 日本電気株式会社 ホストインタフェース制御装置及び制御方法並びに制御プログラム
US20050267981A1 (en) * 2004-05-13 2005-12-01 Alan Brumley System and method for server side detection of client side popup blocking
JP4180638B2 (ja) * 2004-10-28 2008-11-12 富士通株式会社 分析方法及び装置
JP4543916B2 (ja) * 2004-12-21 2010-09-15 日本電気株式会社 ネットワーク性能計測方法およびその装置
WO2006089591A1 (en) * 2005-02-28 2006-08-31 Telecom Italia S.P.A. Method of managing a congestion state in a server of a communication network
US20060245433A1 (en) * 2005-04-28 2006-11-02 International Business Machines Corporation Apparatus and method for dynamic routing of messages with target validation and peer forwarding
JP4627508B2 (ja) * 2006-03-09 2011-02-09 株式会社日立ソリューションズ サーバの接続リソース使用状況出力方法
US20070260641A1 (en) * 2006-05-02 2007-11-08 Mypoints.Com Inc. Real-time aggregate counting in a distributed system architecture
JP4126707B2 (ja) 2006-07-28 2008-07-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報システムの状態を解析する技術
JP2008083939A (ja) * 2006-09-27 2008-04-10 Hitachi Ltd 計算機システム及び動的ポート割当方法
US8296438B2 (en) * 2007-07-11 2012-10-23 International Business Machines Corporation Dynamically configuring a router to find the best DHCP server
US8326977B2 (en) * 2008-07-16 2012-12-04 Fujitsu Limited Recording medium storing system analyzing program, system analyzing apparatus, and system analyzing method
EP3068107B1 (en) * 2008-09-05 2021-02-24 Pulse Secure, LLC Supplying data files to requesting stations
US8032799B2 (en) * 2008-09-17 2011-10-04 International Business Machines Corporation System and method for managing server performance degradation in a virtual universe
US20110310756A1 (en) * 2009-02-10 2011-12-22 Telefonaktiebolaget Lm Ericsson Network element and a method of operating a network element in a telecommunications network
US8972870B2 (en) 2009-08-27 2015-03-03 International Business Machines Corporation Providing alternative representations of virtual content in a virtual universe
US20110106935A1 (en) * 2009-10-29 2011-05-05 International Business Machines Corporation Power management for idle system in clusters
US9891931B2 (en) * 2010-06-15 2018-02-13 Microsoft Technology Licensing, Llc Techniques for efficient remote presentation session connectivity and routing
CN102347887A (zh) * 2010-08-03 2012-02-08 鸿富锦精密工业(深圳)有限公司 路由器及设置多重地址的方法
CN103429226A (zh) 2011-03-02 2013-12-04 森苏林公司 囊泡组合物
WO2016082866A1 (en) 2014-11-25 2016-06-02 Nokia Solutions And Networks Oy Optimized resource management in core network elements
US20170346932A1 (en) * 2016-05-24 2017-11-30 Cisco Technology, Inc. In-band path-to-path signals using tcp retransmission
KR102354058B1 (ko) * 2017-08-24 2022-01-20 삼성에스디에스 주식회사 서버 모니터링 방법과 이를 수행하기 위한 장치 및 시스템
CN112783740B (zh) * 2020-12-30 2022-11-18 科大国创云网科技有限公司 一种基于时间序列特征的服务器性能预测方法及系统
CN114844806B (zh) * 2022-04-15 2023-08-25 中国信息通信研究院 网络设备的吞吐量测量方法及装置、测试系统及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5167035A (en) * 1988-09-08 1992-11-24 Digital Equipment Corporation Transferring messages between nodes in a network
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US5193151A (en) * 1989-08-30 1993-03-09 Digital Equipment Corporation Delay-based congestion avoidance in computer networks
US5283897A (en) * 1990-04-30 1994-02-01 International Business Machines Corporation Semi-dynamic load balancer for periodically reassigning new transactions of a transaction type from an overload processor to an under-utilized processor based on the predicted load thereof
DE69330661T2 (de) * 1992-04-27 2002-06-27 Nippon Telegraph And Telephone Corp., Tokio/Tokyo Paketnetzwerk und Verfahren zur Vermeidung von Überlastung eines solchen Netzwerks
US5459837A (en) * 1993-04-21 1995-10-17 Digital Equipment Corporation System to facilitate efficient utilization of network resources in a computer network
JPH08163209A (ja) * 1994-12-01 1996-06-21 Matsushita Electric Ind Co Ltd 携帯無線装置
JP2773764B2 (ja) 1994-12-08 1998-07-09 日本電気株式会社 オンライン回線トラフィック監視システム
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6104717A (en) * 1995-11-03 2000-08-15 Cisco Technology, Inc. System and method for providing backup machines for implementing multiple IP addresses on multiple ports
JP2912225B2 (ja) * 1996-04-18 1999-06-28 四国日本電気ソフトウェア株式会社 通信処理システム
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
AU714865B2 (en) * 1996-10-18 2000-01-13 Intervu, Inc. System and method for optimized storage and retrieval of data on a distributed computer network
US5943480A (en) * 1996-11-19 1999-08-24 Telcordia Technologies, Inc. Method and system for detecting camouflaged congestion on a network resource
JPH10224356A (ja) * 1997-02-04 1998-08-21 Matsushita Electric Ind Co Ltd ネットワークシステムおよびその負荷調整方法
US5933606A (en) * 1997-02-19 1999-08-03 International Business Machines Corporation Dynamic link page retargeting using page headers
JPH10262044A (ja) * 1997-03-19 1998-09-29 Mitsubishi Electric Corp 中継装置及び中継装置による中継方法
US6263368B1 (en) * 1997-06-19 2001-07-17 Sun Microsystems, Inc. Network load balancing for multi-computer server by counting message packets to/from multi-computer server
US6070191A (en) * 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access
US5987493A (en) * 1997-12-05 1999-11-16 Insoft Inc. Method and apparatus determining the load on a server in a network
CA2237208A1 (en) * 1998-05-08 1999-11-08 Northern Telecom Limited Congestion notification from router
JP3602972B2 (ja) * 1998-07-28 2004-12-15 富士通株式会社 通信性能測定装置及びその測定方法
US6643259B1 (en) * 1999-11-12 2003-11-04 3Com Corporation Method for optimizing data transfer in a data network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小浅章,ロードバランシングでWebサーバのトラフィックを解消 HYPERFLOWを利用したWebトラフィックの解決,WindowsNT POWERS,株式会社ビー・エヌ・エヌ,1998年9月1日,第2巻,第6号,第184−197頁,001,CSND199800843012

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8661130B2 (en) 2006-09-29 2014-02-25 Fujitsu Limited Program, method, and apparatus for dynamically allocating servers to target system

Also Published As

Publication number Publication date
EP1102442A1 (en) 2001-05-23
DE69937241D1 (de) 2007-11-15
US7383331B2 (en) 2008-06-03
EP1102442A4 (en) 2004-10-20
EP1102442B1 (en) 2007-10-03
US20010029545A1 (en) 2001-10-11
JP2000092052A (ja) 2000-03-31
DE69937241T2 (de) 2008-01-10
WO2000014931A1 (en) 2000-03-16

Similar Documents

Publication Publication Date Title
JP3270012B2 (ja) ネットワークサーバ負荷検出装置、割当装置および方法
US6598071B1 (en) Communication apparatus and method of hand over of an assigned group address from one communication apparatus to another
EP2652924B1 (en) Synchronizing state among load balancer components
US6389448B1 (en) System and method for load balancing
US6795858B1 (en) Method and apparatus for metric based server selection
US9985908B2 (en) Adaptive bandwidth control with defined priorities for different networks
CN1146186C (zh) 可恢复的虚拟封闭群集
US7292533B2 (en) System and method for controlling data transmission adapted for grid computing and computer readable recording medium of recording process thereof
US20100054123A1 (en) Method and device for hign utilization and efficient flow control over networks with long transmission latency
WO2022151643A1 (zh) 一种域名解析方法及系统
US20060045098A1 (en) System for port mapping in a network
US20080165682A1 (en) Communication control apparatus, communication control method and communication control program product
WO2005098461A2 (en) Estimator for end-to-end throughput of wireless networks
EP1073244A1 (en) Method and system for monitoring dynamic host configuration protocol (DHCP) service in an internet protocol network
EP1128613A2 (en) Method and apparatus for load balancing of network services
JP3698073B2 (ja) サーバ選択装置、方法、プログラム及び該プログラムを記録した記録媒体
JP3510623B2 (ja) ネットワークサーバ割当装置
US8359376B1 (en) Proactive sending of an IP-to-MAC address binding for a high fan-in node
CN112737940A (zh) 一种数据传输的方法和装置
JP2002251383A (ja) ネットワークサーバ割当装置
US11689611B2 (en) Network optimization system using server latency measurements
Tomic et al. Implementation and efficiency analysis of composite DNS-metric for dynamic server selection
CN117240823B (zh) 一种广义网络智能优化方法及广义网络智能优化终端
JP2003150570A (ja) サーバへの接続の振り分け方法および振り分け装置、ならびにそのプログラムと記録媒体
Kontogiannis et al. An adaptive load balancing algorithm for cluster-based

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20011225

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

Free format text: PAYMENT UNTIL: 20080118

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090118

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100118

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110118

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110118

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120118

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130118

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130118

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20140118

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees