(57)【特許請求の範囲】
【請求項１】
クライアントと複数のサーバとにネットワークを介して接続される負荷分散装置であって、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得手段と、
単位時間当たりの処理要求を前記複数のサーバに転送してから、該複数のサーバより応答処理を受信するまでにかかった平均往復時間を基準往復時間として求める基準往復時間取得手段と、
前記平均往復時間を前記複数のサーバの台数を減らして求める平均往復時間取得手段と、
前記平均往復時間が前記基準往復時間から算出される所定の許容往復時間を越えるサーバ台数を特定し、該特定したサーバ台数に１台サーバ台数を加算した台数を最小サーバ台数として取得する最小サーバ台数取得手段と、
前記最小サーバ台数取得手段で求めた最小サーバ台数と、前記測定値取得手段で取得した測定値と、に基づいて、前記複数のサーバが前記単位時間当たりに前記処理要求を応答処理可能な処理性能値を求める処理性能値取得手段と、
前記処理性能値取得手段で求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択手段と、
前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段と、
を備えたことを特徴とする負荷分散装置。
【請求項２】
クライアントと複数のサーバとにネットワークを介して接続される負荷分散装置であって、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得手段と、
単位時間当たりの処理要求を応答処理する各サーバのＣＰＵ使用率から平均ＣＰＵ使用率を求める平均ＣＰＵ使用率取得手段と、
前記平均ＣＰＵ使用率が所定の上限率を超えるサーバ台数を特定し、該特定したサーバ台数に１台サーバ台数を加算した台数を最小サーバ台数として取得する最小サーバ台数取得手段と、
前記最小サーバ台数取得手段で求めた最小サーバ台数と、前記測定値取得手段で取得した測定値と、に基づいて、前記複数のサーバが前記単位時間当たりに前記処理要求を応答処理可能な処理性能値を求める処理性能値取得手段と、
前記処理性能値取得手段で求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択手段と、
前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段と、
を備えたことを特徴とする負荷分散装置。
【請求項３】
前記測定値取得手段は、前記負荷の指標となる測定値として、前記クライアントからの単位時間当たりの処理要求数を取得する、
ことを特徴とする請求項１または２に記載の負荷分散装置。
【請求項４】
前記測定値取得手段は、前記負荷の指標となる測定値として、前記クライアントからの単位時間当たりの処理要求に対して応答処理した処理数を取得する、
ことを特徴とする請求項１または２に記載の負荷分散装置。
【請求項５】
前記選択手段は、
前記処理性能値取得手段で求めた処理性能値と前記変動する測定値との間にマージンができるように、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する、
ことを特徴とする請求項１乃至４の何れか一項に記載の負荷分散装置。
【請求項６】
前記振分手段は、
前記選択手段が前記マージンができるように選択したサーバが２台以上の場合、処理負荷が他のサーバに比べて軽いサーバを含むように、負荷分散比を示す重み付け係数を前記２台以上の各サーバに付与し、該付与した重み付け係数に基づいて前記クライアントからの処理要求を振り分ける、
ことを特徴とする請求項５に記載の負荷分散装置。
【請求項７】
前記振分手段は、
前記各サーバに付与する重み付け係数の比を、前記測定値の変動に応じて動的に変化させ、該変化させた重み付け係数の比に基づいて前記クライアントからの処理要求を振り分ける、
ことを特徴とする請求項６に記載の負荷分散装置。
【請求項８】
前記振分手段は、
前記測定値の上昇に伴って、前記各サーバに付与する重み付け係数の比を等しくする、
ことを特徴とする請求項７に記載の負荷分散装置。
【請求項９】
前記処理性能値取得手段は、前記複数のサーバの台数に増減があった場合、前記処理性能値を求め直す、
ことを特徴とする請求項１乃至８の何れか一項に記載の負荷分散装置。
【請求項１０】
クライアントと複数のサーバとにネットワークを介して接続される負荷分散装置で実行する負荷分散方法であって、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得ステップと、
単位時間当たりの処理要求を前記複数のサーバに転送してから、該複数のサーバより応答処理を受信するまでにかかった平均往復時間を基準往復時間として求める基準往復時間取得ステップと、
前記平均往復時間を前記複数のサーバの台数を減らして求める平均往復時間取得ステップと、
前記平均往復時間が前記基準往復時間から算出される所定の許容往復時間を越えるサーバ台数を特定し、該特定したサーバ台数に１台サーバ台数を加算した台数を最小サーバ台数として取得する最小サーバ台数取得ステップと、
前記最小サーバ台数取得ステップにおいて求めた最小サーバ台数と、前記測定値取得ステップにおいて取得した測定値と、に基づいて、前記複数のサーバが前記単位時間当たりに前記処理要求を応答処理可能な処理性能値を求める処理性能値取得ステップと、
前記処理性能値取得ステップにおいて求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択ステップと、
前記選択ステップにおいて選択したサーバに、前記クライアントからの処理要求を振り分ける振分ステップと、
を備えたことを特徴とする負荷分散方法。
【請求項１１】
クライアントと複数のサーバとにネットワークを介して接続される負荷分散装置で実行する負荷分散方法であって、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得ステップと、
単位時間当たりの処理要求を応答処理する各サーバのＣＰＵ使用率から平均ＣＰＵ使用率を求める平均ＣＰＵ使用率取得ステップと、
前記平均ＣＰＵ使用率が所定の上限率を超えるサーバ台数を特定し、該特定したサーバ台数に１台サーバ台数を加算した台数を最小サーバ台数として取得する最小サーバ台数取得ステップと、
前記最小サーバ台数取得ステップにおいて求めた最小サーバ台数と、前記測定値取得ステップにおいて取得した測定値と、に基づいて、前記複数のサーバが前記単位時間当たりに前記処理要求を応答処理可能な処理性能値を求める処理性能値取得ステップと、
前記処理性能値取得ステップにおいて求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択ステップと、
前記選択ステップにおいて選択したサーバに、前記クライアントからの処理要求を振り分ける振分ステップと、
を備えたことを特徴とする負荷分散方法。
【請求項１２】
クライアントと複数のサーバとにネットワークを介して接続されるコンピュータを、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得手段、
単位時間当たりの処理要求を前記複数のサーバに転送してから、該複数のサーバより応答処理を受信するまでにかかった平均往復時間を基準往復時間として求める基準往復時間取得手段、
前記平均往復時間を前記複数のサーバの台数を減らして求める平均往復時間取得手段、
前記平均往復時間が前記基準往復時間から算出される所定の許容往復時間を越えるサーバ台数を特定し、該特定したサーバ台数に１台サーバ台数を加算した台数を最小サーバ台数として取得する最小サーバ台数取得手段、
前記最小サーバ台数取得手段で求めた最小サーバ台数と、前記測定値取得手段で取得した測定値と、に基づいて、前記複数のサーバが前記単位時間当たりに前記処理要求を応答処理可能な処理性能値を求める処理性能値取得手段、
前記処理性能値取得手段で求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択手段、
前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段、
として機能させるためのプログラム。
【請求項１３】
クライアントと複数のサーバとにネットワークを介して接続されるコンピュータを、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得手段、
単位時間当たりの処理要求を応答処理する各サーバのＣＰＵ使用率から平均ＣＰＵ使用率を求める平均ＣＰＵ使用率取得手段、
前記平均ＣＰＵ使用率が所定の上限率を超えるサーバ台数を特定し、該特定したサーバ台数に１台サーバ台数を加算した台数を最小サーバ台数として取得する最小サーバ台数取得手段、
前記最小サーバ台数取得手段で求めた最小サーバ台数と、前記測定値取得手段で取得した測定値と、に基づいて、前記複数のサーバが前記単位時間当たりに前記処理要求を応答処理可能な処理性能値を求める処理性能値取得手段、
前記処理性能値取得手段で求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択手段、
前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、負荷分散装置、負荷分散方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、クライアントからのリクエストを、設定された負荷分散方式に基づいて複数のサーバに振り分ける負荷分散装置が広く用いられている。
負荷分散方式としては、例えば、各サーバに順番にリクエストを振り分けるラウンドロビン方式などが知られている。
【０００３】
また、特許文献１には、別の負荷分散方式として、パケットの優先度に応じて重み付けを行い、その重み付けにより定まる順序でパケットを振り分ける負荷分散方式が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１０／１０１００２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、従来のラウンドロビン方式や特許文献１に記載の負荷分散方式では、全サーバにリクエストを振り分けるので、全サーバを稼動しておく必要がある。
このため、クライアントからのリクエストを処理するのに、全サーバのリソースを使用する必要がない場合であっても、全サーバを平均的に使用することから消費電力が高くなる傾向があった。
このようなことから、負荷分散装置に接続される複数のサーバの省電力化を図ることが望まれている。
【０００６】
そこで、この発明は、上述した事情に鑑みてなされたものであって、複数のサーバの省電力化を図る場合に好適な負荷分散装置等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、この発明の第１の観点に係る負荷分散装置は、
クライアントと複数のサーバとにネットワークを介して接続される負荷分散装置であって、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得手段と、
前記複数のサーバのうち、前記クライアントからの単位時間当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める最小サーバ台数取得手段と、
前記最小サーバ台数取得手段で求めた最小サーバ台数と、前記測定値取得手段で取得した測定値と、に基づいて、前記複数のサーバが単位時間当たりに処理要求を応答処理可能な処理性能値を求める処理性能値取得手段と、
前記処理性能値取得手段で求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択手段と、
前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段と、
を備えたことを特徴とする。
【０００８】
また、前記測定値取得手段は、前記負荷の指標となる測定値として、前記クライアントからの単位時間当たりの処理要求数を取得するとよい。
また、前記測定値取得手段は、前記負荷の指標となる測定値として、前記クライアントからの単位時間当たりの処理要求に対して応答処理した処理数を取得するとよい。
【０００９】
また、前記最小サーバ台数取得手段は、
前記単位時間当たりの処理要求を前記複数のサーバに転送してから、該複数のサーバより応答処理を受信するまでにかかった平均往復時間を基準往復時間として求める基準往復時間取得手段と、
前記平均往復時間を前記複数のサーバの台数を減らして求める平均往復時間取得手段と、を備え、
前記平均往復時間が前記基準往復時間から算出される所定の許容往復時間を越えるサーバ台数を特定し、該特定したサーバ台数に１台サーバ台数を加算した台数を前記最小サーバ台数とするとよい。
【００１０】
また、前記最小サーバ台数取得手段は、
前記単位時間当たりの処理要求を応答処理する各サーバのＣＰＵ使用率から平均ＣＰＵ使用率を求める平均ＣＰＵ使用率取得手段を備え、
前記平均ＣＰＵ使用率が所定の上限率を超えるサーバ台数を特定し、該特定したサーバ台数に１台サーバ台数を加算した台数を前記最小サーバ台数とするとよい。
【００１１】
また、前記選択手段は、前記処理性能値取得手段で求めた処理性能値と前記変動する測定値との間にマージンができるように、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択するとよい。
【００１２】
また、前記振分手段は、前記選択手段が選択したサーバが２台以上の場合、該選択したサーバの性能比に応じて前記クライアントからの処理要求を振り分けるとよい。
【００１３】
また、前記振分手段は、前記選択手段が前記マージンができるように選択したサーバが２台以上の場合、処理負荷が他のサーバに比べて軽いサーバを含むように、負荷分散比を示す重み付け係数を前記２台以上の各サーバに付与し、該付与した重み付け係数に基づいて前記クライアントからの処理要求を振り分けるとよい。
【００１４】
また、前記振分手段は、前記各サーバに付与する重み付け係数の比を、前記測定値の変動に応じて動的に変化させ、該変化させた重み付け係数の比に基づいて前記クライアントからの処理要求を振り分けるとよい。
【００１５】
また、前記振分手段は、前記測定値の上昇に伴って、前記各サーバに付与する重み付け係数の比を等しくするとよい。
【００１６】
また、前記処理性能値取得手段は、前記複数のサーバの台数に増減があった場合、前記処理性能値を求め直すとよい。
【００１７】
上記目的を達成するため、この発明の第２の観点に係る負荷分散装置は、
複数のサーバ全体での処理性能値を、自装置の外部から取得する処理性能値取得手段と、
前記処理性能値取得手段で取得した処理性能値と、前記複数のサーバにかかる負荷の指標となる測定値の変動と、に基づいて、前記複数のサーバのうちクライアントからの処理要求を応答処理するサーバを選択する選択手段と、
前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段と、
を備えたことを特徴とする。
【００１８】
上記目的を達成するため、この発明の第３の観点に係る負荷分散方法は、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得ステップと、
前記複数のサーバのうち、クライアントからの単位時間当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める最小サーバ台数取得ステップと、
前記最小サーバ台数取得ステップにおいて求めた最小サーバ台数と、前記測定値取得ステップにおいて取得した測定値と、に基づいて、前記複数のサーバが単位時間当たりに処理要求を応答処理可能な処理性能値を求める処理性能値取得ステップと、
前記処理性能値取得ステップにおいて求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択ステップと、
前記選択ステップにおいて選択したサーバに、前記クライアントからの処理要求を振り分ける振分ステップと、
を備えたことを特徴とする。
【００１９】
上記目的を達成するため、この発明の第４の観点に係るプログラムは、
クライアントと複数のサーバとにネットワークを介して接続されるコンピュータを、
前記複数のサーバにかかる負荷の指標となる測定値を取得する測定値取得手段、
前記複数のサーバのうち、前記クライアントからの単位時間当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める最小サーバ台数取得手段、
前記最小サーバ台数取得手段で求めた最小サーバ台数と、前記測定値取得手段で取得した測定値と、に基づいて、前記複数のサーバが単位時間当たりに処理要求を応答処理可能な処理性能値を求める処理性能値取得手段、
前記処理性能値取得手段で求めた処理性能値と前記測定値の変動とに基づいて、前記複数のサーバのうち前記クライアントからの処理要求を応答処理するサーバを選択する選択手段、
前記選択手段で選択したサーバに、前記クライアントからの処理要求を振り分ける振分手段、
として機能させるためのプログラムである。
【発明の効果】
【００２０】
この発明によれば、複数のサーバの省電力化を図ることができる。
【図面の簡単な説明】
【００２１】
【図１】この発明の第１実施形態の構成を概略的に示す図である。
【図２】図１に示した負荷分散装置のハードウェア構成を示すブロック図である。
【図３】図１に示した負荷分散装置の機能ブロック図である。
【図４】第１実施形態に係る最小サーバ台数取得処理の流れを示すフローチャートである。
【図５】各サーバ台数に対する平均往復時間の一例を示す図である。
【図６】第２実施形態に係る負荷分散装置の機能ブロック図である。
【図７】第２実施形態に係る最小サーバ台数取得処理の流れを示すフローチャートである。
【図８】各サーバ台数に対する平均ＣＰＵ使用率の一例を示す図である。
【図９】トランザクション量と稼働サーバ台数、および、各サーバに付与する重み付け係数の付与例を示す図である。
【図１０】（ａ）は、サーバの負荷率とサーバの消費電力との関係の例を示すグラフである。（ｂ）は、重み付け係数と消費電力との関係を説明するための図である。
【発明を実施するための形態】
【００２２】
（第１実施形態）
以下、この発明の第１実施形態を図面に基づいて説明する。
図１に示すように、負荷分散装置１００は、複数のクライアント２００と複数のサーバ（１乃至５）とにネットワークを介して接続される。負荷分散装置１００と複数のサーバとの間のネットワークとしては例えばＬＡＮ(Local Area Network)であり、負荷分散装置１００と複数のクライアント２００との間のネットワークとしては例えばインターネット、ＬＡＮである。
なお、以下の説明において、個々のサーバを特段特定して説明する必要がない場合は、適宜、複数のサーバ、全サーバ、各サーバなどと称して説明する。また、この実施形態では、理解を容易にするために、サーバ台数は５台とし、各サーバの性能及び消費電力は同じであることを前提として説明する。
【００２３】
負荷分散装置１００は、ネットワークを介して送信される複数のクライアント２００からの処理要求を中継して、各サーバに振り分けるロードバランサである。この実施形態では、負荷分散装置１００は、消費電力を抑えるために処理要求を全サーバに振り分けずに、選択したサーバに振り分ける。この点については、後述する。
【００２４】
複数のサーバは、複数のクライアント２００からの処理要求に応じて、ＨＴＭＬ(HyperText Markup Language)文書や画像などのデータを応答処理として提供するウェブサーバである。
複数のクライアント２００はそれぞれ、ユーザの入力操作を受け付けて処理要求を送信するＰＣ(Personal Computer)である。また、複数のクライアント２００はそれぞれ、各サーバから提供されるデータに基づいて、ディスプレイなどの表示手段にＨＴＭＬ文書や画像などを表示する。ここで、処理要求としては例えばｈｔｔｐ(HyperText Transfer Protocol)リクエストであり、応答処理としては例えばｈｔｔｐレスポンスである。
複数のクライアント２００は、便宜上３台（クライアント２１０、２２０及び２３０）のみ図示するが、実際には、数百数千がインターネットを介して負荷分散装置１００と接続され、複数の処理要求が各サーバに振り分けられる。
【００２５】
次に、図２を参照しながら、負荷分散装置１００のハードウェア構成について説明する。図２に示すように、負荷分散装置１００は、ＣＰＵ(Central Processing Unit)１０１とフラッシュＲＯＭ(Read Only Memory)１０２とＲＡＭ(Random Access Memory)１０３とネットワークＩ／Ｆ(Interface)１０４と、を備える。
このうち、ＣＰＵ１０１は、負荷分散装置１００全体を制御する中央演算装置である。
フラッシュＲＯＭ１０２は、ＣＰＵ１０１が実行する負荷分散に係るプログラムを格納している不揮発性メモリである。
【００２６】
ＲＡＭ１０３は、ＣＰＵ１０１が実行するプログラムを一時的に展開し、ＣＰＵ１０１が負荷分散に係る処理を行う際の作業領域として使用する揮発性メモリである。
ネットワークＩ／Ｆ１０４は、この負荷分散装置１００が、複数のサーバ、複数のクライアント２００とネットワークを介して通信を行うためのインタフェースである。
【００２７】
ここで、ＣＰＵ１０１は、フラッシュＲＯＭ１０２内の負荷分散に係るプログラムを読み出し、ＲＡＭ１０３に展開した後、そのプログラムに従って負荷分散装置１００を制御することで、図３に示すような各部の機能を実現することができる。
機能としては、図３に示すように、トランザクション数取得部１０、最小サーバ台数取得部２０、最大トランザクション数取得部３０、サーバ選択部４０及び振分部５０を備える。
【００２８】
まず、トランザクション数取得部１０は、複数のクライアント２００からの毎秒当たりの処理要求に対して応答処理したトランザクション数（ＴＰＳ：Transaction Per Sec）を測定して、そのトランザクション数を取得する。ここで、トランザクションとは、処理要求に対して応答処理するまでを一体不可分のものとしてまとめた一連の処理を言う。
例えば、トランザクション数取得部１０は、クライアント２１０から受信した１つの処理要求をサーバ１に転送し、そのサーバ１からの応答処理を受信すると１トランザクションとする。このようにして、トランザクション数取得部１０は、複数のクライアント２００からの処理要求を各サーバに転送し、その各サーバからの応答処理を受信するとトランザクションをカウントしていく。
【００２９】
ここで、トランザクション数は、複数のサーバにかかる負荷の指標となる測定値とも言える。このため、トランザクション数が多ければ高負荷、低ければ低負荷となる。この実施形態においては、負荷の指標となる測定値として、トランザクション数（ＴＰＳ）を例にとって説明する。また、このトランザクション数は、処理数とも呼ぶ。
【００３０】
この実施形態においては、負荷分散先を選択する前（すなわち、全サーバが稼働している場合）、トランザクション数取得部１０は、複数のクライアント２００からの毎秒当たり処理要求に応じて、全サーバが応答処理したトランザクション数を測定して取得する。一方、負荷分散先を選択した後（すなわち、休止サーバが含まれる場合）、トランザクション数取得部１０は、複数のクライアント２００からの毎秒当たりの処理要求に応じて、稼動サーバが応答処理したトランザクション数を測定して取得する。
なお、トランザクション数は、障害などにより応答処理ができなかったような例外を除き、原則処理要求の数と一致する。また、トランザクション数取得部１０は、測定値取得手段に相当する。
【００３１】
次に、最小サーバ台数取得部２０は、複数のサーバのうち、複数のクライアント２００からの毎秒当たりの処理要求を応答処理するのに必要な最小サーバ台数を求める。
具体的には、まず、基準往復時間取得部２１は、毎秒当たりの処理要求を複数のサーバに転送してから、その複数のサーバより応答処理を受信するまでにかかった平均往復時間を基準往復時間として求める。
次に、平均往復時間取得部２２は、平均往復時間を複数のサーバの台数を減らして求め、その求めた平均往復時間と、基準往復時間から算出される所定の許容往復時間と、を比較する。
【００３２】
次に、最小サーバ台数取得部２０は、平均往復時間が所定の許容往復時間を越えるサーバ台数を特定し、その特定したサーバ台数に１台サーバ台数を加算した台数を最小サーバ台数とする。この最小サーバ台数取得部２０による最小サーバ台数を求める具体的な処理については、後述する。
なお、最小サーバ台数取得部２０は最小サーバ台数取得手段に、基準往復時間取得部２１は基準往復時間取得手段に、平均往復時間取得部２２は平均往復時間取得手段に、それぞれ相当する。
【００３３】
次に、最大トランザクション数取得部３０は、最小サーバ台数取得部２０で求めた最小サーバ台数と、トランザクション数取得部１０で取得した測定値であるトランザクション数と、に基づいて、複数のサーバが毎秒当たりに処理要求を応答処理可能な最大トランザクション数（最大ＴＰＳ）を求める。
具体的には、最大トランザクション数取得部３０は、求めた最小サーバ台数と負荷分散先を選択する前に測定した全サーバが応答処理したトランザクション数との比から、全サーバ５台での最大トランザクション数を求める。この最大トランザクション数を求める際の具体例については後述する。
なお、この最大トランザクション数は、複数のサーバ全体での最大の処理性能値を示す。また、最大トランザクション数取得部３０は、処理性能値取得手段に相当する。
【００３４】
次に、サーバ選択部４０は、求めた最大の処理性能値である最大トランザクション数と、測定したトランザクション数の変動と、に基づいて、複数のサーバのうち複数のクライアント２００からの処理要求を応答処理するサーバを選択する。
換言すると、サーバ選択部４０は、最大トランザクション数取得部３０で求めた最大トランザクション数（最大ＴＰＳ）に対するトランザクション数取得部１０で取得したトランザクション数（ＴＰＳ）の割合に応じて、複数のサーバのうち複数のクライアント２００からの処理要求を応答処理するサーバを選択する。つまり、サーバ選択部４０は、振り分けるサーバ台数を決定する。
具体的には、サーバ選択部４０は、測定したトランザクション数の変動に従って、動的に応答処理させるサーバ台数を増減する。例えば、最大ＴＰＳに対するＴＰＳの割合が小さい場合、すなわち測定したトランザクション数が少ない場合は、全サーバを稼動する必要がないので、サーバ選択部４０は、例えばサーバ１とサーバ２の２台を選択する。なお、選択にあたっては、複数のサーバのうち任意のサーバが選択される。また、サーバ選択部４０は、選択手段に相当する。
【００３５】
次に、振分部５０は、サーバ選択部４０で選択したサーバに、複数のクライアント２００からの処理要求を振り分ける。振り分けの手法は任意であるが、例えば、ラウンドロビン方式に従って均等に振り分けられる。なお、振分部５０は、振分手段に相当する。
【００３６】
以上、図１乃至図３を参照しながら説明した負荷分散装置１００において、例えば、一つの特徴的な点は、最小サーバ台数を求め、求めた最小サーバ台数に基づいて全サーバの最大の処理性能値を求める点である。そこで、以下この点に関連する最小サーバ台数取得処理について、図４のフローチャートを参照しながら説明する。
この処理は、負荷分散装置１００を起動した直後や複数のサーバの運用を開始した後の所定時間毎（例えば、一週間に一回）などに実施される。また、トランザクション数取得部１０が測定して取得したトランザクション数は１０００ＴＰＳであるとする。
【００３７】
まず、最小サーバ台数取得部２０は、サーバ数をサーバ台数としてセットする（ステップＳ１１）。この実施形態においては、最小サーバ台数取得部２０は、サーバ数を５台としてセットする。
【００３８】
次に、基準往復時間取得部２１は、基準往復時間を測定する（ステップＳ１２）。具体的には、基準往復時間取得部２１は、毎秒当たりの処理要求を複数のサーバに転送してから、その複数のサーバより応答処理を受信するまでにかかった平均往復時間を基準往復時間とする。この平均往復時間が例えば１ｍ秒の場合、図５に示すように５台の時の平均往復時間（基準往復時間）が１ｍ秒となる。
【００３９】
次に、最小サーバ台数取得部２０は、許容往復時間を算出する（ステップＳ１３）。具体的には、最小サーバ台数取得部２０は、基準往復時間に所定の係数を乗じて許容往復時間を算出する。例えば、基準往復時間である１ｍ秒に係数２を乗じて許容往復時間２ｍ秒を求める。なお、係数は、負荷分散装置１００の管理ユーザが所望の値を設定できる。
【００４０】
次に、平均往復時間取得部２２は、サーバ数をサーバ数−１としてセットする（ステップＳ１４）。この実施形態においては、最小サーバ台数取得部２０は、サーバ数を４台にセットする。
【００４１】
次に、平均往復時間取得部２２は、サーバ数＝０か否か判定する（ステップＳ１５）。ここで、サーバ数は４台で０ではないので（ステップＳ１５；Ｎｏ）、平均往復時間取得部２２は、平均往復時間を測定する（ステップＳ１６）。
具体的には、平均往復時間取得部２２は、サーバ台数が４台のときの平均往復時間１．１ｍ秒を求める（図５参照）。
ここで、一般的に、サーバ台数が減少するとサーバ１台当たりが処理要求を応答処理する数が増加するため、平均往復時間が長くなる。
【００４２】
次に、最小サーバ台数取得部２０は、平均往復時間が許容往復時間以下か否か判定する（ステップＳ１７）。ここで、平均往復時間１．１秒は許容往復時間２ｍ秒以下なので（ステップＳ１７；Ｙｅｓ）、ステップＳ１４に戻ってサーバ台数を１台減らしてステップＳ１５乃至Ｓ１７の処理を再度行う。このように、ステップＳ１４乃至Ｓ１７の処理では、サーバ台数を１台ずつ減らしてその都度、平均往復時間が許容往復時間以下か否か判定する。そして、平均往復時間が許容往復時間を越えるまで（ステップＳ１７；Ｎｏ）、ステップＳ１４乃至１７の処理を繰り返す。
【００４３】
図５の例では、サーバ台数が１台のときに、平均往復時間２．５ｍ秒が許容往復時間２ｍ秒を超える（ステップＳ１７；Ｎｏ）。この場合、最小サーバ台数取得部２０は、最小サーバ台数＝サーバ数＋１にして（ステップＳ１８）、処理を終了する。上記図５の例の場合、最小サーバ台数取得部２０は、最小サーバ台数を、許容往復時間を超えたサーバ台数１台の直前の台数２台にして、処理を終了する。
この場合、最小サーバ台数は２台で測定したトランザクション数（処理数）は１０００ＴＰＳなので、最大ＴＰＳは、１０００ＴＰＳ×５台／２台＝２５００ＴＰＳとなる。このため、サーバ１台当たりが処理可能なトランザクション数は５００ＴＰＳとなる。
【００４４】
一方で、図５の例の場合と異なり、サーバ台数が１台のときでも、平均往復時間が許容往復時間以下の場合（ステップＳ１７；Ｙｅｓ）、ステップＳ１４に戻ってサーバ数が０となって（ステップＳ１５；Ｙｅｓ）、最小サーバ台数取得部２０は、最小サーバ台数を１台にして（ステップＳ１９）、処理を終了する。
この場合、最小サーバ台数は１台で測定したトランザクション数（処理数）は１０００ＴＰＳなので、最大ＴＰＳは、１０００ＴＰＳ×５台／１台＝５０００ＴＰＳとなる。このため、サーバ１台当たりが処理可能なトランザクション数は１０００ＴＰＳとなる。
【００４５】
このように、いったん最大トランザクション数（最大ＴＰＳ）を求めておけば、後はトランザクション数（ＴＰＳ）の変動に応じて、サーバ選択部４０が必要なサーバ台数を決定してその台数分だけサーバを選択する。例えば、最大ＴＰＳが２５００ＴＰＳで測定したＴＰＳが１０００ＴＰＳだとサーバを２台（例えば、サーバ１及び２）、測定したＴＰＳが１１００だとサーバを３台（例えば、サーバ１乃至３）、それぞれ選択することになる。
【００４６】
以上、図４の処理において、負荷分散装置１００は、トランザクション数取得部１０、最小サーバ台数取得部２０及び最大トランザクション数取得部３０の機能を備えたことにより、複数のサーバ台数から１台ずつサーバを減らして平均往復時間を測定し、その平均往復時間が所定の許容往復時間を越えたサーバ台数を特定し、その特定したサーバ台数に１台サーバ台数を加算した台数（許容往復時間を越える直前の台数）を最小サーバ台数として、最大トランザクション数を求めることができる。
このため、使用サーバ台数を決定するために必要となる最大の処理性能値を求めることができる。従って、最大の処理性能値をユーザが求める必要がない。また、選択しなかったサーバについては休止（アイドル）状態にできる。このため、ユーザの手間を省きつつ、負荷分散装置１００に接続される複数のサーバの省電力化を図ることができる。
【００４７】
なお、平均往復時間取得部２２は、平均往復時間を複数のサーバの台数を減らして求め、その求めた平均往復時間と基準往復時間との差である遅延時間を求めてもよい。この場合、最小サーバ台数取得部２０は、遅延時間が所定の許容遅延時間を越えるサーバ台数を特定し、その特定したサーバ台数に１台サーバ台数を加算した台数を最小サーバ台数とする。
【００４８】
具体的には、まず、ステップＳ１３において許容往復時間を算出することに代えて、最小サーバ台数取得部２０は、基準往復時間から許容遅延時間（例えば、基準往復時間が１ｍ秒の場合、その１ｍ秒を基準として許容される遅延時間を１ｍ秒として）算出する。次に、サーバ台数を減らした場合（４台、３台、２台など）の遅延時間（平均往復時間と基準往復時間との差）を順に求め、その都度求めた遅延時間と許容遅延時間とを比較して、遅延時間が許容遅延時間を超えたサーバ台数（例えば、１台のときの遅延時間が許容遅延時間１ｍ秒を超える１．５ｍ秒であれば、直前の２台）を、最小サーバ台数とする。
これにより、許容往復時間に代えて許容遅延時間を用いて、上記第１実施形態と同様の効果、すなわちユーザの手間を省きつつ、負荷分散装置１００に接続される複数のサーバの省電力化を図ることができる。
【００４９】
（第２実施形態）
次に、この発明の第２実施形態を図６乃至図８を参照しながら説明する。
第２実施形態では、負荷分散装置１００′が、平均ＣＰＵ使用率に基づいて最小サーバ台数を求める点が第１実施形態と異なる。そこで、この異なる点を中心に以下説明する。
なお、第２実施形態において、負荷分散装置１００′のハードウェア構成は、第１実施形態の負荷分散装置１００と同じである。また、負荷分散装置１００′の機能については、図３に示した基準往復時間取得部２１及び平均往復時間取得部２２に代えて、図６に示すように平均ＣＰＵ使用率取得部２３を備える点が異なる。
【００５０】
平均ＣＰＵ使用率取得部２３は、毎秒当たりの処理要求を応答処理する各サーバのＣＰＵ使用率から平均ＣＰＵ使用率を求める。例えば、平均ＣＰＵ使用率取得部２３は、測定したトランザクション数が１０００ＴＰＳの場合において、異なるサーバ台数（５台、４台、３台など）での平均ＣＰＵ使用率を求める。
【００５１】
ここで、各サーバよりＣＰＵ使用率を取得する手法は任意である。例えば、各サーバに予めＳＮＭＰ（Simple Network Management Protocol）エージェントと呼ばれるサーバ監視用のモジュールをインストールしておき、そのＳＮＭＰエージェントに対して負荷分散装置１００′がＳＮＭＰゲットのコマンドを発行することによりＣＰＵ使用率を取得できる。
なお、別の手法により、ＣＰＵ使用率を取得しても構わない。また、平均ＣＰＵ使用率取得部２３は、平均ＣＰＵ使用率取得手段に相当する。
【００５２】
次に、図７を参照しながら、第２実施形態に係る最小サーバ台数取得処理の流れについて説明する。なお、実施のタイミングは、第１実施形態と同じである。また、トランザクション数取得部１０が測定して取得した、トランザクション数は１０００ＴＰＳであるとする。
【００５３】
まず、最小サーバ台数取得部２０は、サーバ数をサーバ台数（５台）としてセットする（ステップＳ２１）。次に、平均ＣＰＵ使用率取得部２３は、平均ＣＰＵ使用率を算出する（ステップＳ２２）。例えば、平均ＣＰＵ使用率取得部２３は、サーバ台数５台の平均ＣＰＵ使用率を４０％と算出する（図８参照）。
【００５４】
次に、最小サーバ台数取得部２０は、平均ＣＰＵ使用率が上限率以下か否か判定する（ステップＳ２３）。上限率は、予め負荷分散装置１００′の管理ユーザが設定しておく。この第２実施形態では、一例として、上限率を８０％として説明する。
【００５５】
ここで、サーバ５台の平均ＣＰＵ使用率が図８と異なる８５％の場合、平均ＣＰＵ使用率が上限率を超えるので（ステップＳ２３；Ｎｏ）、最小サーバ台数取得部２０は、最小サーバ台数＝サーバ台数（５台）にして（ステップＳ３０）、処理を終了する。全サーバで上限率を超えてしまう場合は、全サーバで対応せざるを得ないからである。この場合、全サーバ５台の最大ＴＰＳは、１０００ＴＰＳ（サーバ１台当たりで処理可能な処理数が２００ＴＰＳ）となる。
【００５６】
一方、サーバ５台の平均ＣＰＵ使用率が図８の４０％の場合、平均ＣＰＵ使用率が上限率以下なので（ステップＳ２３；Ｙｅｓ）、サーバ数を１台減らして（ステップＳ２４）、４台とする。次に、サーバ数（４台）＝０ではないので（ステップＳ２５；Ｎｏ）、平均ＣＰＵ使用率取得部２３は、４台での平均ＣＰＵ使用率を算出する（ステップＳ２６）。次に、最小サーバ台数取得部２０は、４台での平均ＣＰＵ使用率が上限率以下か否か判定する（ステップＳ２７）。
【００５７】
ここで、図８の例の場合、４台の平均ＣＰＵ使用率は５０％なので、平均ＣＰＵ使用率５０％は上限率８０％以下となり（ステップＳ２７；Ｙｅｓ）、ステップＳ２４に戻る。ステップＳ２４乃至Ｓ２７は、第１実施形態のステップＳ１４乃至Ｓ１７と対応する処理であり、平均ＣＰＵ使用率が上限率を超えるまで（ステップＳ２７；Ｎｏ）、サーバ台数を１台ずつ減らしながらその都度、平均ＣＰＵ使用率を算出して、算出した平均ＣＰＵ使用率が上限率以下か否か判定する。
【００５８】
図８の例の場合、サーバ台数１台の場合のＣＰＵ使用率が８５％となって、上限率８０％を超えるので（ステップＳ２７；Ｎｏ）、最小サーバ台数取得部２０は、最小サーバ台数＝サーバ数＋１にして（ステップＳ２８）、すなわち最小サーバ台数を２台にして処理を終了する。
この場合、最小サーバ台数が２台で測定したＴＰＳが１０００ＴＰＳなので、最大ＴＰＳは第１実施形態と同じ２５００ＴＰＳとなる。
【００５９】
一方、図８の例の場合と異なりサーバ台数１台の場合のＣＰＵ使用率が７５％の場合、上限率８０％を超えないので（ステップＳ２７；Ｙｅｓ）、ステップＳ２４に戻ってサーバ数＝０となり（ステップＳ２５；Ｙｅｓ）、最小サーバ台数取得部２０は、最小サーバ台数を１台にして（ステップＳ２９）、処理を終了する。
この場合、最小サーバ台数が１台で測定したＴＰＳが１０００ＴＰＳなので、最大ＴＰＳは第１実施形態と同じ５０００ＴＰＳとなる。
【００６０】
以上、図６乃至図８を参照しながら説明した第２実施形態においては、負荷分散装置１００′が平均ＣＰＵ使用率取得部２３の機能を備えることにより、許容往復時間に基づいて最小サーバ台数を求める手法に代えて平均ＣＰＵ使用率が上限率を超えるかに基づいて最小サーバ台数を求める。具体的には、負荷分散装置１００′は、平均ＣＰＵ使用率が所定の上限率を超えるサーバ台数を特定し、その特定したサーバ台数に１台サーバ台数を加算した台数を最小サーバ台数として、最大トランザクション数を求めることができる。
このため、第１実施形態と同様に最大の処理性能値を自動で求めることができることに加えて、平均ＣＰＵ使用率を用いるので許容往復時間を用いる場合と比較して、最小サーバ台数を求める際より高い確度で処理性能が限界に達したと判断することができる。
【００６１】
以上で各実施形態の説明を終了するが、負荷分散装置１００（１００′）の具体的な構成や処理の内容などが上述の各実施形態で説明したものに限られないことはもちろんである。
【００６２】
例えば、第１実施形態では、ｈｔｔｐリクエストなどの処理要求の往復時間に基づいて最小サーバ台数を求めるようにしたが、これに限られない。例えば、処理要求に代えてネットワーク疎通の確認で用いられるＰｉｎｇを使って最小サーバ台数を求めてもよい。
具体的には、負荷分散装置１００がＩＰ(Internet Protocol)パケットを発行し各サーバに送信してから返答を受信するまでの平均往復時間を用いるようにする。この際、第１実施形態と同様に、サーバ５台のときの平均往復時間を基準として、４台、３台、２台と順に１台ずつ台数を減らして平均往復時間を求めて最小サーバ台数を求めるようにする。これにより、負荷分散装置１００によるＰｉｎｇを用いたサーバの死活監視を流用して、最小サーバ台数を求めることができる。
【００６３】
また、第１実施形態の最小サーバ台数取得処理においては、処理要求に対して各サーバから応答処理があって往復時間を求めることができることを前提として説明したが、応答がなく往復時間を求めることができない場合もある。
このような場合、負荷分散装置１００に予めタイムアウトの時間を設定しておき、その時間以内に応答がなければ、最小サーバ台数取得処理を強制終了してもよい。あるいは、タイムアウトしなかった直前の台数（例えば、３台で応答があったものの２台で応答がないような場合は３台）を最小サーバ台数としてもよい。
【００６４】
また、第１及び第２実施形態では、所定の閾値（許容往復時間又は平均ＣＰＵ使用率の上限率）を用いて、最小サーバ台数を求めるようにしたが、これに限られない。例えば、各サーバが処理要求に対する応答処理を所定時間以内に処理できない場合、及び各サーバが自身でＣＰＵ使用率を測定して所定の上限率を超えた場合、エラーメッセージなどのアラートを負荷分散装置１００（１００′）に送信してもよい。これにより、負荷分散装置１００（１００′）は、所定の閾値を超えるか否かにより最小サーバ台数を求めるのに代えて、受信したエラーメッセージに基づいて最小サーバ台数を求めることができるので、処理負荷を軽減することができる。
【００６５】
また、第１及び第２実施形態では、サーバ１台でも許容往復時間又はＣＰＵ使用率の上限率を超えない場合は、サーバ１台を最小サーバ台数としたが（ステップＳ１９、Ｓ２９参照）、これに限られない。例えば、最小サーバ台数取得処理を開始したときのトランザクション数（ＴＰＳ）が非常に少ない場合、すなわち複数のクライアント２００からの処理要求数が非常に少ない場合も想定される。
このような場合において、最小サーバ台数を１台とすると、後でトランザクション数が増えた場合対処できない場合もあるので、最小サーバ台数を１台にすることに代えて（ステップＳ１９、Ｓ２９の処理に代えて）、トランザクション数が増えた段階で最小サーバ台数取得処理をリスタートさせてもよい。例えば、トランザクション数が所定数になったら、リスタートすることが考えられる。
【００６６】
また、第１及び第２実施形態において、最小サーバ台数取得処理は、負荷分散装置１００（１００′）を起動した直後や複数のサーバの運用を開始した後の所定時間毎（例えば、一週間に一回）などに実施されることとしたが、これに限られない。例えば、サーバ台数が増減したタイミングで最小サーバ台数取得処理を実施してもよい。これにより、システムのマイグレーションなどサーバ台数が変わったタイミングで最大処理性能値を求め直すことができる。
また、サーバ台数が増減したタイミングに限らず、サーバの入れ替えによりサーバの性能に変更があった場合やサーバのコンテンツが変更になった場合などにも、同様に最小サーバ台数取得処理を実施してもよい。
【００６７】
また、第１及び第２実施形態において、各サーバの消費電力は同じであることを前提として説明したが、これに限られない。例えば、各サーバの消費電力が異なることもある。この場合、負荷分散装置１００（１００′）は、予めサーバ１乃至５の消費電力を記憶しておき、負荷分散先のサーバを選択する場合には、消費電力が小さいサーバを優先的に選択するとよい。このことにより、休止サーバは必然的に消費電力が高いものとなるので、省電力化を高めることができる。
また、性能対電力比が大きいサーバを優先的に選択してもよい。性能対電力比は、例えば、サーバの性能を消費電力で除した値を示す。この場合、予めサーバ１乃至５の性能対電力比を記憶しておき、負荷分散先のサーバを選択する場合には、性能対電力比が小さいサーバを優先的に選択するとよい。
【００６８】
また、第１及び第２実施形態において、各サーバの性能は同じであることを前提として説明したが、これに限られない。例えば、各サーバの性能が異なることもある。この場合、負荷分散装置１００のサーバ選択部４０が選択したサーバが２台以上の場合、その選択したサーバの性能比に応じて複数のクライアント２００からの処理要求を振り分けるとよい。例えば、選択したサーバがサーバ１と２の場合、性能に応じた重み付けの比に従って処理要求をサーバ１と２に振り分けるとよい。これにより、サーバの性能を考慮して応答処理を行うことができる。
【００６９】
また、第１及び第２実施形態においては、負荷の指標となる測定値として、トランザクション数（ＴＰＳ）を例にとって説明したが、これに限られない。例えば、負荷の指標となる測定値として、複数のクライアント２００からの単位時間当たりの処理要求数を用いてもよい。この場合、負荷分散装置１００（１００′）は、例えば、毎秒当たりのｈｔｔｐリクエスト数を測定値として取得する。そして、負荷分散装置１００（１００′）は、求めた最小サーバ台数と、取得したｈｔｔｐリクエスト数と、に基づいて、複数のサーバが毎秒当たりにｈｔｔｐリクエストを応答処理可能な最大リクエスト数を処理性能値として求める。そして、求めた最大リクエスト数と、測定したリクエスト数の変動と、に基づいて、稼動させるサーバを選択すればよい。
【００７０】
また、第１及び第２実施形態においては、複数のサーバ全体での最大の処理性能値を負荷分散装置１００（１００′）が求める場合を例にとって説明したが、これに限られない。例えば、負荷分散装置１００（１００′）は、最大の処理性能値（例えば、最大トランザクション数など）を自装置の外部から取得してもよい。
具体的には、自装置の外部で最小サーバ台数を求め、求めた最小サーバ台数と測定した測定値（例えば、トランザクション数）とから予め処理性能値を求めておく。そして、負荷分散装置１００（１００′）は、予め自装置の外部で求めておいた処理性能値を、ネットワークなどを介して受信して記憶しておく。そして、負荷分散装置１００（１００′）は、外部から取得した処理性能値と測定値（例えば、トランザクション数）の変動とに基づいて、動的に負荷分散先のサーバを選択する。
これにより、負荷分散装置１００（１００′）は、自装置で処理性能値を求めるための機能（トランザクション数取得部１０、最小サーバ台数取得部２０、最大トランザクション数取得部３０）を備える必要がないので、処理負荷を抑えつつ、複数のサーバの省電力化を図ることができる。
【００７１】
（第３実施形態）
第１実施形態の説明では、急激なトランザクション（処理要求）の増加がないことを前提にして、サーバ選択部４０が複数のサーバの内の何台かにトランザクションを振り分けるかを決める説明をした。しかし、その振り分けた状態が、各サーバの処理性能値に近い場合に（処理マージンが無い場合）、さらに急激なトランザクションの増加があった場合には、応答処理が出来ないトランザクションが発生する。配分先のサーバを追加するためには所定の処理時間がかかるため、その処理時間内に取得した処理性能値を超えるトランザクションを処理できないからである。第３実施形態では、サーバ選択部４０が、急激なトランザクションの増加を考慮して振分先のサーバ台数を決定する技術について説明する。
【００７２】
また、第１実施形態の説明では、サーバ選択部４０が選択したサーバに対して、振分部５０が、取得したトランザクションをラウンドロビン方式に従って均等に振り分ける説明をした。一般的に、急激なトランザクションの増加時に応答処理が出来ない未処理トランザクション量を減らすためには、トランザクションを各サーバに均等配分したほうが未処理トランザクションを減らすことが出来る。一方、同一性能の複数のサーバに同一量のトランザクションを振り分ける場合、トランザクションを均等に振り分けるよりもサーバに重み付け係数を付与して振り分けた方が、つまり、処理負荷が軽いサーバが出来るようにトランザクションを振り分けた方が、全体の消費電力を下げることが出来る。サーバの処理能力にマージンを持って運用する場合でも、トランザクションの振分方法を考慮することによって全体の消費電力を削減することは好ましい。第３実施形態では、この重み付け係数を付与した振分技術についても説明する。
【００７３】
本実施形態では、理解を容易にするために、図１に示すシステム全体のサーバ台数をサーバ１からサーバ３の３台として説明する。各サーバの処理性能値は１０００ＴＰＳとする。
【００７４】
なお、第３実施形態において、負荷分散装置１００のハードウェア構成は、第１実施形態の負荷分散装置１００と同じである。また、負荷分散装置１００の機能構成についても、図３に示した構成と同じである。ただし、サーバ選択部４０と振分部５０は、以下に説明する機能を有する。
【００７５】
まず、サーバ選択部４０が、急激なトランザクション量の増加に対する処理マージンを持ったサーバ台数を選択する機能について説明する。サーバ選択部４０は、最大トランザクション数取得部３０（処理性値取得手段に対応する）で取得した処理性能値とトランザクション数取得部１０で取得したトランザクション量（測定値に対応する）との間に処理マージンが出来るように、クライアントからのトランザクション（要求処理）を応答処理するサーバを選択する。具体的には、トランザクション数取得部１０で取得したトランザクション量が、最大トランザクション数取得部３０で求めた最大トランザクション量の所定の割合になると、トランザクションを振り分けるサーバ台数を１台追加する。
【００７６】
本実施形態では、サーバの処理性能値の５０％を超えるトランザクションを取得した場合、サーバ選択部４０は、サーバの選択台数を１台追加する。図９に示す例では、サーバ１とサーバ２の２台で稼働している場合、サーバ１台の処理性能値は１０００ＴＰＳであるので、サーバ選択部４０は、トランザクション量が２０００ＴＰＳの５０％である１０００ＴＰＳを超えると振分先のサーバ台数を３台にする。
【００７７】
次に、振分部５０が、トランザクションの振分先のサーバに重み付け係数を付与し、その重み付け係数に基づいてトランザクションを振り分ける機能について説明する。重み付け係数の付与方法は他のサーバに対して処理負荷が軽いサーバが出来るように付与する。本実施形態では、トランザクション量（測定値に対応する）に応じて５段階に重み付け係数を動的に変化させて付与する。具体的には、トランザクション量が少ないほど付与する重み付け係数の比を大きくし、処理負荷が軽いサーバが出来るように重み付け係数を付与する。そして、トランザクション量の増加に伴い、重み付け係数が次第に等しくなるように動的に変化させる。急激なトランザクションの増加に対する各サーバのマージンを大きくすることと、後述するサーバ全体の消費電力の削減との調和を図るためである。
【００７８】
図９に示す例では、振分部５０は、トランザクション量が、最大トランザクション数取得部３０で求めたサーバ１台の処理性能値の１０％未満の場合は、トランザクション量の１０％をサーバ２に振り分け、残りのトランザクションをサーバ１に振り分ける。つまり、サーバ１とサーバ２へのトランザクション量の振分比を（９：１）とする。振分部５０は、トランザクション量が最大トランザクション数の１０％以上で２０％未満の場合は、トランザクション量の２０％をサーバ２に振り分け、残りのトランザクションをサーバ１に振り分ける。つまり、サーバ１とサーバ２へのトランザクション量の振分比を（８：２）とする。以下同様に、振分部５０は、トランザクション量に応じて、サーバ１とサーバ２へのトランザクション量の振分比を（７：３）（６：４）（５：５）と動的に変化させて設定する。このように、トランザクション量（測定値に対応する）の上昇に伴って、各サーバに付与する振分比（重み付け係数の比）が次第に等しくなるようにする。
【００７９】
トランザクション量が１０００ＴＰＳを超えると、サーバ選択部４０は、サーバ１、サーバ２、サーバ３の３台を振分先のサーバとして選択する。この場合、先に稼働している２台のサーバ処理量（５０％負荷で稼働させるので、５００ＴＰＳ×２台＝１０００ＴＰＳ）を取得したトランザクション量から引く。そして、その残トランザクション量がサーバ３の処理性能値の０から１０％に該当する場合、３台目のサーバ３にトランザクション量の１０％を配分し、残りのトランザクションをサーバ１とサーバ２に均等配分する。残トランザクション量がサーバ３の処理性能値の１０％以上で２０％未満の場合、３台目のサーバ３にトランザクション量の２０％を配分し、残りのトランザクションをサーバ１とサーバ２に均等配分する。以下同様に、トランザクション量に応じて重み付け係数を図９に示すように付与する。
【００８０】
本実施形態における重み付け係数（Ｘ：Ｘ：Ｓ）の付与方法を数式化すると、下記となる。パラメータＳは、サーバ１台の処理性能値に対するトランザクション量で決まるパラメータであり、１から５の自然数である。上述したように、１０％未満の場合はＳ＝１、１０％以上で２０％以下の場合はＳ＝２である。
Ｘ＝（５Ｎ−Ｓ）／（Ｎ−１）              ・・・式（１）
Ｓ：５段階のパラメータ
Ｎ：サーバ選択部４０が選択したサーバ台数
例えば、Ｎ＝２の場合、サーバ１とサーバ２の振分比は、トランザクション量によって、（９：１）（８：２）（７：３）（６：４）（５：５）と変化する。
【００８１】
サーバに重み付け係数を付与してその重み付け係数に応じてトランザクションを振り分ける理由は、サーバ全体の消費電力を削減するためである。サーバは、サーバの負荷率が高いほど、ＣＰＵのクロック周波数を上げて処理能力を向上させるので、サーバの負荷率が高いほど消費電力が上昇する場合が多い。そのため、サーバの負荷率と消費電力との関係は、図１０（ａ）に示すグラフのように、サーバの負荷率が軽いほど消費電力が低下する傾向がある。また、所定の負荷率（例えば、５０％程度）になると、ベストエフォートで動作する領域となるので、それ以上処理負荷が重くなると消費電力の上昇率は緩やかになる傾向にある。図１０（ｂ）は、（Ｘ：Ｓ）の振分比で、同一量のトランザクションを２台のサーバに振り分けた場合の、振分比によるサーバ全体の消費電力の差を示す例である。図１０（ｂ）の「消費電力指数」の欄は、サーバの負荷率が５０％時のサーバの消費電力を１００とした場合の、サーバ負荷率ごとの消費電力の相対指数の例である。図１０（ｂ）の「消費電力指数の合計」の欄に示すように、同一量のトランザクションを２台のサーバに振り分ける場合、処理負荷が重いサーバと処理負荷が軽いサーバが出来るようにトランザクションの振分比を偏らせたほうが、サーバ全体の消費電力は低下する。同一量のトランザクションを３台以上のサーバに振り分ける場合も、追加稼働させたサーバの処理負荷を軽くすることにより、トランザクションを均等に振り分けた場合よりも、サーバ全体の消費電力を下げることが出来る。
【００８２】
例えば、３００ＴＰＳで動作しているときに、トランザクション量が１２００ＴＰＳに急激に増加した場合、サーバ１の１台のみで稼働していた場合、２００ＴＰＳのトランザクションが未処理になってしまう。しかし、図９に示すようにサーバ１とサーバ２に（８：２）にトランザクションを振り分けて２台で稼働すると、サーバ１には９６０ＴＰＳ、サーバ２には２４０ＴＰＳのトランザクションが振り分けられ、未処理のトランザクションは発生しない。さらに、上述したように、トランザクションを均等配分した場合に比べて、サーバ全体の消費電力を低減することができる。
【００８３】
なお、第３実施形態で説明したマージンの設け方は、上述した方法には限定されることはない。例えば、サーバの処理性能値の６０％とか７０％を閾値としてサーバを追加するようにしてもよい。サーバの処理性能値には、第１実施形態で説明した平均往復時間を使用してもよいし、第２実施形態で説明した平均ＣＰＵ使用率を使用してもよい。また、所定のトランザクション量をマージンとして確保するように、サーバ選択部４０が振分先サーバの台数を選択してもよい。
【００８４】
また、第３実施形態で説明した重み付け係数の付与方法は、第３実施形態で説明した例に限定されることはない。サーバ全体の消費電力が下がるようにトランザクションの振分比を決めるように重み付け係数を付与すればよく、トランザクション量に比例した配分に限定することも、自然数の比に限定する必要もない。
【００８５】
なお、以上の説明では、測定した基準往復時間から許容往復時間を決定する説明をしたが、許容往復時間を予め決められた要求仕様として外部から取得して、フラッシュＲＯＭ１０２もしくはＲＡＭ１０３に記憶しておいてもよい。
【００８６】
また、この発明の負荷分散装置１００は、通常のＰＣ等のコンピュータによっても実現することができる。
具体的には、上記各実施形態では、負荷分散装置１００のプログラムが、フラッシュＲＯＭ１０２に予め記憶されているものとして説明した。しかし、フラッシュＲＯＭ１０２のプログラムをコンピュータにインストールして、上述の各部機能を実行することができるコンピュータを構成してもよい。なお、プログラムは、フラッシュＲＯＭ１０２に限らず、その他のコンピュータ読み取り可能な記録媒体（例えば、フレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc-Read Only Memory)、ＤＶＤ(Digital Versatile Disk)及びＭＯディスク(Magneto Optical Disc)等）に格納してコンピュータに配布してもよいことはもちろんである。
【００８７】
また、プログラムをインターネット等の通信ネットワーク上のサーバ装置が有するディスク装置等に格納しておき、例えば、コンピュータにダウンロード等するようにしてもよい。さらに、通信ネットワークを介してプログラムを転送しながら起動実行することによっても、上述の負荷分散装置１００の処理を達成することができる。
【符号の説明】
【００８８】
１乃至５  サーバ
１０  トランザクション数取得部
２０  最小サーバ台数取得部
２１  基準往復時間取得部
２２  平均往復時間取得部
２３  平均ＣＰＵ使用率取得部
３０  最大トランザクション数取得部
４０  サーバ選択部
５０  振分部
１００（１００′）  負荷分散装置
１０１  ＣＰＵ
１０２  フラッシュＲＯＭ
１０３  ＲＡＭ
１０４  ネットワークＩ／Ｆ
２１０、２２０、２３０  クライアント
【図１】
0006543090.tif 000002
【図２】
0006543090.tif 000003
【図３】
0006543090.tif 000004
【図４】
0006543090.tif 000005
【図５】
0006543090.tif 000006
【図６】
0006543090.tif 000007
【図７】
0006543090.tif 000008
【図８】
0006543090.tif 000009
【図９】
0006543090.tif 000010
【図１０】
0006543090.tif 000011