JP2016006638A - 負荷分散装置、負荷分散方法及びプログラム - Google Patents

負荷分散装置、負荷分散方法及びプログラム Download PDF

Info

Publication number
JP2016006638A
JP2016006638A JP2015106330A JP2015106330A JP2016006638A JP 2016006638 A JP2016006638 A JP 2016006638A JP 2015106330 A JP2015106330 A JP 2015106330A JP 2015106330 A JP2015106330 A JP 2015106330A JP 2016006638 A JP2016006638 A JP 2016006638A
Authority
JP
Japan
Prior art keywords
servers
server
processing
client
minimum
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
JP2015106330A
Other languages
English (en)
Other versions
JP6543090B2 (ja
Inventor
昌修 小野塚
Masanao Onozuka
昌修 小野塚
広康 寳來
Hiroyasu Horai
広康 寳來
元気 金子
Genki Kaneko
元気 金子
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.)
Seiko Solutions Inc.
Original Assignee
Seiko Solutions Inc.
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 Seiko Solutions Inc. filed Critical Seiko Solutions Inc.
Priority to JP2015106330A priority Critical patent/JP6543090B2/ja
Publication of JP2016006638A publication Critical patent/JP2016006638A/ja
Application granted granted Critical
Publication of JP6543090B2 publication Critical patent/JP6543090B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】複数のサーバの省電力化を図る。【解決手段】負荷分散装置100のトランザクション数取得部10は、負荷の指標となる測定値として、クライアントからの毎秒当たりの処理要求に対して応答処理したトランザクション数を取得する。最小サーバ台数取得部20は、複数のサーバのうち、毎秒当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める。最大トランザクション数取得部30は、求めた最小サーバ台数と、取得したトランザクション数と、に基づいて、複数のサーバが毎秒当たりに処理要求を応答処理可能な最大トランザクション数を求める。サーバ選択部40は、求めた最大トランザクション数と測定したトランザクション数の変動とに基づいて、複数のサーバのうちクライアントからの処理要求を応答処理するサーバを選択する。振分部50は、選択したサーバに、クライアントからの処理要求を振り分ける。【選択図】図3

Description

この発明は、負荷分散装置、負荷分散方法及びプログラムに関する。
従来から、クライアントからのリクエストを、設定された負荷分散方式に基づいて複数のサーバに振り分ける負荷分散装置が広く用いられている。
負荷分散方式としては、例えば、各サーバに順番にリクエストを振り分けるラウンドロビン方式などが知られている。
また、特許文献1には、別の負荷分散方式として、パケットの優先度に応じて重み付けを行い、その重み付けにより定まる順序でパケットを振り分ける負荷分散方式が記載されている。
国際公開第2010/101002号
ところで、従来のラウンドロビン方式や特許文献1に記載の負荷分散方式では、全サーバにリクエストを振り分けるので、全サーバを稼動しておく必要がある。
このため、クライアントからのリクエストを処理するのに、全サーバのリソースを使用する必要がない場合であっても、全サーバを平均的に使用することから消費電力が高くなる傾向があった。
このようなことから、負荷分散装置に接続される複数のサーバの省電力化を図ることが望まれている。
そこで、この発明は、上述した事情に鑑みてなされたものであって、複数のサーバの省電力化を図る場合に好適な負荷分散装置等を提供することを目的とする。
上記目的を達成するため、この発明の第1の観点に係る負荷分散装置は、
クライアントと複数のサーバとにネットワークを介して接続される負荷分散装置であって、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得手段と、
前記複数のサーバのうち、前記クライアントからの単位時間当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める最小サーバ台数取得手段と、
前記最小サーバ台数取得手段で求めた最小サーバ台数と、前記測定値取得手段で取得した測定値と、に基づいて、前記複数のサーバが単位時間当たりに処理要求を応答処理可能な処理性能値を求める処理性能値取得手段と、
前記処理性能値取得手段で求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択手段と、
前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段と、
を備えたことを特徴とする。
また、前記測定値取得手段は、前記負荷の指標となる測定値として、前記クライアントからの単位時間当たりの処理要求数を取得するとよい。
また、前記測定値取得手段は、前記負荷の指標となる測定値として、前記クライアントからの単位時間当たりの処理要求に対して応答処理した処理数を取得するとよい。
また、前記最小サーバ台数取得手段は、
前記単位時間当たりの処理要求を前記複数のサーバに転送してから、該複数のサーバより応答処理を受信するまでにかかった平均往復時間を基準往復時間として求める基準往復時間取得手段と、
前記平均往復時間を前記複数のサーバの台数を減らして求める平均往復時間取得手段と、を備え、
前記平均往復時間が前記基準往復時間から算出される所定の許容往復時間を越えるサーバ台数を特定し、該特定したサーバ台数に1台サーバ台数を加算した台数を前記最小サーバ台数とするとよい。
また、前記最小サーバ台数取得手段は、
前記単位時間当たりの処理要求を応答処理する各サーバのCPU使用率から平均CPU使用率を求める平均CPU使用率取得手段を備え、
前記平均CPU使用率が所定の上限率を超えるサーバ台数を特定し、該特定したサーバ台数に1台サーバ台数を加算した台数を前記最小サーバ台数とするとよい。
また、前記選択手段は、前記処理性能値取得手段で求めた処理性能値と前記変動する測定値との間にマージンができるように、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択するとよい。
また、前記振分手段は、前記選択手段が選択したサーバが2台以上の場合、該選択したサーバの性能比に応じて前記クライアントからの処理要求を振り分けるとよい。
また、前記振分手段は、前記選択手段が前記マージンができるように選択したサーバが2台以上の場合、処理負荷が他のサーバに比べて軽いサーバを含むように、負荷分散比を示す重み付け係数を前記2台以上の各サーバに付与し、該付与した重み付け係数に基づいて前記クライアントからの処理要求を振り分けるとよい。
また、前記振分手段は、前記各サーバに付与する重み付け係数の比を、前記測定値の変動に応じて動的に変化させ、該変化させた重み付け係数の比に基づいて前記クライアントからの処理要求を振り分けるとよい。
また、前記振分手段は、前記測定値の上昇に伴って、前記各サーバに付与する重み付け係数の比を等しくするとよい。
また、前記処理性能値取得手段は、前記複数のサーバの台数に増減があった場合、前記処理性能値を求め直すとよい。
上記目的を達成するため、この発明の第2の観点に係る負荷分散装置は、
複数のサーバ全体での処理性能値を、自装置の外部から取得する処理性能値取得手段と、
前記処理性能値取得手段で取得した処理性能値と、前記複数のサーバにかかる負荷の指標となる測定値の変動と、に基づいて、前記複数のサーバのうちクライアントからの処理要求を応答処理するサーバを選択する選択手段と、
前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段と、
を備えたことを特徴とする。
上記目的を達成するため、この発明の第3の観点に係る負荷分散方法は、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得ステップと、
前記複数のサーバのうち、クライアントからの単位時間当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める最小サーバ台数取得ステップと、
前記最小サーバ台数取得ステップにおいて求めた最小サーバ台数と、前記測定値取得ステップにおいて取得した測定値と、に基づいて、前記複数のサーバが単位時間当たりに処理要求を応答処理可能な処理性能値を求める処理性能値取得ステップと、
前記処理性能値取得ステップにおいて求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択ステップと、
前記選択ステップにおいて選択したサーバに、前記クライアントからの処理要求を振り分ける振分ステップと、
を備えたことを特徴とする。
上記目的を達成するため、この発明の第4の観点に係るプログラムは、
クライアントと複数のサーバとにネットワークを介して接続されるコンピュータを、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得手段、
前記複数のサーバのうち、前記クライアントからの単位時間当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める最小サーバ台数取得手段、
前記最小サーバ台数取得手段で求めた最小サーバ台数と、前記測定値取得手段で取得した測定値と、に基づいて、前記複数のサーバが単位時間当たりに処理要求を応答処理可能な処理性能値を求める処理性能値取得手段、
前記処理性能値取得手段で求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択手段、
前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段、
として機能させるためのプログラムである。
この発明によれば、複数のサーバの省電力化を図ることができる。
この発明の第1実施形態の構成を概略的に示す図である。 図1に示した負荷分散装置のハードウェア構成を示すブロック図である。 図1に示した負荷分散装置の機能ブロック図である。 第1実施形態に係る最小サーバ台数取得処理の流れを示すフローチャートである。 各サーバ台数に対する平均往復時間の一例を示す図である。 第2実施形態に係る負荷分散装置の機能ブロック図である。 第2実施形態に係る最小サーバ台数取得処理の流れを示すフローチャートである。 各サーバ台数に対する平均CPU使用率の一例を示す図である。 トランザクション量と稼働サーバ台数、および、各サーバに付与する重み付け係数の付与例を示す図である。 (a)は、サーバの負荷率とサーバの消費電力との関係の例を示すグラフである。(b)は、重み付け係数と消費電力との関係を説明するための図である。
(第1実施形態)
以下、この発明の第1実施形態を図面に基づいて説明する。
図1に示すように、負荷分散装置100は、複数のクライアント200と複数のサーバ(1乃至5)とにネットワークを介して接続される。負荷分散装置100と複数のサーバとの間のネットワークとしては例えばLAN(Local Area Network)であり、負荷分散装置100と複数のクライアント200との間のネットワークとしては例えばインターネット、LANである。
なお、以下の説明において、個々のサーバを特段特定して説明する必要がない場合は、適宜、複数のサーバ、全サーバ、各サーバなどと称して説明する。また、この実施形態では、理解を容易にするために、サーバ台数は5台とし、各サーバの性能及び消費電力は同じであることを前提として説明する。
負荷分散装置100は、ネットワークを介して送信される複数のクライアント200からの処理要求を中継して、各サーバに振り分けるロードバランサである。この実施形態では、負荷分散装置100は、消費電力を抑えるために処理要求を全サーバに振り分けずに、選択したサーバに振り分ける。この点については、後述する。
複数のサーバは、複数のクライアント200からの処理要求に応じて、HTML(HyperText Markup Language)文書や画像などのデータを応答処理として提供するウェブサーバである。
複数のクライアント200はそれぞれ、ユーザの入力操作を受け付けて処理要求を送信するPC(Personal Computer)である。また、複数のクライアント200はそれぞれ、各サーバから提供されるデータに基づいて、ディスプレイなどの表示手段にHTML文書や画像などを表示する。ここで、処理要求としては例えばhttp(HyperText Transfer Protocol)リクエストであり、応答処理としては例えばhttpレスポンスである。
複数のクライアント200は、便宜上3台(クライアント210、220及び230)のみ図示するが、実際には、数百数千がインターネットを介して負荷分散装置100と接続され、複数の処理要求が各サーバに振り分けられる。
次に、図2を参照しながら、負荷分散装置100のハードウェア構成について説明する。図2に示すように、負荷分散装置100は、CPU(Central Processing Unit)101とフラッシュROM(Read Only Memory)102とRAM(Random Access Memory)103とネットワークI/F(Interface)104と、を備える。
このうち、CPU101は、負荷分散装置100全体を制御する中央演算装置である。
フラッシュROM102は、CPU101が実行する負荷分散に係るプログラムを格納している不揮発性メモリである。
RAM103は、CPU101が実行するプログラムを一時的に展開し、CPU101が負荷分散に係る処理を行う際の作業領域として使用する揮発性メモリである。
ネットワークI/F104は、この負荷分散装置100が、複数のサーバ、複数のクライアント200とネットワークを介して通信を行うためのインタフェースである。
ここで、CPU101は、フラッシュROM102内の負荷分散に係るプログラムを読み出し、RAM103に展開した後、そのプログラムに従って負荷分散装置100を制御することで、図3に示すような各部の機能を実現することができる。
機能としては、図3に示すように、トランザクション数取得部10、最小サーバ台数取得部20、最大トランザクション数取得部30、サーバ選択部40及び振分部50を備える。
まず、トランザクション数取得部10は、複数のクライアント200からの毎秒当たりの処理要求に対して応答処理したトランザクション数(TPS:Transaction Per Sec)を測定して、そのトランザクション数を取得する。ここで、トランザクションとは、処理要求に対して応答処理するまでを一体不可分のものとしてまとめた一連の処理を言う。
例えば、トランザクション数取得部10は、クライアント210から受信した1つの処理要求をサーバ1に転送し、そのサーバ1からの応答処理を受信すると1トランザクションとする。このようにして、トランザクション数取得部10は、複数のクライアント200からの処理要求を各サーバに転送し、その各サーバからの応答処理を受信するとトランザクションをカウントしていく。
ここで、トランザクション数は、複数のサーバにかかる負荷の指標となる測定値とも言える。このため、トランザクション数が多ければ高負荷、低ければ低負荷となる。この実施形態においては、負荷の指標となる測定値として、トランザクション数(TPS)を例にとって説明する。また、このトランザクション数は、処理数とも呼ぶ。
この実施形態においては、負荷分散先を選択する前(すなわち、全サーバが稼働している場合)、トランザクション数取得部10は、複数のクライアント200からの毎秒当たり処理要求に応じて、全サーバが応答処理したトランザクション数を測定して取得する。一方、負荷分散先を選択した後(すなわち、休止サーバが含まれる場合)、トランザクション数取得部10は、複数のクライアント200からの毎秒当たりの処理要求に応じて、稼動サーバが応答処理したトランザクション数を測定して取得する。
なお、トランザクション数は、障害などにより応答処理ができなかったような例外を除き、原則処理要求の数と一致する。また、トランザクション数取得部10は、測定値取得手段に相当する。
次に、最小サーバ台数取得部20は、複数のサーバのうち、複数のクライアント200からの毎秒当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める。
具体的には、まず、基準往復時間取得部21は、毎秒当たりの処理要求を複数のサーバに転送してから、その複数のサーバより応答処理を受信するまでにかかった平均往復時間を基準往復時間として求める。
次に、平均往復時間取得部22は、平均往復時間を複数のサーバの台数を減らして求め、その求めた平均往復時間と、基準往復時間から算出される所定の許容往復時間と、を比較する。
次に、最小サーバ台数取得部20は、平均往復時間が所定の許容往復時間を越えるサーバ台数を特定し、その特定したサーバ台数に1台サーバ台数を加算した台数を最小サーバ台数とする。この最小サーバ台数取得部20による最小サーバ台数を求める具体的な処理については、後述する。
なお、最小サーバ台数取得部20は最小サーバ台数取得手段に、基準往復時間取得部21は基準往復時間取得手段に、平均往復時間取得部22は平均往復時間取得手段に、それぞれ相当する。
次に、最大トランザクション数取得部30は、最小サーバ台数取得部20で求めた最小サーバ台数と、トランザクション数取得部10で取得した測定値であるトランザクション数と、に基づいて、複数のサーバが毎秒当たりに処理要求を応答処理可能な最大トランザクション数(最大TPS)を求める。
具体的には、最大トランザクション数取得部30は、求めた最小サーバ台数と負荷分散先を選択する前に測定した全サーバが応答処理したトランザクション数との比から、全サーバ5台での最大トランザクション数を求める。この最大トランザクション数を求める際の具体例については後述する。
なお、この最大トランザクション数は、複数のサーバ全体での最大の処理性能値を示す。また、最大トランザクション数取得部30は、処理性能値取得手段に相当する。
次に、サーバ選択部40は、求めた最大の処理性能値である最大トランザクション数と、測定したトランザクション数の変動と、に基づいて、複数のサーバのうち複数のクライアント200からの処理要求を応答処理するサーバを選択する。
換言すると、サーバ選択部40は、最大トランザクション数取得部30で求めた最大トランザクション数(最大TPS)に対するトランザクション数取得部10で取得したトランザクション数(TPS)の割合に応じて、複数のサーバのうち複数のクライアント200からの処理要求を応答処理するサーバを選択する。つまり、サーバ選択部40は、振り分けるサーバ台数を決定する。
具体的には、サーバ選択部40は、測定したトランザクション数の変動に従って、動的に応答処理させるサーバ台数を増減する。例えば、最大TPSに対するTPSの割合が小さい場合、すなわち測定したトランザクション数が少ない場合は、全サーバを稼動する必要がないので、サーバ選択部40は、例えばサーバ1とサーバ2の2台を選択する。なお、選択にあたっては、複数のサーバのうち任意のサーバが選択される。また、サーバ選択部40は、選択手段に相当する。
次に、振分部50は、サーバ選択部40で選択したサーバに、複数のクライアント200からの処理要求を振り分ける。振り分けの手法は任意であるが、例えば、ラウンドロビン方式に従って均等に振り分けられる。なお、振分部50は、振分手段に相当する。
以上、図1乃至図3を参照しながら説明した負荷分散装置100において、例えば、一つの特徴的な点は、最小サーバ台数を求め、求めた最小サーバ台数に基づいて全サーバの最大の処理性能値を求める点である。そこで、以下この点に関連する最小サーバ台数取得処理について、図4のフローチャートを参照しながら説明する。
この処理は、負荷分散装置100を起動した直後や複数のサーバの運用を開始した後の所定時間毎(例えば、一週間に一回)などに実施される。また、トランザクション数取得部10が測定して取得したトランザクション数は1000TPSであるとする。
まず、最小サーバ台数取得部20は、サーバ数をサーバ台数としてセットする(ステップS11)。この実施形態においては、最小サーバ台数取得部20は、サーバ数を5台としてセットする。
次に、基準往復時間取得部21は、基準往復時間を測定する(ステップS12)。具体的には、基準往復時間取得部21は、毎秒当たりの処理要求を複数のサーバに転送してから、その複数のサーバより応答処理を受信するまでにかかった平均往復時間を基準往復時間とする。この平均往復時間が例えば1m秒の場合、図5に示すように5台の時の平均往復時間(基準往復時間)が1m秒となる。
次に、最小サーバ台数取得部20は、許容往復時間を算出する(ステップS13)。具体的には、最小サーバ台数取得部20は、基準往復時間に所定の係数を乗じて許容往復時間を算出する。例えば、基準往復時間である1m秒に係数2を乗じて許容往復時間2m秒を求める。なお、係数は、負荷分散装置100の管理ユーザが所望の値を設定できる。
次に、平均往復時間取得部22は、サーバ数をサーバ数−1としてセットする(ステップS14)。この実施形態においては、最小サーバ台数取得部20は、サーバ数を4台にセットする。
次に、平均往復時間取得部22は、サーバ数=0か否か判定する(ステップS15)。ここで、サーバ数は4台で0ではないので(ステップS15;No)、平均往復時間取得部22は、平均往復時間を測定する(ステップS16)。
具体的には、平均往復時間取得部22は、サーバ台数が4台のときの平均往復時間1.1m秒を求める(図5参照)。
ここで、一般的に、サーバ台数が減少するとサーバ1台当たりが処理要求を応答処理する数が増加するため、平均往復時間が長くなる。
次に、最小サーバ台数取得部20は、平均往復時間が許容往復時間以下か否か判定する(ステップS17)。ここで、平均往復時間1.1秒は許容往復時間2m秒以下なので(ステップS17;Yes)、ステップS14に戻ってサーバ台数を1台減らしてステップS15乃至S17の処理を再度行う。このように、ステップS14乃至S17の処理では、サーバ台数を1台ずつ減らしてその都度、平均往復時間が許容往復時間以下か否か判定する。そして、平均往復時間が許容往復時間を越えるまで(ステップS17;No)、ステップS14乃至17の処理を繰り返す。
図5の例では、サーバ台数が1台のときに、平均往復時間2.5m秒が許容往復時間2m秒を超える(ステップS17;No)。この場合、最小サーバ台数取得部20は、最小サーバ台数=サーバ数+1にして(ステップS18)、処理を終了する。上記図5の例の場合、最小サーバ台数取得部20は、最小サーバ台数を、許容往復時間を超えたサーバ台数1台の直前の台数2台にして、処理を終了する。
この場合、最小サーバ台数は2台で測定したトランザクション数(処理数)は1000TPSなので、最大TPSは、1000TPS×5台/2台=2500TPSとなる。このため、サーバ1台当たりが処理可能なトランザクション数は500TPSとなる。
一方で、図5の例の場合と異なり、サーバ台数が1台のときでも、平均往復時間が許容往復時間以下の場合(ステップS17;Yes)、ステップS14に戻ってサーバ数が0となって(ステップS15;Yes)、最小サーバ台数取得部20は、最小サーバ台数を1台にして(ステップS19)、処理を終了する。
この場合、最小サーバ台数は1台で測定したトランザクション数(処理数)は1000TPSなので、最大TPSは、1000TPS×5台/1台=5000TPSとなる。このため、サーバ1台当たりが処理可能なトランザクション数は1000TPSとなる。
このように、いったん最大トランザクション数(最大TPS)を求めておけば、後はトランザクション数(TPS)の変動に応じて、サーバ選択部40が必要なサーバ台数を決定してその台数分だけサーバを選択する。例えば、最大TPSが2500TPSで測定したTPSが1000TPSだとサーバを2台(例えば、サーバ1及び2)、測定したTPSが1100だとサーバを3台(例えば、サーバ1乃至3)、それぞれ選択することになる。
以上、図4の処理において、負荷分散装置100は、トランザクション数取得部10、最小サーバ台数取得部20及び最大トランザクション数取得部30の機能を備えたことにより、複数のサーバ台数から1台ずつサーバを減らして平均往復時間を測定し、その平均往復時間が所定の許容往復時間を越えたサーバ台数を特定し、その特定したサーバ台数に1台サーバ台数を加算した台数(許容往復時間を越える直前の台数)を最小サーバ台数として、最大トランザクション数を求めることができる。
このため、使用サーバ台数を決定するために必要となる最大の処理性能値を求めることができる。従って、最大の処理性能値をユーザが求める必要がない。また、選択しなかったサーバについては休止(アイドル)状態にできる。このため、ユーザの手間を省きつつ、負荷分散装置100に接続される複数のサーバの省電力化を図ることができる。
なお、平均往復時間取得部22は、平均往復時間を複数のサーバの台数を減らして求め、その求めた平均往復時間と基準往復時間との差である遅延時間を求めてもよい。この場合、最小サーバ台数取得部20は、遅延時間が所定の許容遅延時間を越えるサーバ台数を特定し、その特定したサーバ台数に1台サーバ台数を加算した台数を最小サーバ台数とする。
具体的には、まず、ステップS13において許容往復時間を算出することに代えて、最小サーバ台数取得部20は、基準往復時間から許容遅延時間(例えば、基準往復時間が1m秒の場合、その1m秒を基準として許容される遅延時間を1m秒として)算出する。次に、サーバ台数を減らした場合(4台、3台、2台など)の遅延時間(平均往復時間と基準往復時間との差)を順に求め、その都度求めた遅延時間と許容遅延時間とを比較して、遅延時間が許容遅延時間を超えたサーバ台数(例えば、1台のときの遅延時間が許容遅延時間1m秒を超える1.5m秒であれば、直前の2台)を、最小サーバ台数とする。
これにより、許容往復時間に代えて許容遅延時間を用いて、上記第1実施形態と同様の効果、すなわちユーザの手間を省きつつ、負荷分散装置100に接続される複数のサーバの省電力化を図ることができる。
(第2実施形態)
次に、この発明の第2実施形態を図6乃至図8を参照しながら説明する。
第2実施形態では、負荷分散装置100′が、平均CPU使用率に基づいて最小サーバ台数を求める点が第1実施形態と異なる。そこで、この異なる点を中心に以下説明する。
なお、第2実施形態において、負荷分散装置100′のハードウェア構成は、第1実施形態の負荷分散装置100と同じである。また、負荷分散装置100′の機能については、図3に示した基準往復時間取得部21及び平均往復時間取得部22に代えて、図6に示すように平均CPU使用率取得部23を備える点が異なる。
平均CPU使用率取得部23は、毎秒当たりの処理要求を応答処理する各サーバのCPU使用率から平均CPU使用率を求める。例えば、平均CPU使用率取得部23は、測定したトランザクション数が1000TPSの場合において、異なるサーバ台数(5台、4台、3台など)での平均CPU使用率を求める。
ここで、各サーバよりCPU使用率を取得する手法は任意である。例えば、各サーバに予めSNMP(Simple Network Management Protocol)エージェントと呼ばれるサーバ監視用のモジュールをインストールしておき、そのSNMPエージェントに対して負荷分散装置100′がSNMPゲットのコマンドを発行することによりCPU使用率を取得できる。
なお、別の手法により、CPU使用率を取得しても構わない。また、平均CPU使用率取得部23は、平均CPU使用率取得手段に相当する。
次に、図7を参照しながら、第2実施形態に係る最小サーバ台数取得処理の流れについて説明する。なお、実施のタイミングは、第1実施形態と同じである。また、トランザクション数取得部10が測定して取得した、トランザクション数は1000TPSであるとする。
まず、最小サーバ台数取得部20は、サーバ数をサーバ台数(5台)としてセットする(ステップS21)。次に、平均CPU使用率取得部23は、平均CPU使用率を算出する(ステップS22)。例えば、平均CPU使用率取得部23は、サーバ台数5台の平均CPU使用率を40%と算出する(図8参照)。
次に、最小サーバ台数取得部20は、平均CPU使用率が上限率以下か否か判定する(ステップS23)。上限率は、予め負荷分散装置100′の管理ユーザが設定しておく。この第2実施形態では、一例として、上限率を80%として説明する。
ここで、サーバ5台の平均CPU使用率が図8と異なる85%の場合、平均CPU使用率が上限率を超えるので(ステップS23;No)、最小サーバ台数取得部20は、最小サーバ台数=サーバ台数(5台)にして(ステップS30)、処理を終了する。全サーバで上限率を超えてしまう場合は、全サーバで対応せざるを得ないからである。この場合、全サーバ5台の最大TPSは、1000TPS(サーバ1台当たりで処理可能な処理数が200TPS)となる。
一方、サーバ5台の平均CPU使用率が図8の40%の場合、平均CPU使用率が上限率以下なので(ステップS23;Yes)、サーバ数を1台減らして(ステップS24)、4台とする。次に、サーバ数(4台)=0ではないので(ステップS25;No)、平均CPU使用率取得部23は、4台での平均CPU使用率を算出する(ステップS26)。次に、最小サーバ台数取得部20は、4台での平均CPU使用率が上限率以下か否か判定する(ステップS27)。
ここで、図8の例の場合、4台の平均CPU使用率は50%なので、平均CPU使用率50%は上限率80%以下となり(ステップS27;Yes)、ステップS24に戻る。ステップS24乃至S27は、第1実施形態のステップS14乃至S17と対応する処理であり、平均CPU使用率が上限率を超えるまで(ステップS27;No)、サーバ台数を1台ずつ減らしながらその都度、平均CPU使用率を算出して、算出した平均CPU使用率が上限率以下か否か判定する。
図8の例の場合、サーバ台数1台の場合のCPU使用率が85%となって、上限率80%を超えるので(ステップS27;No)、最小サーバ台数取得部20は、最小サーバ台数=サーバ数+1にして(ステップS28)、すなわち最小サーバ台数を2台にして処理を終了する。
この場合、最小サーバ台数が2台で測定したTPSが1000TPSなので、最大TPSは第1実施形態と同じ2500TPSとなる。
一方、図8の例の場合と異なりサーバ台数1台の場合のCPU使用率が75%の場合、上限率80%を超えないので(ステップS27;Yes)、ステップS24に戻ってサーバ数=0となり(ステップS25;Yes)、最小サーバ台数取得部20は、最小サーバ台数を1台にして(ステップS29)、処理を終了する。
この場合、最小サーバ台数が1台で測定したTPSが1000TPSなので、最大TPSは第1実施形態と同じ5000TPSとなる。
以上、図6乃至図8を参照しながら説明した第2実施形態においては、負荷分散装置100′が平均CPU使用率取得部23の機能を備えることにより、許容往復時間に基づいて最小サーバ台数を求める手法に代えて平均CPU使用率が上限率を超えるかに基づいて最小サーバ台数を求める。具体的には、負荷分散装置100′は、平均CPU使用率が所定の上限率を超えるサーバ台数を特定し、その特定したサーバ台数に1台サーバ台数を加算した台数を最小サーバ台数として、最大トランザクション数を求めることができる。
このため、第1実施形態と同様に最大の処理性能値を自動で求めることができることに加えて、平均CPU使用率を用いるので許容往復時間を用いる場合と比較して、最小サーバ台数を求める際より高い確度で処理性能が限界に達したと判断することができる。
以上で各実施形態の説明を終了するが、負荷分散装置100(100′)の具体的な構成や処理の内容などが上述の各実施形態で説明したものに限られないことはもちろんである。
例えば、第1実施形態では、httpリクエストなどの処理要求の往復時間に基づいて最小サーバ台数を求めるようにしたが、これに限られない。例えば、処理要求に代えてネットワーク疎通の確認で用いられるPingを使って最小サーバ台数を求めてもよい。
具体的には、負荷分散装置100がIP(Internet Protocol)パケットを発行し各サーバに送信してから返答を受信するまでの平均往復時間を用いるようにする。この際、第1実施形態と同様に、サーバ5台のときの平均往復時間を基準として、4台、3台、2台と順に1台ずつ台数を減らして平均往復時間を求めて最小サーバ台数を求めるようにする。これにより、負荷分散装置100によるPingを用いたサーバの死活監視を流用して、最小サーバ台数を求めることができる。
また、第1実施形態の最小サーバ台数取得処理においては、処理要求に対して各サーバから応答処理があって往復時間を求めることができることを前提として説明したが、応答がなく往復時間を求めることができない場合もある。
このような場合、負荷分散装置100に予めタイムアウトの時間を設定しておき、その時間以内に応答がなければ、最小サーバ台数取得処理を強制終了してもよい。あるいは、タイムアウトしなかった直前の台数(例えば、3台で応答があったものの2台で応答がないような場合は3台)を最小サーバ台数としてもよい。
また、第1及び第2実施形態では、所定の閾値(許容往復時間又は平均CPU使用率の上限率)を用いて、最小サーバ台数を求めるようにしたが、これに限られない。例えば、各サーバが処理要求に対する応答処理を所定時間以内に処理できない場合、及び各サーバが自身でCPU使用率を測定して所定の上限率を超えた場合、エラーメッセージなどのアラートを負荷分散装置100(100′)に送信してもよい。これにより、負荷分散装置100(100′)は、所定の閾値を超えるか否かにより最小サーバ台数を求めるのに代えて、受信したエラーメッセージに基づいて最小サーバ台数を求めることができるので、処理負荷を軽減することができる。
また、第1及び第2実施形態では、サーバ1台でも許容往復時間又はCPU使用率の上限率を超えない場合は、サーバ1台を最小サーバ台数としたが(ステップS19、S29参照)、これに限られない。例えば、最小サーバ台数取得処理を開始したときのトランザクション数(TPS)が非常に少ない場合、すなわち複数のクライアント200からの処理要求数が非常に少ない場合も想定される。
このような場合において、最小サーバ台数を1台とすると、後でトランザクション数が増えた場合対処できない場合もあるので、最小サーバ台数を1台にすることに代えて(ステップS19、S29の処理に代えて)、トランザクション数が増えた段階で最小サーバ台数取得処理をリスタートさせてもよい。例えば、トランザクション数が所定数になったら、リスタートすることが考えられる。
また、第1及び第2実施形態において、最小サーバ台数取得処理は、負荷分散装置100(100′)を起動した直後や複数のサーバの運用を開始した後の所定時間毎(例えば、一週間に一回)などに実施されることとしたが、これに限られない。例えば、サーバ台数が増減したタイミングで最小サーバ台数取得処理を実施してもよい。これにより、システムのマイグレーションなどサーバ台数が変わったタイミングで最大処理性能値を求め直すことができる。
また、サーバ台数が増減したタイミングに限らず、サーバの入れ替えによりサーバの性能に変更があった場合やサーバのコンテンツが変更になった場合などにも、同様に最小サーバ台数取得処理を実施してもよい。
また、第1及び第2実施形態において、各サーバの消費電力は同じであることを前提として説明したが、これに限られない。例えば、各サーバの消費電力が異なることもある。この場合、負荷分散装置100(100′)は、予めサーバ1乃至5の消費電力を記憶しておき、負荷分散先のサーバを選択する場合には、消費電力が小さいサーバを優先的に選択するとよい。このことにより、休止サーバは必然的に消費電力が高いものとなるので、省電力化を高めることができる。
また、性能対電力比が大きいサーバを優先的に選択してもよい。性能対電力比は、例えば、サーバの性能を消費電力で除した値を示す。この場合、予めサーバ1乃至5の性能対電力比を記憶しておき、負荷分散先のサーバを選択する場合には、性能対電力比が小さいサーバを優先的に選択するとよい。
また、第1及び第2実施形態において、各サーバの性能は同じであることを前提として説明したが、これに限られない。例えば、各サーバの性能が異なることもある。この場合、負荷分散装置100のサーバ選択部40が選択したサーバが2台以上の場合、その選択したサーバの性能比に応じて複数のクライアント200からの処理要求を振り分けるとよい。例えば、選択したサーバがサーバ1と2の場合、性能に応じた重み付けの比に従って処理要求をサーバ1と2に振り分けるとよい。これにより、サーバの性能を考慮して応答処理を行うことができる。
また、第1及び第2実施形態においては、負荷の指標となる測定値として、トランザクション数(TPS)を例にとって説明したが、これに限られない。例えば、負荷の指標となる測定値として、複数のクライアント200からの単位時間当たりの処理要求数を用いてもよい。この場合、負荷分散装置100(100′)は、例えば、毎秒当たりのhttpリクエスト数を測定値として取得する。そして、負荷分散装置100(100′)は、求めた最小サーバ台数と、取得したhttpリクエスト数と、に基づいて、複数のサーバが毎秒当たりにhttpリクエストを応答処理可能な最大リクエスト数を処理性能値として求める。そして、求めた最大リクエスト数と、測定したリクエスト数の変動と、に基づいて、稼動させるサーバを選択すればよい。
また、第1及び第2実施形態においては、複数のサーバ全体での最大の処理性能値を負荷分散装置100(100′)が求める場合を例にとって説明したが、これに限られない。例えば、負荷分散装置100(100′)は、最大の処理性能値(例えば、最大トランザクション数など)を自装置の外部から取得してもよい。
具体的には、自装置の外部で最小サーバ台数を求め、求めた最小サーバ台数と測定した測定値(例えば、トランザクション数)とから予め処理性能値を求めておく。そして、負荷分散装置100(100′)は、予め自装置の外部で求めておいた処理性能値を、ネットワークなどを介して受信して記憶しておく。そして、負荷分散装置100(100′)は、外部から取得した処理性能値と測定値(例えば、トランザクション数)の変動とに基づいて、動的に負荷分散先のサーバを選択する。
これにより、負荷分散装置100(100′)は、自装置で処理性能値を求めるための機能(トランザクション数取得部10、最小サーバ台数取得部20、最大トランザクション数取得部30)を備える必要がないので、処理負荷を抑えつつ、複数のサーバの省電力化を図ることができる。
(第3実施形態)
第1実施形態の説明では、急激なトランザクション(処理要求)の増加がないことを前提にして、サーバ選択部40が複数のサーバの内の何台かにトランザクションを振り分けるかを決める説明をした。しかし、その振り分けた状態が、各サーバの処理性能値に近い場合に(処理マージンが無い場合)、さらに急激なトランザクションの増加があった場合には、応答処理が出来ないトランザクションが発生する。配分先のサーバを追加するためには所定の処理時間がかかるため、その処理時間内に取得した処理性能値を超えるトランザクションを処理できないからである。第3実施形態では、サーバ選択部40が、急激なトランザクションの増加を考慮して振分先のサーバ台数を決定する技術について説明する。
また、第1実施形態の説明では、サーバ選択部40が選択したサーバに対して、振分部50が、取得したトランザクションをラウンドロビン方式に従って均等に振り分ける説明をした。一般的に、急激なトランザクションの増加時に応答処理が出来ない未処理トランザクション量を減らすためには、トランザクションを各サーバに均等配分したほうが未処理トランザクションを減らすことが出来る。一方、同一性能の複数のサーバに同一量のトランザクションを振り分ける場合、トランザクションを均等に振り分けるよりもサーバに重み付け係数を付与して振り分けた方が、つまり、処理負荷が軽いサーバが出来るようにトランザクションを振り分けた方が、全体の消費電力を下げることが出来る。サーバの処理能力にマージンを持って運用する場合でも、トランザクションの振分方法を考慮することによって全体の消費電力を削減することは好ましい。第3実施形態では、この重み付け係数を付与した振分技術についても説明する。
本実施形態では、理解を容易にするために、図1に示すシステム全体のサーバ台数をサーバ1からサーバ3の3台として説明する。各サーバの処理性能値は1000TPSとする。
なお、第3実施形態において、負荷分散装置100のハードウェア構成は、第1実施形態の負荷分散装置100と同じである。また、負荷分散装置100の機能構成についても、図3に示した構成と同じである。ただし、サーバ選択部40と振分部50は、以下に説明する機能を有する。
まず、サーバ選択部40が、急激なトランザクション量の増加に対する処理マージンを持ったサーバ台数を選択する機能について説明する。サーバ選択部40は、最大トランザクション数取得部30(処理性値取得手段に対応する)で取得した処理性能値とトランザクション数取得部10で取得したトランザクション量(測定値に対応する)との間に処理マージンが出来るように、クライアントからのトランザクション(要求処理)を応答処理するサーバを選択する。具体的には、トランザクション数取得部10で取得したトランザクション量が、最大トランザクション数取得部30で求めた最大トランザクション量の所定の割合になると、トランザクションを振り分けるサーバ台数を1台追加する。
本実施形態では、サーバの処理性能値の50%を超えるトランザクションを取得した場合、サーバ選択部40は、サーバの選択台数を1台追加する。図9に示す例では、サーバ1とサーバ2の2台で稼働している場合、サーバ1台の処理性能値は1000TPSであるので、サーバ選択部40は、トランザクション量が2000TPSの50%である1000TPSを超えると振分先のサーバ台数を3台にする。
次に、振分部50が、トランザクションの振分先のサーバに重み付け係数を付与し、その重み付け係数に基づいてトランザクションを振り分ける機能について説明する。重み付け係数の付与方法は他のサーバに対して処理負荷が軽いサーバが出来るように付与する。本実施形態では、トランザクション量(測定値に対応する)に応じて5段階に重み付け係数を動的に変化させて付与する。具体的には、トランザクション量が少ないほど付与する重み付け係数の比を大きくし、処理負荷が軽いサーバが出来るように重み付け係数を付与する。そして、トランザクション量の増加に伴い、重み付け係数が次第に等しくなるように動的に変化させる。急激なトランザクションの増加に対する各サーバのマージンを大きくすることと、後述するサーバ全体の消費電力の削減との調和を図るためである。
図9に示す例では、振分部50は、トランザクション量が、最大トランザクション数取得部30で求めたサーバ1台の処理性能値の10%未満の場合は、トランザクション量の10%をサーバ2に振り分け、残りのトランザクションをサーバ1に振り分ける。つまり、サーバ1とサーバ2へのトランザクション量の振分比を(9:1)とする。振分部50は、トランザクション量が最大トランザクション数の10%以上で20%未満の場合は、トランザクション量の20%をサーバ2に振り分け、残りのトランザクションをサーバ1に振り分ける。つまり、サーバ1とサーバ2へのトランザクション量の振分比を(8:2)とする。以下同様に、振分部50は、トランザクション量に応じて、サーバ1とサーバ2へのトランザクション量の振分比を(7:3)(6:4)(5:5)と動的に変化させて設定する。このように、トランザクション量(測定値に対応する)の上昇に伴って、各サーバに付与する振分比(重み付け係数の比)が次第に等しくなるようにする。
トランザクション量が1000TPSを超えると、サーバ選択部40は、サーバ1、サーバ2、サーバ3の3台を振分先のサーバとして選択する。この場合、先に稼働している2台のサーバ処理量(50%負荷で稼働させるので、500TPS×2台=1000TPS)を取得したトランザクション量から引く。そして、その残トランザクション量がサーバ3の処理性能値の0から10%に該当する場合、3台目のサーバ3にトランザクション量の10%を配分し、残りのトランザクションをサーバ1とサーバ2に均等配分する。残トランザクション量がサーバ3の処理性能値の10%以上で20%未満の場合、3台目のサーバ3にトランザクション量の20%を配分し、残りのトランザクションをサーバ1とサーバ2に均等配分する。以下同様に、トランザクション量に応じて重み付け係数を図9に示すように付与する。
本実施形態における重み付け係数(X:X:S)の付与方法を数式化すると、下記となる。パラメータSは、サーバ1台の処理性能値に対するトランザクション量で決まるパラメータであり、1から5の自然数である。上述したように、10%未満の場合はS=1、10%以上で20%以下の場合はS=2である。
X=(5N−S)/(N−1) ・・・式(1)
S:5段階のパラメータ
N:サーバ選択部40が選択したサーバ台数
例えば、N=2の場合、サーバ1とサーバ2の振分比は、トランザクション量によって、(9:1)(8:2)(7:3)(6:4)(5:5)と変化する。
サーバに重み付け係数を付与してその重み付け係数に応じてトランザクションを振り分ける理由は、サーバ全体の消費電力を削減するためである。サーバは、サーバの負荷率が高いほど、CPUのクロック周波数を上げて処理能力を向上させるので、サーバの負荷率が高いほど消費電力が上昇する場合が多い。そのため、サーバの負荷率と消費電力との関係は、図10(a)に示すグラフのように、サーバの負荷率が軽いほど消費電力が低下する傾向がある。また、所定の負荷率(例えば、50%程度)になると、ベストエフォートで動作する領域となるので、それ以上処理負荷が重くなると消費電力の上昇率は緩やかになる傾向にある。図10(b)は、(X:S)の振分比で、同一量のトランザクションを2台のサーバに振り分けた場合の、振分比によるサーバ全体の消費電力の差を示す例である。図10(b)の「消費電力指数」の欄は、サーバの負荷率が50%時のサーバの消費電力を100とした場合の、サーバ負荷率ごとの消費電力の相対指数の例である。図10(b)の「消費電力指数の合計」の欄に示すように、同一量のトランザクションを2台のサーバに振り分ける場合、処理負荷が重いサーバと処理負荷が軽いサーバが出来るようにトランザクションの振分比を偏らせたほうが、サーバ全体の消費電力は低下する。同一量のトランザクションを3台以上のサーバに振り分ける場合も、追加稼働させたサーバの処理負荷を軽くすることにより、トランザクションを均等に振り分けた場合よりも、サーバ全体の消費電力を下げることが出来る。
例えば、300TPSで動作しているときに、トランザクション量が1200TPSに急激に増加した場合、サーバ1の1台のみで稼働していた場合、200TPSのトランザクションが未処理になってしまう。しかし、図9に示すようにサーバ1とサーバ2に(8:2)にトランザクションを振り分けて2台で稼働すると、サーバ1には960TPS、サーバ2には240TPSのトランザクションが振り分けられ、未処理のトランザクションは発生しない。さらに、上述したように、トランザクションを均等配分した場合に比べて、サーバ全体の消費電力を低減することができる。
なお、第3実施形態で説明したマージンの設け方は、上述した方法には限定されることはない。例えば、サーバの処理性能値の60%とか70%を閾値としてサーバを追加するようにしてもよい。サーバの処理性能値には、第1実施形態で説明した平均往復時間を使用してもよいし、第2実施形態で説明した平均CPU使用率を使用してもよい。また、所定のトランザクション量をマージンとして確保するように、サーバ選択部40が振分先サーバの台数を選択してもよい。
また、第3実施形態で説明した重み付け係数の付与方法は、第3実施形態で説明した例に限定されることはない。サーバ全体の消費電力が下がるようにトランザクションの振分比を決めるように重み付け係数を付与すればよく、トランザクション量に比例した配分に限定することも、自然数の比に限定する必要もない。
なお、以上の説明では、測定した基準往復時間から許容往復時間を決定する説明をしたが、許容往復時間を予め決められた要求仕様として外部から取得して、フラッシュROM102もしくはRAM103に記憶しておいてもよい。
また、この発明の負荷分散装置100は、通常のPC等のコンピュータによっても実現することができる。
具体的には、上記各実施形態では、負荷分散装置100のプログラムが、フラッシュROM102に予め記憶されているものとして説明した。しかし、フラッシュROM102のプログラムをコンピュータにインストールして、上述の各部機能を実行することができるコンピュータを構成してもよい。なお、プログラムは、フラッシュROM102に限らず、その他のコンピュータ読み取り可能な記録媒体(例えば、フレキシブルディスク、CD−ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disk)及びMOディスク(Magneto Optical Disc)等)に格納してコンピュータに配布してもよいことはもちろんである。
また、プログラムをインターネット等の通信ネットワーク上のサーバ装置が有するディスク装置等に格納しておき、例えば、コンピュータにダウンロード等するようにしてもよい。さらに、通信ネットワークを介してプログラムを転送しながら起動実行することによっても、上述の負荷分散装置100の処理を達成することができる。
1乃至5 サーバ
10 トランザクション数取得部
20 最小サーバ台数取得部
21 基準往復時間取得部
22 平均往復時間取得部
23 平均CPU使用率取得部
30 最大トランザクション数取得部
40 サーバ選択部
50 振分部
100(100′) 負荷分散装置
101 CPU
102 フラッシュROM
103 RAM
104 ネットワークI/F
210、220、230 クライアント

Claims (14)

  1. クライアントと複数のサーバとにネットワークを介して接続される負荷分散装置であって、
    前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得手段と、
    前記複数のサーバのうち、前記クライアントからの単位時間当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める最小サーバ台数取得手段と、
    前記最小サーバ台数取得手段で求めた最小サーバ台数と、前記測定値取得手段で取得した測定値と、に基づいて、前記複数のサーバが単位時間当たりに処理要求を応答処理可能な処理性能値を求める処理性能値取得手段と、
    前記処理性能値取得手段で求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択手段と、
    前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段と、
    を備えたことを特徴とする負荷分散装置。
  2. 前記測定値取得手段は、前記負荷の指標となる測定値として、前記クライアントからの単位時間当たりの処理要求数を取得する、
    ことを特徴とする請求項1に記載の負荷分散装置。
  3. 前記測定値取得手段は、前記負荷の指標となる測定値として、前記クライアントからの単位時間当たりの処理要求に対して応答処理した処理数を取得する、
    ことを特徴とする請求項1に記載の負荷分散装置。
  4. 前記最小サーバ台数取得手段は、
    前記単位時間当たりの処理要求を前記複数のサーバに転送してから、該複数のサーバより応答処理を受信するまでにかかった平均往復時間を基準往復時間として求める基準往復時間取得手段と、
    前記平均往復時間を前記複数のサーバの台数を減らして求める平均往復時間取得手段と、を備え、
    前記平均往復時間が前記基準往復時間から算出される所定の許容往復時間を越えるサーバ台数を特定し、該特定したサーバ台数に1台サーバ台数を加算した台数を前記最小サーバ台数とする、
    ことを特徴とする請求項1乃至3の何れか一項に記載の負荷分散装置。
  5. 前記最小サーバ台数取得手段は、
    前記単位時間当たりの処理要求を応答処理する各サーバのCPU使用率から平均CPU使用率を求める平均CPU使用率取得手段を備え、
    前記平均CPU使用率が所定の上限率を超えるサーバ台数を特定し、該特定したサーバ台数に1台サーバ台数を加算した台数を前記最小サーバ台数とする、
    ことを特徴とする請求項1乃至3の何れか一項に記載の負荷分散装置。
  6. 前記選択手段は、
    前記処理性能値取得手段で求めた処理性能値と前記変動する測定値との間にマージンができるように、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する、
    ことを特徴とする請求項1乃至5の何れか一項に記載の負荷分散装置。
  7. 前記振分手段は、前記選択手段が選択したサーバが2台以上の場合、該選択したサーバの性能比に応じて前記クライアントからの処理要求を振り分ける、
    ことを特徴とする請求項1乃至6の何れか一項に記載の負荷分散装置。
  8. 前記振分手段は、
    前記選択手段が前記マージンができるように選択したサーバが2台以上の場合、処理負荷が他のサーバに比べて軽いサーバを含むように、負荷分散比を示す重み付け係数を前記2台以上の各サーバに付与し、該付与した重み付け係数に基づいて前記クライアントからの処理要求を振り分ける、
    ことを特徴とする請求項6に記載の負荷分散装置。
  9. 前記振分手段は、
    前記各サーバに付与する重み付け係数の比を、前記測定値の変動に応じて動的に変化させ、該変化させた重み付け係数の比に基づいて前記クライアントからの処理要求を振り分ける、
    ことを特徴とする請求項8に記載の負荷分散装置。
  10. 前記振分手段は、
    前記測定値の上昇に伴って、前記各サーバに付与する重み付け係数の比を等しくする、
    ことを特徴とする請求項9に記載の負荷分散装置。
  11. 前記処理性能値取得手段は、前記複数のサーバの台数に増減があった場合、前記処理性能値を求め直す、
    ことを特徴とする請求項1乃至10の何れか一項に記載の負荷分散装置。
  12. 複数のサーバ全体での処理性能値を、自装置の外部から取得する処理性能値取得手段と、
    前記処理性能値取得手段で取得した処理性能値と、前記複数のサーバにかかる負荷の指標となる測定値の変動と、に基づいて、前記複数のサーバのうちクライアントからの処理要求を応答処理するサーバを選択する選択手段と、
    前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段と、
    を備えたことを特徴とする負荷分散装置。
  13. 複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得ステップと、
    前記複数のサーバのうち、クライアントからの単位時間当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める最小サーバ台数取得ステップと、
    前記最小サーバ台数取得ステップにおいて求めた最小サーバ台数と、前記測定値取得ステップにおいて取得した測定値と、に基づいて、前記複数のサーバが単位時間当たりに処理要求を応答処理可能な処理性能値を求める処理性能値取得ステップと、
    前記処理性能値取得ステップにおいて求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択ステップと、
    前記選択ステップにおいて選択したサーバに、前記クライアントからの処理要求を振り分ける振分ステップと、
    を備えたことを特徴とする負荷分散方法。
  14. クライアントと複数のサーバとにネットワークを介して接続されるコンピュータを、
    前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得手段、
    前記複数のサーバのうち、前記クライアントからの単位時間当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める最小サーバ台数取得手段、
    前記最小サーバ台数取得手段で求めた最小サーバ台数と、前記測定値取得手段で取得した測定値と、に基づいて、前記複数のサーバが単位時間当たりに処理要求を応答処理可能な処理性能値を求める処理性能値取得手段、
    前記処理性能値取得手段で求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択手段、
    前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段、
    として機能させるためのプログラム。
JP2015106330A 2014-05-28 2015-05-26 負荷分散装置、負荷分散方法及びプログラム Active JP6543090B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015106330A JP6543090B2 (ja) 2014-05-28 2015-05-26 負荷分散装置、負荷分散方法及びプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014110579 2014-05-28
JP2014110579 2014-05-28
JP2015106330A JP6543090B2 (ja) 2014-05-28 2015-05-26 負荷分散装置、負荷分散方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2016006638A true JP2016006638A (ja) 2016-01-14
JP6543090B2 JP6543090B2 (ja) 2019-07-10

Family

ID=55225020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015106330A Active JP6543090B2 (ja) 2014-05-28 2015-05-26 負荷分散装置、負荷分散方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6543090B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018124598A (ja) * 2017-01-05 2018-08-09 みずほ情報総研株式会社 サービス支援システム、サービス支援方法及びサービス支援プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128382A (ja) * 2005-11-07 2007-05-24 Nec Corp クラスタシステムの性能予測方法および装置
JP2011076468A (ja) * 2009-09-30 2011-04-14 Nomura Research Institute Ltd 負荷管理装置、情報処理システムおよび負荷管理方法
JP2012208781A (ja) * 2011-03-30 2012-10-25 Internatl Business Mach Corp <Ibm> 情報処理システム、情報処理装置、スケーリング方法、プログラムおよび記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128382A (ja) * 2005-11-07 2007-05-24 Nec Corp クラスタシステムの性能予測方法および装置
JP2011076468A (ja) * 2009-09-30 2011-04-14 Nomura Research Institute Ltd 負荷管理装置、情報処理システムおよび負荷管理方法
JP2012208781A (ja) * 2011-03-30 2012-10-25 Internatl Business Mach Corp <Ibm> 情報処理システム、情報処理装置、スケーリング方法、プログラムおよび記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018124598A (ja) * 2017-01-05 2018-08-09 みずほ情報総研株式会社 サービス支援システム、サービス支援方法及びサービス支援プログラム

Also Published As

Publication number Publication date
JP6543090B2 (ja) 2019-07-10

Similar Documents

Publication Publication Date Title
JP6671468B2 (ja) クラウドモニタリングに基づく負荷分散の最適化方法および装置
JP4984169B2 (ja) 負荷分散プログラム、負荷分散方法、負荷分散装置およびそれを含むシステム
US9489222B2 (en) Techniques for workload balancing among a plurality of physical machines
US8589558B2 (en) Method and system for efficient deployment of web applications in a multi-datacenter system
US8103769B1 (en) Dynamic isolation of shared resources
US9122537B2 (en) Balancing server load according to availability of physical resources based on the detection of out-of-sequence packets
CN109766189B (zh) 集群调度方法和装置
US10397131B2 (en) Method and system for determining bandwidth demand
JP2012099062A (ja) サービス連携システムおよび情報処理システム
US20170237684A1 (en) Decentralized resource allocation
WO2016172848A1 (zh) 一种调整云计算中虚拟资源的方法及装置
US9851988B1 (en) Recommending computer sizes for automatically scalable computer groups
CN112929408A (zh) 动态负载均衡方法及装置
JP2005182641A (ja) 動的負荷分散システム及び動的負荷分散方法
Dargie et al. Analysis of the power and hardware resource consumption of servers under different load balancing policies
CN103488538B (zh) 云计算系统中的应用扩展装置和应用扩展方法
US20170185456A1 (en) Dynamically scaled web service deployments
KR101448413B1 (ko) Atca-기반 장비에서 통신 트래픽을 스케줄링하기 위한 방법 및 장치
US10171572B2 (en) Server pool management
JP2005092862A (ja) 負荷分散方法及びクライアント・サーバシステム
US9501321B1 (en) Weighted service requests throttling
US10691700B1 (en) Table replica allocation in a replicated storage system
JP2001202318A (ja) データ配信システム
JP6543090B2 (ja) 負荷分散装置、負荷分散方法及びプログラム
JP2007328417A (ja) リクエスト制限装置、サーバ装置、リクエスト制限方法、リクエスト制限プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190510

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: 20190528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190614

R150 Certificate of patent or registration of utility model

Ref document number: 6543090

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250