[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5557590B2 - 負荷分散装置及びシステム - Google Patents

負荷分散装置及びシステム Download PDF

Info

Publication number
JP5557590B2
JP5557590B2 JP2010106087A JP2010106087A JP5557590B2 JP 5557590 B2 JP5557590 B2 JP 5557590B2 JP 2010106087 A JP2010106087 A JP 2010106087A JP 2010106087 A JP2010106087 A JP 2010106087A JP 5557590 B2 JP5557590 B2 JP 5557590B2
Authority
JP
Japan
Prior art keywords
server
virtual
virtual server
rate
cpu
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
JP2010106087A
Other languages
English (en)
Other versions
JP2011237844A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010106087A priority Critical patent/JP5557590B2/ja
Priority to US13/037,410 priority patent/US8656406B2/en
Publication of JP2011237844A publication Critical patent/JP2011237844A/ja
Application granted granted Critical
Publication of JP5557590B2 publication Critical patent/JP5557590B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/101Server selection for load balancing based on network conditions
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、仮想化環境のリクエスト処理システムにおいて、システムへのリクエストを複数の仮想サーバに振り分ける負荷分散装置および方法に関する。
ハードウェアの高性能化により、1台の物理サーバを複数の仮想サーバに論理的に分割するサーバ仮想化技術が注目されている。サーバ仮想化技術では、CPU、メモリ、ハードディスク、ネットワーク等の物理サーバの有するリソースの中から、仮想サーバが利用可能なリソースを自由に割り当てることができる。また、割り当てたリソースに対して、複数の仮想サーバでシェアを設定し、リソースを共有することもできる。複数の仮想サーバにシェアを設定した場合、一方の仮想サーバが割り当てられたリソースを使い切った場合でも、シェアが設定された他の仮想サーバが割り当てたリソースを使い切っていなければ、複数の仮想サーバで合算した割当量までリソースを使用することができる。
WEBシステムでは、スケールアウトの手法を用いてシステムの処理性能を向上させている。スケールアウトとは、同一の処理を行うサーバを複数台並べ、負荷分散装置を用いてリクエストを分散させて処理させることで、システム全体の処理性能を向上させる手法である。
複数のサーバからリクエストを処理させるサーバを決定する負荷分散アルゴリズムには、リーストコネクション(Least Connection)方式やリーストプロセシング(Least Processing)方式等がある。
リーストコネクション方式は、負荷分散装置とサーバ間に確立しているコネクションの数が一番小さいサーバへのリクエストを振り分ける方式である。
リーストプロセシング方式は、サーバにCPU(Central Processing Unit)使用率を監視するエージェントをインストールし、監視したCPU使用率が一番低いサーバへリクエストを振り分ける方式である。
特開2009−087213号公報(特許文献1)には、MIPS値等の計算機固有の性能値と、計算機のCPU使用率、CPU使用率の閾値から、各計算機の余力を計算し、余力の一番大きな計算機にジョブを割り当てる方式が開示されている。
特開2009−087213号公報
リーストコネクション方式を利用して負荷分散した場合、負荷分散装置は、振り分け先のサーバの状態がわからないため、サーバの処理能力を超える数のリクエストをサーバに転送する可能性がある。コネクション数に予め上限を設定することは可能である。しかし、仮想環境において1台の仮想サーバが処理可能な最大リクエスト数は、仮想サーバに割当てられたCPUリソース量や、シェアが設定されている他の仮想サーバのCPU使用率、また、負荷分散装置とAPサーバ間を接続するネットワークの状況に応じて変化する。そのため、変動する最大リクエスト数に追従した上限設定機構が必要となる。
リーストプロセシング方式を利用して負荷分散した場合、仮想サーバ上にインストールしたエージェントが検出できるCPU使用率は、「仮想サーバの使用率/仮想サーバへ割り当てられたCPU使用率」となるため、CPUリソースに一番余裕のある仮想サーバに振り分けられない可能性がある。また、物理サーバのCPU利用率をもとに振り分けた場合、仮想サーバは設定されている割当率以上のCPUリソースを使用できないため、仮想サーバのCPUリソースに一番余裕のある仮想サーバに振り分けられない可能性がある。
特開2009−087213号公報に記載された技術を利用して仮想サーバの余力を計算した場合、CPUリソースのシェア設定を考慮した場合と、考慮しない場合では計算結果が異なり、複数の仮想サーバグループにCPUリソースのシェアが設定されている場合は、適切な仮想サーバに振り分けられない可能性がある。
また、仮想環境では、物理サーバのネットワークIF(Interface)で受信したイーサフレームを複数の仮想サーバに振り分けるための仮想スイッチが存在する。仮想スイッチは、物理サーバのCPUリソースを利用してソフトウェアで処理されるため、ハードウェアで処理する物理スイッチに比べて転送性能が低い。すなわち、1G対応のネットワークIFを物理サーバに備えた場合でも、1G以下のパケットレートの通信でパケットロスが発生する。TCPで通信した場合、セッションを維持しつつ再送が行われるためリクエスト処理時間が長くなる。そのため、仮想サーバが利用可能なCPUリソースが同じ場合でも、処理可能なリクエスト数は少なくなる。
また、仮想スイッチの性能限界を超える入力レートで物理サーバにパケットが入力された場合、仮想スイッチでほぼ100%のパケットが廃棄され、リクエストが仮想サーバに到達しなくなる。この場合、仮想サーバはリクエストを処理しないためCPU使用率は低くなる。CPUリソースを基にリクエストを振り分けた場合、リクエストが到達しない仮想サーバはCPUリソースに余裕があるように見え、この仮想サーバに多くのリクエストが振り分けられるようになる。しかし、実際のリクエストは仮想スイッチで廃棄され、仮想サーバにリクエストは届かない。そのため、この状態の仮想サーバはCPUリソースには余裕があるが、リクエストを外部から振り向けもて、実際には処理することはできない。
そこで本発明は、各仮想サーバと外部とを接続する仮想スイッチのパケットロスによる処理能力低下をも加味した仮想サーバの実質の余剰処理能力に基づいて適切な仮想サーバにリクエストを転送することができ、結果的に、より多くのリクエストをシステム全体で処理可能とする負荷分散装置、および負荷分散方法を提供することを目的とする。
本発明の更なる目的は、複数の仮想サーバ間でCPUリソース割当をシェアする設定に対応して各仮想サーバの余剰処理能力を適正に導出し、適切なリクエスト転送先を選べる負荷分散装置、および方法を提供するにある。
負荷分散装置に、仮想サーバのCPUリソースの割当率、使用率、シェア設定、物理サーバのCPU使用率、仮想スイッチのパケットロス率を監視する手段を設け、CPUリソースと仮想スイッチのパケットロス率に応じて、リクエストを転送する仮想サーバを決定する。
負荷分散装置は、仮想スイッチで発生するパケットロスの影響を考慮し、より多くのリクエストを処理できる仮想サーバにリクエストを振り分けることができる。
第1の実施の形態のリクエスト処理システムの構成図である。 第1の実施の形態のリクエスト処理システムの論理構成図である。 第1の実施の形態の負荷分散装置の構成を示すブロック図である。 第1の実施の形態の物理サーバの物理構成を示すブロック図である。 第1の実施の形態の物理サーバの論理構成を示すブロック図である。 第1の実施の形態のシステム構成管理テーブルの構成例である。 第1の実施の形態のリソース監視処理のフローチャートである。 第1の実施の形態の中継装置のリソース管理テーブルの構成例である。 第1の実施の形態の物理サーバのリソース管理テーブルの構成例である。 第1の実施の形態の仮想スイッチの特性管理テーブルの構成例である。 第1の実施の形態のパケットロス率推定処理のフローチャートである。 第1の実施の形態のパケットロス測定テーブルの構成例である。 第1の実施の形態のサーバ選択処理のフローチャートである。 第2の実施の形態のリクエスト数変換テーブルの構成例である。 第2の実施の形態のサーバ選択処理のフローチャートである。 第3の実施の形態のリクエスト数変換テーブルの構成例である。 第3の実施の形態のサーバ選択処理のフローチャートである。
(第1の実施の形態)
図1は、本発明の第1の実施の形態のリクエスト処理システムの構成である。第1の実施の形態のリクエスト処理システムは、負荷分散装置1、中継装置2、物理サーバ3〜5、物理サーバ3内の仮想サーバ31〜33、物理サーバ4内の仮想サーバ41〜43、物理サーバ5内の仮想サーバ51〜53、負荷分散装置と中継装置とを接続するネットワーク6を備える。
負荷分散装置1は、WEBシステムを構成する仮想サーバの中から適切な仮想サーバへリクエストを転送する装置である。中継装置2は、負荷分散装置1と物理サーバを接続するネットワーク6を構成する中継装置の中で、物理サーバ3〜5と直接接続する中継装置である。直接接続することで、中継装置2が物理サーバ3〜5に送信したIPパケットやフレームを、物理サーバがすべて受信するとみなすことができる。このような状況が保証できる接続形態であれば、中継装置2と物理サーバ3〜5とをスイッチやルータ等の他の中継装置を介して接続してもよい。
物理サーバ3内には、仮想サーバ31〜33が形成され/る。仮想サーバは、物理サーバが備えるCPU、メモリ、ハードディスク、ネットワーク等のリソースを論理的に分割して使用するサーバである。同様に物理サーバ4には、仮想サーバ41〜43が形成され、物理サーバ5には、仮想サーバ51〜53が形成される。
図2は、仮想サーバによって構成される論理的なシステム構成である。WEBシステム7は負荷分散装置1と仮想サーバ31、32、41、42、51、から構成される。
仮想サーバ31、41、51は、クライアント端末からのリクエストに応じてアプリケーションソフトウェアを実行し、結果をHTML(Hyper Text Markup Language)文章等にして転送する仮想サーバである。以後、アプリケーションソフトウェアを実行するサーバをAPサーバと記す。WEBシステムの構成において、HTML文章や画像等の静的なコンテンツのみをクライアント端末からのリクエストに応じて送信するWEBサーバとAPサーバを区別する場合もある。しかし、負荷分散装置が行う転送処理は、WEBサーバとAPサーバの違いはなく、同様の処理で、WEBサーバへの負荷分散も同様の処理で行うことができる。そのため、ここでは、WEBサーバとAPサーバとを総称してAPサーバと記す。
仮想サーバ32、42は本システムにおいてデータベースの操作、管理等を行う仮想サーバである。以後、データベースの操作、管理を行うサーバをDBサーバと記す。
負荷分散装置1は複数のWEBシステムへのリクエストを受信し、適切なAPサーバを選択してリクエストを転送する。APサーバはリクエストを処理し、必要に応じてDBサーバへ要求を行い、データベースの操作を行う。仮想サーバ33、43、52、53はWEBシステム7以外のWEBシステムを構成したり、仮想サーバ単体で処理を行うため、各々の仮想サーバが使用するCPU、ネットワーク等のリソースは変動する。
図3は、本発明の第1の実施の形態の負荷分散装置1の構成を示すブロック図である。
負荷分散装置1は、CPU11、メモリ12、インタフェース13を備える。
CPU11は、OS(Operating System)及び各種アプリケーションプログラムを実行する。メモリ12は、CPU11によって実行される各種のアプリケーションプログラムモジュールおよび各種のテーブルを格納する。CPU11とメモリ12とインタフェース13とは、バス14によって接続される。
リソース監視処理モジュール15は、物理サーバ3〜5のCPU使用率を取得し、また各物理サーバのCPUについて、個々の仮想サーバ31〜33、41〜43、51〜53のCPU使用率(分配使用率)を取得してそれら情報を管理する。さらに各物理サーバのCPUについて、個々の仮想サーバのCPU割当率、および複数仮想サーバ間のシェア設定を保持する。また、中継装置2が備えるインタフェースの入力パケットレート及びビットレートを取得して監視する。つまり、物理サーバ3〜5の個々の入力パケットレート、入力ビットレートを取得して監視する。
パケットロス率推定処理モジュール16は、負荷分散装置1とAPサーバ間で発生するパケットロスを監視してパケットロス率を推定する。
サーバ選択処理モジュール17は、仮想サーバが利用可能なリソースやパケットロス率の推定状況を基に、リクエストを転送する仮想サーバを決定する。
システム構成管理テーブル18では、負荷分散装置の管理対象であるWEBシステムのシステム構成が記録管理される。リソース管理テーブル19は中継装置、物理サーバのCPUなどの計算機リソースごとに設けられ、リソースの割当状況や使用状況を記録管理する。特性管理テーブル20は各物理サーバに形成される仮想スイッチごと設けられる。これらについては後にそれぞれ図を参照して詳述する。
図4は物理サーバ3の構成を示すブロック図である。物理サーバ3は、CPU34、メモリ35、ディスク36、インタフェース37を備える。
CPU34は、メモリ35に備えられた仮想化OS(Operating System)を実行する。仮想化OS39は、物理サーバ3のCPU34、メモリ35、ディスク36、インタフェース37等の物理リソースを複数の仮想サーバに論理的に分割する。CPU34、メモリ35、ディスク36、インタフェース37はバス38によって接続される。 図5は、物理サーバ3の論理構成を示すブロック図である。物理サーバ3は、仮想化OS39によって、仮想サーバ31〜33に論理的に分割される。仮想サーバ31は、仮想CPU311、仮想メモリ312、仮想ディスク313、仮想ネットワークインタフェース314を仮想的に備える。仮想サーバが仮想的に備える各リソースは、仮想サーバからみると物理的に備えるのと同様に見えるため、単に、仮想サーバのCPU、メモリ、ディスク、ネットワークインタフェースと称す。
仮想サーバ32、33も仮想サーバ31と同様の構成である。仮想サーバ33は図5では省略されている。物理サーバ3内の仮想サーバ31〜33は、仮想化OS39が提供する仮想スイッチ40によって接続される。仮想サーバ31〜33は仮想スイッチ40を介して通信を行う。また、仮想スイッチ40を介して、物理サーバ3外部の中継装置2及び他の物理サーバ4、5内の仮想サーバ41〜43、51〜53と接続する。
物理サーバ4、5の物理構成及び論理構成は、物理サーバ3と同様である。
<負荷分散装置>
負荷分散装置1は、負荷分散装置1が構成を管理するWEBシステムへのリクエストを受信し、適切なAPサーバへリクエストを転送する装置である。
負荷分散装置1は、初期設定としてシステム構成管理テーブル18の設定を行う。システム構成管理テーブル18は、負荷分散装置1がリクエストを転送するAPサーバをWEBシステムごとに管理するテーブルである。図6にシステム構成管理テーブル18の構成例を示す。システム構成管理テーブル18では、リクエストの転送先となるAPサーバ、APサーバが属する物理サーバ、物理サーバのインタフェースが接続する中継装置及び中継装置のインタフェースが特定可能な情報を含む。図6の例では、WEBシステム7のAPサーバは、仮想サーバ31、41、51であること、各仮想サーバが属する物理サーバは物理サーバ3、4、5であること、各物理サーバが接続されるのはそれぞれ中継装置Aのインタフェース1/3、1/4、1/5であることが特定可能である。
次に、負荷分散装置1のリソース監視処理モジュール15について説明する。負荷分散装置1は、定期的またはリクエスト受信時や設定変更時に、リソース監視処理モジュール15を起動し、WEBシステムを構成する仮想サーバ、物理サーバ及び中継装置のリソース状況を監視する。
リソース監視処理モジュール15による処理フローを図7に示す。ステップ701では、負荷分散装置1は物理サーバや中継装置等、監視対象となる機器へリソースの状況報告要求を送信する。監視対象機器からの応答がない場合(ステップ702でNo)は、応答を受信するまで待機する。監視対象機器からの応答を受信(ステップ702でYes)の場合は、応答した機器を特定し(ステップ703)、該当機器のリソース管理テーブル19に、取得した情報を設定する(ステップ704)。
図8に中継装置のリソース管理テーブルの構成例を示す。リソース監視処理モジュール15は、中継装置2から、各インタフェースから物理サーバへ出力されるパケットレート及びビットレートを取得し、中継装置のリソース管理テーブルに設定する。パケットレートは、単位時間に出力されるイーサフレームまたはIPパケットの数であり、ビットレートは、単位時間に出力されるイーサフレームまたはIPパケットの情報量である。
図9に物理サーバのリソース管理テーブルの構成例を示す。リソース監視処理モジュール15は、物理サーバ3〜5からCPUリソースの状況を取得し、物理サーバのリソース管理テーブルに設定する。物理サーバから取得する情報は、仮想化OS及び各仮想サーバに割り当てられたCPUリソースの上限値(割当率)、仮想化OS及び各仮想サーバの使用率、仮想サーバ間のシェア設定の有無である。シェアとは、仮想サーバ間でCPUリソースを共有できる設定であり、シェアを設定する一方の仮想サーバが割当率までCPUリソースを使用した場合でも、他方の仮想サーバがCPUリソースを使用していなければ、合算した割当率までCPUリソースを使用することができる。
図9に示す例では、仮想サーバ31と32にはシェアが設定されており、仮想サーバ31、32の双方が割当率までCPUリソースを使用した場合は、仮想サーバ31は50%、仮想サーバ32は25%まで使用できる。また、仮想サーバ31がCPUリソースを割当率まで使用せず、25%まで使用している状況において、仮想サーバ32は、50%まで使用することができる。このように、仮想環境では、仮想サーバにCPU割当率を設定した場合でも、シェアを設定した場合は他の仮想サーバの使用率に応じて、使用できるCPUリソースの最大値が異なる。
次に、負荷分散装置1のパケットロス率推定処理モジュール16による処理について説明する。パケットロス率推定処理モジュール16は、物理サーバ3〜5の各仮想スイッチ40で発生するパケットロスの発生率(パケットロス率)をパケットレートなどの観測データから推定するプログラムモジュールである。
仮想スイッチ40は、仮想化OS39によるソフトウェア処理で提供される。そのため、物理サーバへの入力パケットレートが一定の閾値を越えると、スイッチ処理が間に合わず仮想スイッチ40にパケットロスが発生する。パケットロス発生後は、入力パケットレートと物理サーバのCPU使用率の増加に伴ってパケットロスが増加する。さらに、仮想スイッチの性能限界を超えるパケットレートで入力された場合は、仮想スイッチで多くのパケットまたはフレームを廃棄し、仮想サーバへパケットまたはフレームが入力されなくなる。この場合、物理サーバのCPU使用率が低い場合でも、リクエストが仮想サーバへ転送されないため、仮想サーバでリクエストの処理が実行できなくなる。
このような仮想スイッチ40の性能特性を管理するため、負荷分散装置1は、特性管理テーブル20を仮想スイッチ毎に備える。図10に仮想スイッチの特性管理テーブル20の構成例を示す。特性管理テーブル20は、仮想スイッチのパケットロス率の特性が変化するパケットレートと、性能特性の変化に対応したパケットロス率の推定方法を示すテーブルである。
パケットロスが発生し始める入力パケットレートをα、仮想スイッチの性能限界となる入力パケットレートをβ、物理サーバへの入力パケットレートをR、仮想スイッチでのパケットロス率をLとすると、物理サーバへの入力パケットレートRが、パケットロス発生の閾値α以下の場合、パケットロスは発生しないため、以下の式で表せる。
L = 0 (ただし、R<α) ・・・(数1)
また、物理サーバへの入力パケットレートRが、パケットロス発生の閾値α以上、仮想スイッチの性能限界以下の場合、パケットロス率は入力パケットレートと物理サーバのCPU使用率に比例するため、以下の式で表せる。
L = L × C / C (ただし、α<R<β)・・・(数2)
ただし、Lは入力パケットレートRの場合に計測したパケットロス率、Cは入力パケットレートRの場合に計測した物理サーバのCPU使用率、Cはリソース管理テーブルから取得した現時点の物理サーバのCPU使用率である。
、Cは、仮想スイッチのパケットロス率を推定する基準となる性能特性を予め計測した測定値である。すなわち、物理サーバ上で稼動する仮想サーバやアプリケーションの数等の負荷条件を一定に保った上で、仮想スイッチへの入力パケットレートRに対する、物理サーバのCPU使用率Cの対応関係、仮想スイッチでのパケットロス率Lの対応関係を計測して得られる値である。ただし、本実施の形態では、α<R<βの範囲内の入力パケットレートRの複数の代表値についてのみL、Cの値を計測し、図12に示すパケットロス計測テーブルに予め保存しておく。実際に観測される入力パケットレートRの値は上記の代表値と必ずしも一致しないので、その場合は、2つ以上のパケットレート代表値に対応する測定値を用いて補完演算により算出したL、Cの値を得る。このようにして取得したL、Cの値と、リソース管理テーブルから取得した現時点のCPU使用率Cを用いて(数2)の補正演算を行うことでパケットロス率が推定される。
さらに、物理サーバへの入力パケットレートRが、仮想スイッチの性能限界β以上の場合、ほぼすべてのパケットが仮想スイッチで廃棄されるため、以下の式で表せる。
L = 1 (ただし、R>β) ・・・(数3)
パケットロス率推定処理モジュール16による処理フローを図11に示す。パケットロス率推定処理モジュール16が起動すると、負荷分散装置はステップ1101で構成管理テーブル18を参照し、各物理サーバに接続する中継装置及びインタフェースを取得する。また、リソース管理テーブル19を参照し、中継装置のインタフェースへの入力パケットレートを取得する。次にステップ1102では、ステップ1101で取得した情報から、各物理サーバへの入力パケットレートを取得する。次に仮想スイッチの特性管理テーブル20を取得し(ステップ1103)、物理サーバへの入力パケットレートに対応するパケットロス率の推定方法を取得する(1104)。すなわち、ステップ1102で取得した各物理サーバへの入力パケットレートの値をキーにそれぞれ特性管理テーブルを参照して、それぞれの物理サーバに形成された仮想スイッチのパケットロス率の推定法方法を決定する。ステップ1105では、ステップ1104で取得したパケット率の推定方法に従い、仮想スイッチで発生するパケットロス率を推定する。とくに、仮想スイッチを形成する物理サーバの入力パケットレートRがα<R<βの範囲であり、ステップ1104で(数2)による推定方法が決定された場合は、入力パケットレートRの値でパケットロス計測テーブルを引いて測定値L、測定値Cを取得する。もしくはパケットロス計測テーブルから取得される複数の測定値L、Cからそれぞれ補間演算により上記入力パケットレートRの値に対応した測定値L、Cをそれぞれ算出する。得られたL、Cと、リソース管理テーブル19を参照して得たCPU使用率Cを(数2)に代入してパケットロス率Lを推定する。
次に、負荷分散装置1のサーバ選択処理モジュール17について説明する。サーバ選択処理モジュール17は、物理サーバや仮想サーバのリソース状況から、リクエストを転送する仮想サーバを選択するプログラムモジュールである。
図13に、サーバ選択処理モジュール17による処理フローを示す。
負荷分散装置1は、クライアント端末からのリクエストを受信する(ステップ1300)。次に、ステップ1301では、リクエストメッセージに含まれる情報又は、IPアドレス等から転送先となるWEBシステムを特定し、WEBシステムの構成管理テーブル18を参照してリクエスト転送先の候補となる仮想サーバ、それが属する物理サーバの情報を取得する。例として、WEBシステム7が特定されたとする。構成管理テーブル18から、WEBシステム7の中のAPサーバである仮想サーバ31、41、51、これら仮想サーバが属する物理サーバ3、4、5、これら物理サーバが接続する中継装置及びそのインタフェースの情報を取得する(ステップ1302)。
ステップ1303以降では、リクエスト転送先の候補である各仮想サーバの余剰処理能力を、候補番号i=1から順に算出する。まず、算出対象の仮想サーバが属する物理サーバのリソース管理テーブルを取得し、さらに中継装置のリソース管理テーブルを取得する(ステップ1304)。ステップ1305では、前記物理サーバのリソース管理テーブルから、算出対象の仮想サーバのCPU割当率(C)及び使用率(C)、およびCPU使用率の合計(C)を取得する。CPU使用率の合計(C)は、物理サーバ内の全仮想サーバと仮想化OSのCPU使用率の合計であり、つまり計算対象の仮想サーバが属する物理サーバのCPU使用率である。また、中継装置のリソース管理テーブルからは、物理サーバの入力パケットレートの情報を取得する。
次に、算出対象の仮想サーバに他の仮想サーバとシェア(リソース共有)が設定されている場合は(ステップ1306でYes)、設定されたリソース共有仮想サーバのそれぞれのCPU割当率(C)及び使用率(C)を取得する(ステップ1307)。
次にパケットロス率推定処理モジュール16を起動し(ステップ1308)、算出対象の仮想サーバが接続する仮想スイッチで発生するパケットロス率を推定する(ステップ1309)。
推定されたパケットロス率の値が0%である場合(ステップ1310でYes)は、はステップ1311に進み、当該仮想サーバが利用可能なCPUリソースの値をそのまま余剰処理能力Piとする。またパケットロス率の値が閾値以上である場合(ステップ1312でYes)は当該仮想サーバを転送先の選択から除外する(ステップ1313)。リクエストパケットが仮想スイッチで廃棄され、CPU使用率は低いがリクエストを処理できない仮想サーバが転送先に選ばれるのを防止するためである。パケットロス率の値が上記の閾値未満であれば(ステップ1312でNo)、ステップ1314に進み、当該仮想サーバが利用可能なCPUリソースの値をパケットロス率で補正して余剰処理能力Piの値を得る。
ここで、ステップ1311、ステップ1314のそれぞれにおける仮想サーバの余剰処理能力Piの算出方法について、例を用いて説明する。
仮想サーバiが利用可能なリソース量をCiは、仮想サーバへのCPU割当率をCAi、と、仮想サーバの実際のCPU使用率CUiとの差であり、以下の(数4)式で表せる。
i = CAi − CUi ・・・(数4)
また、仮想サーバiと仮想サーバjにシェア(リソース共有)が設定されている場合は、仮想サーバiが利用可能なCPUリソース量は、リソース共有仮想サーバjへのCPU割当率をCAj、その実際のCPU使用率をCUjとして以下の(数5)式で表せる。
i = CAi+CAj − (CUi+CUj) ・・・(数5)
図9のように、仮想サーバ31の割当率は50%、使用率は25%とすると、C31=0.5 − 0.25 = 0.25(25%)
であり、仮想サーバ31が単独で利用可能なCPUリソースは25%である。さらに、仮想サーバ31と32にはシェア設定がされているため、シェアを考慮すると、仮想サーバ31がさらに利用可能なCPUリソースは、
31= 0.5 + 0.25 −(0.25 + 0.2)= 0.3(30%)
となる。ステップ1311では、上記のように(数4)もしくは(数5)により算出した利用可能なCPUリソース量Ciの値をそのまま仮想サーバが現在持っている余剰処理能力Piとする
仮想スイッチでパケットロスが発生する場合、パケットロスにより、負荷分散装置1から仮想サーバへリクエストを転送する時間が長くなるため、仮想サーバが利用可能なCPUリソース量が同じ場合でも、仮想サーバで処理可能なリクエスト数及びリクエスト処理時間が異なる。そこで、ステップ1314では、上述の仮想サーバが利用可能なCPUリソース量Ciに、パケットロス率の逆数(パケット生存率)を乗算して、仮想サーバの余剰処理能力Pとする。すなわち、仮想サーバiに他の仮想サーバとリソース共有が設定されていない場合は、仮想スイッチにおけるパケットロス率をLとして以下の(数6)式により仮想サーバiの余剰処理能力Pを算出する。
= C ×(1−L) = (CAi−CUi)(1−L)・・・(数6)
ただし、Ciは仮想サーバiがさらに利用可能なリソース量、仮想サーバへのCPU割当率をCAi、仮想サーバのCPU使用率CUiである。また、仮想サーバiと仮想サーバjにシェア(リソース共有)が設定されている場合は、仮想サーバiの余剰処理能力Pは、以下の(数7)式により仮想サーバiの余剰処理能力Pを算出する。
i =Ci×(1−L)={CAi+CAj −(CUi+CUj)}(1−L)・・・(数7)
例えば、仮想サーバ31のCPUリソースの割当及び使用率が図9に示す値の場合、仮想サーバ31が単独でさらに処理可能なCPUリソース量C31= 25%、シェア設定を考慮した場合は30%である。仮想スイッチで1%のパケットロスが発生している場合、仮想サーバ31の余剰処理能力P31は以下となる。
31=0.25(1 − 0.01)=0.248 (24.8%)
ステップ1311もしくは1314のいずれかで余剰処理能力が算出されるか、もしくはステップ1313で転送先の選択からの除外が決定されると、次にステップ1316で候補番号iを更新してステップ1304にもどり、次の仮想サーバについて余剰処理能力を算出する。この動作は、転送先候補の仮想サーバ全てについての余剰処理算能力の算出完了がステップ1315で確認されるまで繰り返えされる。ステップ1317では、以上のようにして算出された転送先候補の各仮想サーバの余剰処理能力を比較し、その値が最も大きい仮想サーバをリクエストの転送先に決定する。
以上に示した処理により、リクエストの転送先の決定を行い、リクエスト分配を行うリクエスト処理システムでは、転送先候補となる仮想サーバに他の仮想サーバとのCPUリソースのシェア(リソース共有)が設定されている場合でも、利用可能なCPUリソースが最も多い仮想サーバにリクエストを転送することが可能となる。また、負荷分散装置とAPサーバ間のネットワークにパケットロスが発生する場合のパケットロスによる処理能力低下を加味した仮想サーバの実質の余剰処理能力に基づいて転送先を選択するので、最も適切な仮想サーバにリクエストを転送することが可能となる。
(第2の実施の形態)
第1の実施の形態では、リクエスト転送先の候補の各仮想サーバについて、パケットロスによる処理能力低下を加味した指標を得るために、CPU割当率と実際のCPU使用率との差から得る利用可能なCPUリソース量の値にパケットロス率の逆数を乗じるという方法を採用した。第2の実施の形態では、転送先の候補の各仮想サーバについて、CPU割当率とパケットロス率のそれぞれ複数の値の組み合わせに対応するリクエスト処理数のデータを予めテーブルに保持し、各仮想サーバの指標をそれぞれテーブルから取得することで上記第1の実施の態様と同等のリクエスト転送先選択を実現する。本実施の態様のリクエスト処理システムの物理構成、主要論理構成は第1の実施の形態と同様である。
図14は、本実施の態様で各APサーバ(リクエスト転送先の候補となる仮想サーバ)について予め作成するテーブルであるリクエスト数変換テーブル21の構成例を示す。リクエスト数変換テーブル21の横軸は各仮想サーバへのCPU割当率(C)であり、縦軸は仮想スイッチにおけるパケットロス率(L)である。テーブルのカラム、ローの各交点にはそれぞれのC、Lの値に対応した仮想サーバのリクエスト処理数(R)のデータが保持される。このリクエスト処理数Rのデータは、計測によって得ても、シミュレーションによって得てもよい。
リクエスト数変換テーブル21はサーバ選択処理モジュール17のサーバ選択処理にて参照する。本実施の態様でのサーバ選択処理は、個々の転送先候補の仮想サーバの指標算出のための手順中の仮想スイッチにおけるパケットロス率を取得する処理(ステップ1309)までは図13に示す第1の実施の形態と同様である。ステップ1309以降の処理フローは図15に示すとおりとなる。
仮想スイッチで発生するパケットロス率が閾値を越える場合(ステップ1501でYes)、閾値以上のパケットロスが発生する仮想スイッチに接続した仮想サーバをリクエストの転送先候補から除外する(ステップ1502)。パケットロス率が閾値以下の場合(1501でNo)、算出対象の仮想サーバに関するリクエスト数変換テーブル21を参照する(ステップ1503)。ステップ1504では図13のステップ1305、で取得した仮想サーバのCPU割当率(C)とステップ1309で取得した仮想スイッチのパケットロス率(L)から仮想サーバがさらに処理可能なリクエスト数を取得する。具体的には、まず、リクエスト数変換テーブル21を参照し、CPU割当率(C)とパケットロス率(L)の交点から処理可能なリクエスト数(R)を取得する。リクエスト数変換テーブル21で管理するリクエスト数は、仮想サーバのCPU割当に対応する処理可能なリクエスト数である。そのため、稼働中の仮想サーバがさらに処理可能なリクエスト数(R)を計算するためには、既に仮想サーバが処理しているリクエスト数(処理中のリクエスト数)を減算する必要がある。そこで、負荷分散装置1と算出対象の仮想サーバとの間の確立済みのコネクション数RPNとを用い、(数8)により仮想サーバがさらに処理可能なリクエスト数(R)を算出する。
=R − RPN・・・(数8)
負荷分散装置とAPサーバとの間の確立済のコネクション数は通常、負荷分散装置で管理している。しかし、これが取得できない場合は、RPNに代えて、リクエスト数変換テーブル21から読み出した処理中のリクエスト数を用い、(数8)の減算を行えばよい。すなわち、仮想サーバのCPU割当率(C)の値ではなくCPU使用率(C)によりカラムを特定し、仮想スイッチにおけるパケットロス率(L)によりローを特定してリクエスト数変換テーブル21を参照すれば仮想サーバが処理中のリクエスト数を取得でき、これを(数8)の計算に用いることができる。
ステップ1504で仮想サーバのさらに処理可能なリクエスト数の算出が終わると、ステップ1506で転送先候補番号iを更新し、図13のステップ1305に戻って、次の転送先候補についての処理可能なリクエスト数の算出に進む。その動作は、ステップ1505で全ての転送先候補の仮想サーバについて処理可能なリクエスト数の算出が確認されるまで繰り返えされる。 その後、ステップ1507では、以上のようにして算出された転送先候補の各仮想サーバの処理可能なリクエスト数(R)を比較し、その値が最も大きい仮想サーバを、リクエストを転送する仮想サーバと決定する。ステップ1508ではリクエストを決定した仮想サーバに転送する。
以上により、負荷分散装置1は、リクエスト数変換テーブル21を用いて仮想サーバがさらに処理可能なリクエスト数を比較し、より多くのリクエストを処理可能な仮想サーバにリクエストを転送することが可能となる。リクエスト数変換テーブル21は、予め測定した計測値をもとに各仮想サーバが処理可能なリクエスト数に変換できるため、仮想サーバが属する物理サーバの性能が異なる場合でも、適切な仮想サーバを選択することができる。
(第3の実施の形態)
第3の実施の形態では、リクエストを転送する仮想サーバを選択する際に、仮想スイッチのパケットロス率を取得せず、サーバのCPUリソースから直接仮想サーバが処理可能なリクエスト数に変換して、リクエストを転送する仮想サーバを選択する。本実施の態様のリクエスト処理システムの物理構成、主要論理構成は第1の実施の形態と同様である。
仮想スイッチ40におけるパケットロスは、物理サーバ全体でのCPU使用率と、物理サーバへの入力パケットレートに依存して発生する。したがって、仮想サーバのCPU割当率と仮想スイッチのパケットロス率の種々の値に対するリクエスト処理数のデータを保持するテーブルに代え、仮想サーバのCPU割当率と物理サーバのCPU使用率の種々の値に対するリクエスト処理数のデータ保持するテーブルを用いても、仮想サーバが処理可能なリクエスト数を取得することができる。 図16は第3の実施の態様で用いるリクエスト数変換テーブル21bの構成を示す。リクエスト数変換テーブル21bは、仮想サーバへのCPU割当率(C)及び、仮想サーバが属する物理サーバのCPU使用率(C)に対応した仮想サーバのリクエスト処理数(R)を示すテーブルである。負荷分散装置1は、WEBシステムを構成するAPサーバごとに、つまりリクエストの転送先候補となる仮想サーバごとに本テーブルを備える。
また、本実施の形態における特性管理テーブル20bは、仮想スイッチへの入力パケットレートと、入力パケットレートに対応して仮想スイッチで発生する現象を管理する。特に、仮想スイッチでパケットロスが発生し始める入力パケットレートαと仮想スイッチパケットロスが仮想サーバへの転送を停止する仮想スイッチの性能限界となる入力パケットレートβを管理する。
第3の実施の形態におけるサーバ選択処理モジュール17のサーバ選択処理について以下に説明をする。このサーバ選択処理のフローは、個々の転送先候補の仮想サーバの指標算出のための手順中の、リソース共有仮想サーバのCPU割当率、使用率を取得する処理(ステップ1307)までは、図13に示す第1の実施の形態のサーバ選択処理と同様である。ただし、ステップ1305では、算出対象の仮想サーバのCPU割当率、使用率、物理サーバの入力パケットレートに加えて、物理サーバのCPU使用率も取得する。ステップ1307より後の処理フローは本実施例に特有であり、図17に示すとおりとなる。
ステップ1701では特性管理テーブル20bを取得する(ステップ1701)。物理サーバへの入力パケットレートが仮想スイッチの性能限界βを超える(ステップ1702でYes)場合は、仮想スイッチに接続する仮想サーバをリクエスト転送先候補から除外する(ステップ1703)。
物理サーバへの入力パケットレートが、仮想スイッチでパケットロスが発生する閾値αを超える場合(ステップ1704でYes)は、リクエスト数変換テーブル21bを参照し、仮想サーバのCPU割当率及び使用率、仮想サーバが属する物理サーバの合計CPU使用率から仮想サーバが処理可能なリクエスト処理数を取得する(ステップ1705)。具体的には、まず、リクエスト数変換テーブル21b、仮想サーバのCPU割当率(C)の値、物理サーバのCPU使用率(C)の値でカラムとローをそれぞれ特定してリクエスト数変換テーブル21bを参照し、仮想サーバが処理可能なリクエスト数(R)を取得する。リクエスト数変換テーブル21bで管理するリクエスト数は、第2の実施の態様のテーブル21と同じく、仮想サーバのCPU割当に対応する処理可能なリクエスト数である。そこで、次に(数8)の減算をおこなって、稼働中の仮想サーバがさらに処理可能なリクエスト数(R)を算出する。
=R − RPN・・・(数8)
PNは負荷分散装置と算出対象の仮想サーバとの間の確立済のコネクション数である。確立済のコネクション数が取得できない場合は、仮想サーバのCPU使用率(C)と物理サーバのCPU使用率(C)からリクエスト数変換テーブル21bを参照し、仮想サーバが処理中のリクエスト数を取得し、RPNに代えて(数8)の減算に使用する。
物理サーバへの入力パケットレートが、仮想スイッチでパケットロスが発生する閾値αを超えない場合(ステップ1704でNo)は、リクエスト数変換テーブル21bを参照し、仮想サーバのCPU割当率及び使用率から仮想サーバが処理可能なリクエスト処理数を取得する(ステップ1706)。
ステップ1706での処理を具体的に説明する。物理サーバへの入力パケットレートが、仮想スイッチでパケットロスが発生する閾値αを超えない場合は、仮想スイッチで発生するパケットロスの影響を考慮する必要がない。すなわち、物理サーバのCPU使用率を考慮する必要がない。そこで、仮想サーバのCPU割当率(C)のみから、それに対応する処理可能なリクエスト数(R)を取得する。この場合、算出対象の仮想サーバのみが物理サーバのCPUリソースを使用するとみなし、物理サーバのCPU使用率(C)= 仮想サーバのCPU割当率(C)とする。つまり、カラム、ローともに(C)の値で特定してリクエスト数変換テーブル21bを参照し、仮想サーバが処理可能なリクエスト数(R)を取得する。次に、ステップ1705と同様に、負荷分散装置と算出対象の仮想サーバとの間の確立済のコネクション数RPNを取得し、(数8)の演算で、仮想サーバがさらに処理可能なリクエスト数(R)を取得する。負荷分散装置と算出対象の仮想サーバとの間の確立済のコネクション数RPNを取得できない場合は、カラム、ローともに仮想サーバのCPU使用率(C)の値で特定してリクエスト数変換テーブル21bを参照して処理中のリクエスト数を取得し、(数8)の演算に用いるという構成としてもよい。
以上に述べた、算出対象の仮想サーバがさらに処理可能なリクエスト数を算出する処理は、ステップ1709で全ての転送先候補についての算出が終わったことを確認するまで繰り返される。ステップ1708は繰り返しループ中で、候補番号iを更新するステップである。全ての転送先候補について、さらに処理可能なリクエスト数(R)の算出が終わったら、処理可能なリクエスト数(R)が一番多い仮想サーバを、リクエストを転送する仮想サーバとして選択し(ステップ1709)、リクエストを仮想サーバに転送する(ステップ1710)。
以上により、負荷分散装置1は、リクエスト数変換テーブル21bを用いて、仮想スイッチのパケットロス率の推定をせず、仮想サーバ及び物理サーバのCPUリソースから直接仮想サーバが処理可能なリクエスト数を比較し、より多くのリクエストを処理可能な仮想サーバにリクエストを転送することが可能となる。仮想スイッチのパケットロス率を推定する必要がないため、パケットロス率を推定する場合に比べ、負荷分散装置での処理量を削減することができる。また、仮想スイッチにおけるパケットロス率を推定する手段を備えない場合でも、負荷分散装置とAPサーバ間のパケットロスの影響を考慮し、より多くのリクエストを処理可能な仮想サーバを選択することができる。
1 負荷分散装置
2 中継装置
物理サーバ
6 ネットワーク
7 WEBシステム
11、34 CPU
12、35 メモリ
13、37 インタフェース
14、38 バス
15 リソース監視モジュール
16 パケットロス率推定モジュール
17 サーバ選択モジュール
18 構成管理テーブル
19 リソース管理テーブル
20、20b 特性管理テーブル
21、21b リクエスト数変換テーブル
31、32、33、41、42、43、51、52、53 仮想サーバ
36 ディスク
311、321 仮想CPU
312、322 仮想メモリ
313、323 仮想ディスク
314、324 仮想インタフェース
40 仮想スイッチ

Claims (7)

  1. 装備された仮想化OSによって複数の仮想サーバが稼働する1または複数の物理サーバに対して配備され、管理下の複数の仮想サーバにリクエストを分配する負荷分散装置において、
    前記物理サーバの各々について、各仮想サーバのCPU使用率及び物理サーバのCPU使用率を監視するリソース監視処理部と、
    前記複数の仮想サーバの各々に関して、当該仮想サーバに設定されたCPU割当率と、当該仮想サーバとリソースを共有する他の仮想サーバの指定とを少なくとも保持するリソース管理テーブルと、
    転送すべきリクエストがあった場合に、該リクエストの転送先候補の仮想サーバの各々について、当該仮想サーバ及び当該仮想サーバとリソースを共用すると指定されたリソース共用仮想サーバのCPU使用率の合計と、当該仮想サーバ及び前記リソース共用仮想サーバに設定されたCPU割当率の合計とを基に、当該仮想サーバが利用可能なCPUリソース量を算出し、各転送先候補の仮想サーバについて算出した利用可能なCPUリソース量に基づいて、リクエストを転送する仮想サーバを選択するサーバ選択処理部と、
    各物理サーバに形成され、前記物理サーバ内の各仮想サーバと外部とを接続する仮想スイッチのパケットロス率を推定するパケットロス率推定処理部を有し、
    前記サーバ選択処理部は、前記パケットロス率推定処理部で推定されたパケットロス率に対応して、仮想サーバの選択方法を変更する機能を備えることを特徴とする負荷分散装置。
  2. 装備された仮想化OSによって複数の仮想サーバが稼働する1または複数の物理サーバに対して配備され、管理下の複数の仮想サーバにリクエストを分配する負荷分散装置において、
    前記物理サーバの各々について、各仮想サーバのCPU使用率及び物理サーバのCPU使用率を監視するリソース監視処理部と、
    前記複数の仮想サーバの各々に関して、当該仮想サーバに設定されたCPU割当率と、当該仮想サーバとリソースを共有する他の仮想サーバの指定とを少なくとも保持するリソース管理テーブルと、
    転送すべきリクエストがあった場合に、該リクエストの転送先候補の仮想サーバの各々について、当該仮想サーバ及び当該仮想サーバとリソースを共用すると指定されたリソース共用仮想サーバのCPU使用率の合計と、当該仮想サーバ及び前記リソース共用仮想サーバに設定されたCPU割当率の合計とを基に、当該仮想サーバが利用可能なCPUリソース量を算出し、各転送先候補の仮想サーバについて算出した利用可能なCPUリソース量に基づいて、リクエストを転送する仮想サーバを選択するサーバ選択処理部と、
    各物理サーバに形成され、前記物理サーバ内の各仮想サーバと外部とを接続する仮想スイッチのパケットロス率を推定するパケットロス率推定処理部を有し、
    前記サーバ選択処理部は、各転送先候補の仮想サーバについて算出した前記利用可能なCPUリソース量に、該仮想サーバに接続する仮想スイッチについて推定されたパケットロス率の逆数をそれぞれ乗算することで、各転送先候補の仮想サーバの処理能力を算出し、算出した処理能力に基づきクエストを転送する仮想サーバを選択することを特徴とする負荷分散装置。
  3. 請求項またはのいずれかに記載の負荷分散装置において、
    前記パケットロス率推定処理部は、前記物理サーバのCPU使用率と、前記物理サーバへの入力パケットレートに基づいて、パケットロス率を計算することを特徴とする負荷分散装置。
  4. 請求項またはのいずれかに記載の負荷分散装置において、
    前記パケットロス率推定処理部は、前記物理サーバへの入力パケットレートと、前記物理サーバのCPU使用率と、前記仮想スイッチで発生するパケットロス率との対応関係を保持し、前記対応関係に基づいて、前記仮想スイッチのパケットロス率を計算することを特徴とする負荷分散装置。
  5. 請求項またはのいずれかに記載の負荷分散装置において、
    前記パケットロス率推定処理部は、前記物理サーバへの入力パケットレートと、前記物理サーバのCPU使用率と、前記仮想スイッチで発生するパケットロス率との対応関係を保持し、前記対応関係から取得したパケットロス率に、前記物理サーバの現在のCPU使用率に応じた補正値を乗ずることにより、前記仮想スイッチのパケットロス率を計算することを特徴とする負荷分散装置。
  6. 請求項またはのいずれかに記載の負荷分散装置において、
    前記サーバ選択処理部は、前記仮想サーバのCPU割当率と、前記パケットロス率推定処理部で算出した前記仮想スイッチのパケットロス率から前記仮想サーバが処理可能なリクエスト数を計算し、リクエストの転送先候補の各仮想サーバについて計算した処理可能なリクエスト数を比較してリクエストを転送する仮想サーバを選択することを特徴とする負荷分散装置。
  7. 装備された仮想化OSによって複数の仮想サーバが稼働する1または複数の物理サーバに対して配備され、管理下の複数の仮想サーバにリクエストを分配する負荷分散装置において、
    前記物理サーバの各々について、各仮想サーバのCPU使用率及び物理サーバのCPU使用率を監視するリソース監視処理部と、
    前記複数の仮想サーバの各々に関して、当該仮想サーバに設定されたCPU割当率と、当該仮想サーバとリソースを共有する他の仮想サーバの指定とを少なくとも保持するリソース管理テーブルと、
    転送すべきリクエストがあった場合に、該リクエストの転送先候補の仮想サーバの各々について、当該仮想サーバ及び当該仮想サーバとリソースを共用すると指定されたリソース共用仮想サーバのCPU使用率の合計と、当該仮想サーバ及び前記リソース共用仮想サーバに設定されたCPU割当率の合計とを基に、当該仮想サーバが利用可能なCPUリソース量を算出し、各転送先候補の仮想サーバについて算出した利用可能なCPUリソース量に基づいて、リクエストを転送する仮想サーバを選択するサーバ選択処理部を有し、
    前記サーバ選択処理部は、前記仮想サーバのCPU割当率と、前記物理サーバのCPU使用率から前記仮想サーバが処理可能なリクエスト数を計算し、リクエストの転送先候補の各仮想サーバについて計算した処理可能なリクエスト数を比較してリクエストを転送する仮想サーバを選択することを特徴とする負荷分散装置。
JP2010106087A 2010-05-06 2010-05-06 負荷分散装置及びシステム Expired - Fee Related JP5557590B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010106087A JP5557590B2 (ja) 2010-05-06 2010-05-06 負荷分散装置及びシステム
US13/037,410 US8656406B2 (en) 2010-05-06 2011-03-01 Load balancer and load balancing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010106087A JP5557590B2 (ja) 2010-05-06 2010-05-06 負荷分散装置及びシステム

Publications (2)

Publication Number Publication Date
JP2011237844A JP2011237844A (ja) 2011-11-24
JP5557590B2 true JP5557590B2 (ja) 2014-07-23

Family

ID=44902852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010106087A Expired - Fee Related JP5557590B2 (ja) 2010-05-06 2010-05-06 負荷分散装置及びシステム

Country Status (2)

Country Link
US (1) US8656406B2 (ja)
JP (1) JP5557590B2 (ja)

Families Citing this family (73)

* 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
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US9960967B2 (en) 2009-10-21 2018-05-01 A10 Networks, Inc. Determining an application delivery server based on geo-location information
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
JP2013012187A (ja) * 2011-06-03 2013-01-17 Panasonic Corp 負荷分散サーバシステム
US8897154B2 (en) 2011-10-24 2014-11-25 A10 Networks, Inc. Combining stateless and stateful server load balancing
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
JP5939620B2 (ja) * 2012-03-06 2016-06-22 Necソリューションイノベータ株式会社 コンピュータシステム、サーバ装置、負荷分散方法、及びプログラム
US8782221B2 (en) 2012-07-05 2014-07-15 A10 Networks, Inc. Method to allocate buffer for TCP proxy session based on dynamic network conditions
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US9106561B2 (en) 2012-12-06 2015-08-11 A10 Networks, Inc. Configuration of a virtual service network
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
EP2901308B1 (en) 2012-09-25 2021-11-03 A10 Networks, Inc. Load distribution in data networks
CN103778474A (zh) * 2012-10-18 2014-05-07 华为技术有限公司 资源负载量预测方法、分析预测系统及业务运营监控系统
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9992306B2 (en) 2012-12-21 2018-06-05 E*Trade Financial Corporation Dynamic execution
US10097989B2 (en) 2012-12-21 2018-10-09 E*Trade Financial Corporation Dynamic communication
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
EP2790442A1 (en) * 2013-04-09 2014-10-15 Alcatel Lucent Control system, apparatus, methods, and computer readable storage medium storing instructions for a network node and/or a network controller
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
US9891961B2 (en) * 2013-06-13 2018-02-13 Nec Corporation Load distribution apparatus, load distribution method, storage medium, and event-processing system
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
KR101364746B1 (ko) 2013-10-14 2014-02-27 (주)오픈베이스 어플리케이션 전달 컨트롤러 장애 진단 장치 및 방법
CN103516807B (zh) * 2013-10-14 2016-09-21 中国联合网络通信集团有限公司 一种云计算平台服务器负载均衡系统及方法
US10230770B2 (en) 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
KR102205836B1 (ko) 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US10020979B1 (en) 2014-03-25 2018-07-10 A10 Networks, Inc. Allocating resources in multi-core computing environments
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
TWI568213B (zh) 2014-04-03 2017-01-21 財團法人工業技術研究院 交談式遠端管理系統及其負載平衡控制方法
US9806943B2 (en) 2014-04-24 2017-10-31 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US10129122B2 (en) 2014-06-03 2018-11-13 A10 Networks, Inc. User defined objects for network devices
US9992229B2 (en) 2014-06-03 2018-06-05 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US9986061B2 (en) 2014-06-03 2018-05-29 A10 Networks, Inc. Programming a data network device using user defined scripts
US9807008B2 (en) * 2014-06-06 2017-10-31 Google Inc. Tournament scheduling
US9483299B2 (en) 2014-06-30 2016-11-01 Bmc Software, Inc. Capacity risk management for virtual machines
CN104253865B (zh) * 2014-09-18 2017-06-06 华南理工大学 一种混合型桌面云服务平台的两级管理方法
US9854532B2 (en) * 2014-12-05 2017-12-26 Telefonaktiebolaget Lm Ericsson (Publ) Method, network nodes, and computer program products for load based adaptive CRS power adjustment
US10007584B2 (en) 2015-01-28 2018-06-26 Red Hat, Inc. Automated container migration in a platform-as-a-service system
US10412020B2 (en) 2015-04-30 2019-09-10 Amazon Technologies, Inc. Background processes in update load balancers of an auto scaling group
US10341426B2 (en) * 2015-04-30 2019-07-02 Amazon Technologies, Inc. Managing load balancers associated with auto-scaling groups
US10038640B2 (en) 2015-04-30 2018-07-31 Amazon Technologies, Inc. Managing state for updates to load balancers of an auto scaling group
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
US11025706B2 (en) * 2015-10-16 2021-06-01 Atos Digital Health Solutions, Inc. Load-balancing server for data transformation modules
US10318288B2 (en) 2016-01-13 2019-06-11 A10 Networks, Inc. System and method to process a chain of network applications
CN107229518B (zh) * 2016-03-26 2020-06-30 阿里巴巴集团控股有限公司 一种分布式集群训练方法和装置
US10841173B2 (en) * 2016-07-25 2020-11-17 Imvision Software Technologies Ltd. System and method for determining resources utilization in a virtual network
US10389835B2 (en) 2017-01-10 2019-08-20 A10 Networks, Inc. Application aware systems and methods to process user loadable network applications
US10506030B2 (en) * 2017-06-02 2019-12-10 Futurewei Technologies, Inc. Balancing CPU utilization in a massively parallel processing heterogeneous cluster
JP6928237B2 (ja) * 2017-06-05 2021-09-01 富士通株式会社 制御プログラム、制御装置及び制御方法
WO2019139515A1 (en) * 2018-01-15 2019-07-18 Telefonaktiebolaget Lm Ericsson (Publ) Management of dynamic sharing of central processing units
CN110324244B (zh) * 2018-03-28 2021-09-14 北京华为数字技术有限公司 一种基于Linux虚拟服务器的路由方法及服务器
JP7035858B2 (ja) * 2018-07-03 2022-03-15 富士通株式会社 マイグレーション管理プログラム、マイグレーション方法およびマイグレーションシステム
JP7087871B2 (ja) 2018-09-19 2022-06-21 富士通株式会社 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置
JP7196489B2 (ja) * 2018-09-19 2022-12-27 富士通株式会社 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置
CN110428278B (zh) * 2019-06-27 2023-10-27 创新先进技术有限公司 确定资源份额的方法及装置
US11588884B2 (en) * 2019-09-09 2023-02-21 Cisco Technology, Inc. Utilizing network analytics for service provisioning
US11151150B2 (en) * 2019-09-13 2021-10-19 Salesforce.Com, Inc. Adjustable connection pool mechanism
US11165857B2 (en) 2019-10-23 2021-11-02 Salesforce.Com, Inc. Connection pool anomaly detection mechanism
CN110855764A (zh) * 2019-11-04 2020-02-28 杭州迪普科技股份有限公司 网络流量调度方法、装置、电子设备
JP7410379B2 (ja) * 2019-11-27 2024-01-10 富士通株式会社 資源使用量予測方法および資源使用量予測プログラム
CN111694662B (zh) * 2020-05-26 2023-04-25 陕西森印多西网络科技有限责任公司 基于强化学习的dids中低负载与丢包率的平衡方法
CN114253698A (zh) * 2020-09-22 2022-03-29 中兴通讯股份有限公司 资源调度方法、系统、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128660A (en) * 1996-03-21 2000-10-03 Hearme Network match maker
JP4519098B2 (ja) * 2006-03-30 2010-08-04 株式会社日立製作所 計算機の管理方法、計算機システム、及び管理プログラム
JP2009087213A (ja) * 2007-10-02 2009-04-23 Nec Corp 計算機余力算出装置、計算機余力算出方法
JP4677482B2 (ja) * 2008-03-27 2011-04-27 西日本電信電話株式会社 アクセス振分システム、サーバ装置、共通管理装置、アクセス振分装置、アクセス振分方法、及び、コンピュータプログラム

Also Published As

Publication number Publication date
US8656406B2 (en) 2014-02-18
JP2011237844A (ja) 2011-11-24
US20110276982A1 (en) 2011-11-10

Similar Documents

Publication Publication Date Title
JP5557590B2 (ja) 負荷分散装置及びシステム
EP3467652B1 (en) Data balancing method and device
WO2014024863A1 (ja) 多階層の各ノードを考慮した負荷分散方法
CN103812949B (zh) 一种面向实时云平台的任务调度与资源分配方法及系统
JP2011258098A (ja) 仮想計算機システム、仮想計算機システムの監視方法及びネットワーク装置
US20120117242A1 (en) Service linkage system and information processing system
WO2016173488A1 (en) Application driven and adaptive unified resource management for data centers with multi-resource schedulable unit (mrsu)
US9229778B2 (en) Method and system for dynamic scaling in a cloud environment
US9547518B2 (en) Capture point determination method and capture point determination system
CN102187315A (zh) 在虚拟环境中获取用于服务器负载均衡的反馈信息的方法和装置
CN109167702A (zh) 一种基于负载均衡的分布式测试方法及装置
CN103533063A (zh) 一种可实现web应用资源动态扩展的方法及装置
JP2012079242A (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US20170126486A1 (en) Adaptive subscriber-driven resource allocation for push-based monitoring
US20160072723A1 (en) Method and system for determining bandwidth demand
US20180285169A1 (en) Information processing system and computer-implemented method
CN105979273A (zh) 基于大数据及云计算的智能商用电视的云监控与云运维
JP2015501991A (ja) 地理的に分散されたデータセンタでのレイテンシ短縮および弾力性改善のための最適化機構
JP4834622B2 (ja) ビジネスプロセス運用管理システム、方法、プロセス運用管理装置およびそのプログラム
JP6279436B2 (ja) 仮想ネットワーク割当方法および装置
CN105430028B (zh) 服务调用方法、提供方法及节点
CN111418187A (zh) 云网络中的可伸缩统计和分析机制
JP2005310120A (ja) 計算機システム及びタスク割当方法
JP2014167713A (ja) 情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法
US10375161B1 (en) Distributed computing task management system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140318

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140603

LAPS Cancellation because of no payment of annual fees