(57)【要約】【課題】複数のサーバの省電力化を図る。【解決手段】負荷分散装置１００の測定部１５０は、クライアントと複数のサーバとの間の通信量を示す通信値を測定する。閾値テーブル生成部１４０は、複数のサーバにおける休止サーバと稼働サーバとの組合せのパターン毎に、稼働サーバの性能値の合計である性能閾値とその稼働サーバの重み付け値とを対応付けた閾値テーブルを生成する。パターン特定部１６０は、現在設定されているパターンの性能閾値を、閾値テーブルを参照して特定し、その特定した性能閾値と測定した通信値とを比較し、性能閾値が通信値よりも小さい場合、その通信値よりも大きい性能閾値のパターンを閾値テーブルを参照して特定する。負荷分散制御部１７０は、現在設定されているパターンを特定したパターンに更新し、その更新したパターンの重み付け値の比率に従って、クライアントからのリクエストを更新したパターンの稼働サーバに振り分ける。【選択図】図３
2014109886.tif 000002
【特許請求の範囲】
【請求項１】
クライアントと複数のサーバとにネットワークを介して接続される負荷分散装置であって、
前記複数のサーバ全体で処理可能な処理量を示す全体性能値を記憶する全体性能値記憶手段と、
前記複数のサーバそれぞれの性能に応じた重み付け値を記憶する重み付け値記憶手段と、
前記全体性能値と前記サーバ毎の重み付け値とに基づいて、各サーバの性能を示す性能値を求める性能値取得手段と、
前記複数のサーバにおける休止サーバと稼働サーバとの組合せのパターン毎に、前記稼働サーバの性能値の合計である性能閾値と該稼働サーバの重み付け値とを記憶するパターン記憶手段と、
前記組合せのパターンのうち、予め設定されたパターンの稼働サーバの重み付け値を、前記パターン記憶手段が記憶しているパターン毎の稼働サーバの重み付け値を参照して特定し、その特定した稼働サーバの重み付け値の比率に従って、前記クライアントからのリクエストを前記予め設定されたパターンの稼働サーバに振り分ける負荷分散処理を行う負荷分散手段と、
前記クライアントと前記複数のサーバとの間の通信量を示す通信値を測定する測定手段と、
現在設定されているパターンの性能閾値を、前記パターン記憶手段が記憶しているパターン毎の性能閾値を参照して特定し、その特定した性能閾値と前記測定手段により測定した通信値とを比較し、前記性能閾値が前記通信値よりも小さい場合、その通信値よりも大きい性能閾値のパターンを前記組合せのパターンの中から特定する特定処理を行う特定手段と、を備え、
前記負荷分散手段は、前記現在設定されているパターンを前記特定手段により特定したパターンに更新することを特徴とする負荷分散装置。
【請求項２】
前記特定手段は、
前記通信値よりも大きい性能閾値のパターンの中で、最小の性能閾値のパターンを前記組合せのパターンの中から特定することを特徴とする請求項１に記載の負荷分散装置。
【請求項３】
前記特定手段は、
前記最小の性能閾値のパターンが複数ある場合、休止サーバの台数が多いパターンを前記組合せのパターンの中から特定することを特徴とする請求項２に記載の負荷分散装置。
【請求項４】
前記複数のサーバの平均ＣＰＵ使用率を取得するＣＰＵ使用率取得手段と、
前記組合せのパターンのうち少なくとも１つの所定のパターンについて、その所定のパターンと、その所定のパターンの稼働サーバの性能閾値と、その性能閾値における稼働サーバの基準平均ＣＰＵ使用率と、所定の閾値と、を対応付けて記憶する基準平均ＣＰＵ使用率記憶手段と、
前記測定手段により測定された通信値が、前記所定のパターンの稼働サーバの性能閾値になった場合、前記ＣＰＵ使用率取得手段より取得した平均ＣＰＵ使用率と前記所定のパターンと対応する基準平均ＣＰＵ使用率との差の絶対値が、前記所定のパターンと対応する所定の閾値以上か否か判断する判断手段と、
該判断手段により、前記差の絶対値が、前記所定の閾値以上であると判断すると、前記差の絶対値の大きさに応じて、前記所定のパターンの稼働サーバの性能閾値を補正する補正手段と、を備えたことを特徴とする請求項１乃至３の何れか一項に記載の負荷分散装置。
【請求項５】
前記複数のサーバの平均ＣＰＵ使用率を取得するＣＰＵ使用率取得手段と、
前記平均ＣＰＵ使用率の上限値であるＣＰＵ使用率上限値を記憶する上限値記憶手段と、
前記ＣＰＵ使用率取得手段により取得した前記平均ＣＰＵ使用率が前記ＣＰＵ使用率上限値以上の場合、前記現在設定されているパターンの稼働サーバの台数よりも稼働サーバ台数が多いパターンを特定し、その特定したパターンに更新する更新処理を行う更新手段と、を備え、
該更新手段は、前記更新処理を、前記平均ＣＰＵ使用率が前記ＣＰＵ使用率上限値よりも小さくなるまで繰り返すことを特徴とする請求項１乃至３の何れか一項に記載の負荷分散装置。
【請求項６】
前記ＣＰＵ使用率取得手段により取得した前記平均ＣＰＵ使用率が前記ＣＰＵ使用率上限値より小さい場合、前記負荷分散手段による前記負荷分散処理と、前記特定手段による前記特定処理と、を行うことを特徴とする請求項５に記載の負荷分散装置。
【請求項７】
複数のサーバ全体で処理可能な処理量を示す全体性能値と前記複数のサーバそれぞれの性能に応じた重み付け値とに基づいて、前記複数のサーバそれぞれの性能を示す性能値を求める性能値取得ステップと、
クライアントと前記複数のサーバとの間の通信量を示す通信値を測定する測定ステップと、
前記複数のサーバにおける休止サーバと稼働サーバとの組合せのパターンの中で現在設定されているパターンの稼働サーバの性能値の合計である性能閾値と、前記測定した通信値と、を比較し、前記性能閾値が前記通信値よりも小さい場合、その通信値よりも大きい性能閾値のパターンを前記組合せのパターンの中から特定する特定ステップと、
前記現在設定されているパターンを前記特定したパターンに更新して、その更新したパターンの稼働サーバの重み付け値の比率に従って、前記クライアントからのリクエストを前記更新したパターンの稼働サーバに振り分けて負荷分散を行う負荷分散ステップと、を備えたことを特徴とする負荷分散方法。
【請求項８】
クライアントと複数のサーバとにネットワークを介して接続されるコンピュータを、
前記複数のサーバ全体で処理可能な処理量を示す全体性能値を記憶する全体性能値記憶手段、
前記複数のサーバそれぞれの性能に応じた重み付け値を記憶する重み付け値記憶手段、
前記全体性能値と前記サーバ毎の重み付け値とに基づいて、各サーバの性能を示す性能値を求める性能値取得手段、
前記複数のサーバにおける休止サーバと稼働サーバとの組合せのパターン毎に、前記稼働サーバの性能値の合計である性能閾値と該稼働サーバの重み付け値とを記憶するパターン記憶手段、
前記組合せのパターンのうち、予め設定されたパターンの稼働サーバの重み付け値を、前記パターン記憶手段が記憶しているパターン毎の稼働サーバの重み付け値を参照して特定し、その特定した稼働サーバの重み付け値の比率に従って、前記クライアントからのリクエストを前記予め設定されたパターンの稼働サーバに振り分ける負荷分散処理を行う負荷分散手段、
前記クライアントと前記複数のサーバとの間の通信量を示す通信値を測定する測定手段、
現在設定されているパターンの性能閾値を、前記パターン記憶手段が記憶しているパターン毎の性能閾値を参照して特定し、その特定した性能閾値と前記測定手段により測定した通信値とを比較し、前記性能閾値が前記通信値よりも小さい場合、その通信値よりも大きい性能閾値のパターンを前記組合せのパターンの中から特定する特定処理を行う特定手段、として機能させ、
前記負荷分散手段は、前記現在設定されているパターンを前記特定手段により特定したパターンに更新することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、クライアントと複数のサーバとにネットワークを介して接続される負荷分散装置、負荷分散方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、クライアントからのリクエストを、設定された負荷分散方式に基づいてサーバに振り分ける負荷分散装置が広く用いられている。
負荷分散方式としては、例えば、各サーバに順番にリクエストを振り分けるラウンドロビン方式及びコネクション数が最小のサーバにリクエストを振り分ける最小コネクション方式などが知られている。
【０００３】
また、各サーバに、予め設定された重み付け値の比率でリクエストを順番に振り分ける重み付けラウンドロビン方式も知られている。例えば、２台のウェブサーバのうち、一方の処理性能の高いウェブサーバに対して重み付け値を２にして、他方の旧型のウェブサーバに対して重み付け値を１にして、それぞれ負荷分散装置に設定する。そして、その負荷分散装置は、処理性能の高いウェブサーバに対して、旧型のウェブサーバの２倍のリクエストを振り分ける。
この重み付けに関連して、特許文献１では、パケットの優先度に応じて重み付けを行い、その重み付けにより定まる順序でパケットを送信する重み付けラウンドロビン制御方式が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１０／１０１００２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載の重み付けラウンドロビン制御方式では、パケットを各サーバに送信するため、全てのサーバを稼動しておく必要があり、各サーバの消費電力が高くなるという問題があった。
【０００６】
そこで、この発明は、上記問題に鑑みてなされたものであって、ネットワークに接続された複数のサーバの省電力化を図ることが可能な負荷分散装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、この発明の第１の観点に係る負荷分散装置は、
クライアントと複数のサーバとにネットワークを介して接続される負荷分散装置であって、
前記複数のサーバ全体で処理可能な処理量を示す全体性能値を記憶する全体性能値記憶手段と、
前記複数のサーバそれぞれの性能に応じた重み付け値を記憶する重み付け値記憶手段と、
前記全体性能値と前記サーバ毎の重み付け値とに基づいて、各サーバの性能を示す性能値を求める性能値取得手段と、
前記複数のサーバにおける休止サーバと稼働サーバとの組合せのパターン毎に、前記稼働サーバの性能値の合計である性能閾値と該稼働サーバの重み付け値とを記憶するパターン記憶手段と、
前記組合せのパターンのうち、予め設定されたパターンの稼働サーバの重み付け値を、前記パターン記憶手段が記憶しているパターン毎の稼働サーバの重み付け値を参照して特定し、その特定した稼働サーバの重み付け値の比率に従って、前記クライアントからのリクエストを前記予め設定されたパターンの稼働サーバに振り分ける負荷分散処理を行う負荷分散手段と、
前記クライアントと前記複数のサーバとの間の通信量を示す通信値を測定する測定手段と、
現在設定されているパターンの性能閾値を、前記パターン記憶手段が記憶しているパターン毎の性能閾値を参照して特定し、その特定した性能閾値と前記測定手段により測定した通信値とを比較し、前記性能閾値が前記通信値よりも小さい場合、その通信値よりも大きい性能閾値のパターンを前記組合せのパターンの中から特定する特定処理を行う特定手段と、を備え、
前記負荷分散手段は、前記現在設定されているパターンを前記特定手段により特定したパターンに更新することを特徴とする。
【０００８】
また、前記特定手段は、前記通信値よりも大きい性能閾値のパターンの中で、最小の性能閾値のパターンを前記組合せのパターンの中から特定することが望ましい。
【０００９】
また、前記特定手段は、前記最小の性能閾値のパターンが複数ある場合、休止サーバの台数が多いパターンを前記組合せのパターンの中から特定することが望ましい。
【００１０】
また、第１の観点に係る負荷分散装置は、
前記複数のサーバの平均ＣＰＵ使用率を取得するＣＰＵ使用率取得手段と、
前記組合せのパターンのうち少なくとも１つの所定のパターンについて、その所定のパターンと、その所定のパターンの稼働サーバの性能閾値と、その性能閾値における稼働サーバの基準平均ＣＰＵ使用率と、所定の閾値と、を対応付けて記憶する基準平均ＣＰＵ使用率記憶手段と、
前記測定手段により測定された通信値が、前記所定のパターンの稼働サーバの性能閾値になった場合、前記ＣＰＵ使用率取得手段より取得した平均ＣＰＵ使用率と前記所定のパターンと対応する基準平均ＣＰＵ使用率との差の絶対値が、前記所定のパターンと対応する所定の閾値以上か否か判断する判断手段と、
該判断手段により、前記差の絶対値が、前記所定の閾値以上であると判断すると、前記差の絶対値の大きさに応じて、前記所定のパターンの稼働サーバの性能閾値を補正する補正手段と、を備えるのが望ましい。
【００１１】
また、第１の観点に係る負荷分散装置は、
前記複数のサーバの平均ＣＰＵ使用率を取得するＣＰＵ使用率取得手段と、
前記平均ＣＰＵ使用率の上限値であるＣＰＵ使用率上限値を記憶する上限値記憶手段と、
前記ＣＰＵ使用率取得手段により取得した前記平均ＣＰＵ使用率が前記ＣＰＵ使用率上限値以上の場合、前記現在設定されているパターンの稼働サーバの台数よりも稼働サーバ台数が多いパターンを特定し、その特定したパターンに更新する更新処理を行う更新手段と、を備え、
該更新手段は、前記更新処理を、前記平均ＣＰＵ使用率が前記ＣＰＵ使用率上限値よりも小さくなるまで繰り返すことが望ましい。
【００１２】
また、前記ＣＰＵ使用率取得手段により取得した前記平均ＣＰＵ使用率が前記ＣＰＵ使用率上限値より小さい場合、前記負荷分散手段による前記負荷分散処理と、前記特定手段による前記特定処理と、を行うことが望ましい。
【００１３】
上記目的を達成するため、この発明の第２の観点に係る負荷分散方法は、
複数のサーバ全体で処理可能な処理量を示す全体性能値と前記複数のサーバそれぞれの性能に応じた重み付け値とに基づいて、前記複数のサーバそれぞれの性能を示す性能値を求める性能値取得ステップと、
クライアントと前記複数のサーバとの間の通信量を示す通信値を測定する測定ステップと、
前記複数のサーバにおける休止サーバと稼働サーバとの組合せのパターンの中で現在設定されているパターンの稼働サーバの性能値の合計である性能閾値と、前記測定した通信値と、を比較し、前記性能閾値が前記通信値よりも小さい場合、その通信値よりも大きい性能閾値のパターンを前記組合せのパターンの中から特定する特定ステップと、
前記現在設定されているパターンを前記特定したパターンに更新して、その更新したパターンの稼働サーバの重み付け値の比率に従って、前記クライアントからのリクエストを前記更新したパターンの稼働サーバに振り分けて負荷分散を行う負荷分散ステップと、を備えたことを特徴とする。
【００１４】
上記目的を達成するため、この発明の第３の観点に係るプログラムは、
クライアントと複数のサーバとにネットワークを介して接続されるコンピュータを、
前記複数のサーバ全体で処理可能な処理量を示す全体性能値を記憶する全体性能値記憶手段、
前記複数のサーバそれぞれの性能に応じた重み付け値を記憶する重み付け値記憶手段、
前記全体性能値と前記サーバ毎の重み付け値とに基づいて、各サーバの性能を示す性能値を求める性能値取得手段、
前記複数のサーバにおける休止サーバと稼働サーバとの組合せのパターン毎に、前記稼働サーバの性能値の合計である性能閾値と該稼働サーバの重み付け値とを記憶するパターン記憶手段、
前記組合せのパターンのうち、予め設定されたパターンの稼働サーバの重み付け値を、前記パターン記憶手段が記憶しているパターン毎の稼働サーバの重み付け値を参照して特定し、その特定した稼働サーバの重み付け値の比率に従って、前記クライアントからのリクエストを前記予め設定されたパターンの稼働サーバに振り分ける負荷分散処理を行う負荷分散手段、
前記クライアントと前記複数のサーバとの間の通信量を示す通信値を測定する測定手段、
現在設定されているパターンの性能閾値を、前記パターン記憶手段が記憶しているパターン毎の性能閾値を参照して特定し、その特定した性能閾値と前記測定手段により測定した通信値とを比較し、前記性能閾値が前記通信値よりも小さい場合、その通信値よりも大きい性能閾値のパターンを前記組合せのパターンの中から特定する特定処理を行う特定手段、として機能させ、
前記負荷分散手段は、前記現在設定されているパターンを前記特定手段により特定したパターンに更新することを特徴とする。
【発明の効果】
【００１５】
この発明によれば、ネットワークに接続された複数のサーバの省電力化を図ることができる。
【図面の簡単な説明】
【００１６】
【図１】この発明の第１実施形態に係るサーバクライアントシステムの構成を概略的に示す図である。
【図２】図１に示した負荷分散装置のハードウェア構成を示すブロック図である。
【図３】図１に示した負荷分散装置の機能ブロック図である。
【図４】各サーバの重み付け値を示す重み付けテーブルの一例を示す図である。
【図５】各サーバの性能値を示す性能テーブルの一例を示す図である。
【図６】閾値テーブルの一例を示す図である。
【図７】第１実施形態に係る第１の負荷分散処理の流れの一例を示すフローチャートである。
【図８】第２実施形態に係る負荷分散装置の機能ブロック図である。
【図９】ＣＰＵ使用率テーブルの一例を示す図である。
【図１０】第２実施形態に係る第２の負荷分散処理の流れの一例を示すフローチャートである。
【図１１】補正閾値テーブルの一例を示す図である。
【図１２】ＣＰＵ使用率と消費電力の関係の一例を示す図である。
【図１３】ＣＰＵ使用率と消費電力の関係の別例を示す図である。
【図１４】第３実施形態に係る負荷分散装置の機能ブロック図である。
【図１５】第３実施形態に係る第３の負荷分散処理の流れの一例を示すフローチャートである。
【図１６】高負荷時の切り替え用重み付け値のテーブルの一例を示す図である。
【図１７】低負荷時の切り替え用重み付け値のテーブルの一例を示す図である。
【発明を実施するための形態】
【００１７】
（第１実施形態）
以下、この発明の第１実施形態を図面に基づいて説明する。
図１に示すように、サーバクライアントシステムは、負荷分散装置１００と、サーバ２００、２１０及び２２０と、複数のクライアント３００と、管理クライアント４００と、を備える。
なお、複数のクライアント３００それぞれのハードウェア構成及び機能は同じである。
【００１８】
負荷分散装置１００は、ネットワークを介して送信される複数のクライアント３００からのリクエストを、各サーバに振り分ける装置である。この負荷分散装置１００の負荷分散処理については後述する。なお、ネットワークとしては、ＬＡＮ（ローカルエリアネットワーク）又はインターネットなど有線無線を問わず任意の通信経路を採用可能である。
【００１９】
サーバ２００、２１０及び２２０は、複数のクライアント３００からのリクエストに応じて、ＨＴＭＬ文書や画像などのデータを提供するウェブサーバである。この実施形態において、サーバ２００、２１０及び２２０の性能は、それぞれ異なるものとする。また、サーバ２００、２１０及び２２０それぞれを特段特定する必要がない場合には、代表してサーバ２００により以下説明する。
【００２０】
複数のクライアント３００はそれぞれ、キーボード又はマウスなどからユーザの入力操作を受け付けてリクエストを送信するＰＣ（パーソナルコンピュータ）である。そして、複数のクライアント３００はそれぞれ、リクエストの応答としてサーバ２００から提供されるデータに基づいて、ディスプレイなどの表示手段にＨＴＭＬ文書や画像などを表示する。ここで、リクエストとしては、例えば、セッションの接続リクエスト及びｈｔｔｐリクエストなどがある。
【００２１】
管理クライアント４００は、負荷分散装置１００に後述するパラメータを送信するためのＰＣである。パラメータの入力は、負荷分散装置１００を管理する管理ユーザが、管理クライアント４００のキーボート等から行う。具体的に管理ユーザは、管理クライアント４００のウェブブラウザ又はＴｅｌｎｅｔなどを用いてパラメータを送信する。
【００２２】
次に、図２を参照しながら、負荷分散装置１００のハードウェア構成について説明する。図２に示すように、負荷分散装置１００は、ＣＰＵ１０１とフラッシュＲＯＭ１０２とＲＡＭ１０３とネットワークＩ／Ｆ１０４と、を備える。
このうち、ＣＰＵ１０１は、負荷分散装置１００全体を制御する中央演算装置である。
フラッシュＲＯＭ１０２は、ＣＰＵ１０１が実行するプログラムを格納している不揮発性メモリである。
【００２３】
ＲＡＭ１０３は、ＣＰＵ１０１が実行するプログラムを一時的に展開し、ＣＰＵ１０１が各種処理を行う際の作業領域として使用する記憶手段である。
ＲＡＭ１０３は、各種データを記憶する。各種データとしては、例えば、後述する重み付けテーブル、性能テーブル及び閾値テーブルなどである。
ネットワークＩ／Ｆ１０４は、この負荷分散装置１００が、サーバ２００、複数のクライアント３００及び管理クライアント４００とネットワークを介して通信を行うためのインタフェースである。
【００２４】
ここで、ＣＰＵ１０１は、フラッシュＲＯＭ１０２内の各種プログラムを読み出し、ＲＡＭ１０３に展開した後、その各種プログラムに従って負荷分散装置１００を制御することで、図３に示すような各部の機能を発揮することができる。機能としては、図３に示すように、全体性能値受付部１１０、重み付け値受付部１２０、サーバ性能値取得部１３０、閾値テーブル生成部１４０、測定部１５０、パターン特定部１６０及び負荷分散制御部１７０を備える。なお、各部の機能の実行主体はＣＰＵ１０１であるが、説明の便宜上、各部の機能を実行主体として説明する。
【００２５】
まず、全体性能値受付部１１０は、サーバ２００、２１０及び２２０全体で処理可能な処理量を示す全体性能値を受け付ける手段である。
具体的には、全体性能値受付部１１０は、ネットワークＩ／Ｆ１０４を介して、管理クライアント４００より送信された全体性能値のパラメータを受け付けて、ＲＡＭ１０３に記憶する。ここで、全体性能値とは、例えば、サーバ２００、２１０及び２２０全体で処理可能な毎秒あたりのセッション数（セッション／秒）及び毎秒あたりのパケット数（パケット／秒）などである。
【００２６】
この実施形態では、一例として、管理ユーザが管理クライアント４００にサーバ２００、２１０及び２２０の全体性能値として６０万セッション／秒のパラメータを入力したものとする。すると、全体性能値受付部１１０は、管理クライアント４００よりネットワークを介して送信される全体性能値のパラメータである６０万セッション／秒を受け付けて、ＲＡＭ１０３に記憶する。
【００２７】
次に、重み付け値受付部１２０は、サーバ２００、２１０及び２２０それぞれの性能に応じた重み付け値を受け付ける手段である。
具体的には、重み付け値受付部１２０は、ネットワークＩ／Ｆ１０４を介して、管理クライアント４００より送信された重み付け値のパラメータを受け付けて、ＲＡＭ１０３に記憶する。重み付け値のパラメータは、管理クライアント４００の管理ユーザが、サーバ２００、２１０及び２２０の性能に応じて入力する。この実施形態では、一例として、管理ユーザが管理クライアント４００にサーバ２００、２１０及び２２０それぞれの重み付け値として２、３及び１のパラメータを入力したものとする。すると、重み付け値受付部１２０は、上記パラメータを受け付けて、図４に示すような重み付けテーブルを生成し、ＲＡＭ１０３に記憶する。
【００２８】
次に、サーバ性能値取得部１３０は、全体性能値と、サーバ２００、２１０及び２２０それぞれの重み付け値とに基づいて、サーバ２００、２１０及び２２０それぞれの性能を示す性能値を求める性能値取得手段である。
具体的には、サーバ性能値取得部１３０は、まずＲＡＭ１０３に記憶された重み付けテーブルのサーバ２００、２１０及び２２０それぞれの重み付け値が、全体の重み付け値に占める割合を算出する。ここで、例えば、サーバ２００の重み付け値の全体に占める割合は、２（サーバ２００の重み付け値）／６（重み付け値の合計値）となる。次に、サーバ性能値取得部１３０は、ＲＡＭ１０３に記憶された最大性能値である６０万セッション／秒と、２（サーバ２００の重み付け値）／６（重み付け値の合計値）とを乗算することにより、サーバ２００の性能値である２０万セッション／秒を求める。サーバ性能値取得部１３０は、同様にサーバ２１０及び２２０についても、性能値を３０万セッション／秒と１０万セッション／秒とそれぞれ求める。これら各性能値は、各サーバが毎秒あたりに維持できる最大のセッション数を示している。
【００２９】
そして、サーバ性能値取得部１３０は、求めた各サーバの性能値を、サーバ稼動状態に対応付けて、図５に示す性能テーブルを生成し、ＲＡＭ１０３に記憶する。このサーバ稼動状態には、省電力状態である休止サーバを含む。なお、休止サーバを除く、残りのサーバを稼動サーバと称して以下説明する。例えば、図５の性能テーブルのサーバ稼働状態のうち、サーバ２００休止の場合、稼動サーバはサーバ２１０及び２２０である。また、サーバ２１０及び２２０休止の場合、稼動サーバはサーバ２００である。
【００３０】
次に、閾値テーブル生成部１４０は、サーバ２００、２１０及び２２０における休止サーバと稼働サーバの組合せのパターン毎に、稼働サーバの性能値の合計である性能閾値と、その稼働サーバの重み付け値とを対応付けた閾値テーブルを生成する手段である。
具体的には、閾値テーブル生成部１４０は、まず図５の性能テーブルを参照し、サーバ稼動状態と対応する各サーバの性能値を合計して、性能閾値であるセッション閾値をそれぞれ算出する。そして、閾値テーブル生成部１４０は、図６に示すように、サーバ稼動状態の組合せパターン毎に、稼動サーバのセッション閾値と、稼動サーバの重み付け値と、を対応付けた閾値テーブルを生成し、ＲＡＭ１０３に記憶する。
【００３１】
なお、この閾値テーブルにおいて、重み付け値「０」のサーバは、負荷分散装置１００の負荷分散の対象外の休止サーバであり、負荷分散装置１００が複数のクライアント３００からのリクエストを振り分けることはない。
【００３２】
図３に戻って、測定部１５０は、複数のクライアント３００とサーバ２００、２１０及び２２０との間の通信量を示す通信値を測定する測定手段である。
具体的には、測定部１５０は、サーバ２００、サーバ２１０及び２２０と複数のクライアント３００との間の通信量を示すセッション数を毎秒カウントする。
【００３３】
パターン特定部１６０は、現在設定されているパターンの性能閾値を、ＲＡＭ１０３が記憶している閾値テーブルを参照して特定し、その特定した性能閾値と測定部１５０により測定した通信値とを比較し、性能閾値が通信値よりも小さい場合、その通信値よりも大きい性能閾値のパターンを、閾値テーブルを参照して特定する特定手段である。
具体的には、パターン特定部１６０は、現在設定されているパターンのセッション閾値を、閾値テーブルを参照して特定し、その特定したセッション閾値と測定部１５０によりカウントしたセッション数とを比較し、セッション閾値がカウントしたセッション数よりも小さい場合、そのカウントしたセッション数よりも大きいセッション閾値のパターンの中で、最小の性能閾値のパターンを、閾値テーブルを参照して特定する。
【００３４】
次に、負荷分散制御部１７０は、パターン１乃至７のうち、予め設定されたパターンの稼働サーバの重み付け値を、ＲＡＭ１０３が記憶している閾値テーブルを参照して特定し、その特定した稼働サーバの重み付け値の比率に従って、複数のクライアント３００からのリクエストを設定されたパターンの稼働サーバに振り分ける負荷分散手段である。
また、負荷分散制御部１７０は、パターン特定部１６０が、カウントしたセッション数よりも大きいセッション閾値のパターンを特定した場合、現在設定されているパターンを特定したパターンに更新する。この更新の具体的な手法については、後述する。
なお、負荷分散制御部１７０は、現在設定（又は更新後に設定）されたパターンの稼働サーバが１台である場合は、複数のクライアント３００からのリクエストをその稼働サーバに振り分ける。
【００３５】
以上、図１乃至図６を参照しながら説明した負荷分散装置１００において、例えば、一つの特徴的な点は、受け付けた全体性能値と重み付け値とから休止サーバを含む性能テーブルを自動的に生成する。この性能テーブルから閾値テーブルを生成し、現在設定されているパターンのセッション閾値がカウントしたセッション数より小さい場合は、閾値テーブルを参照することにより、カウントしたセッション数よりも大きいパターンを特定し、その特定したパターンの重み付け値に動的に変更することでパターンを更新する点である。そこで、以下この点に関連する第１の負荷分散処理の流れについて、図７のフローチャートを参照しながら説明する。
なお、この図７のフローチャートは、ＣＰＵ１０１が、フラッシュＲＯＭ１０２に記憶された各種プログラムを実行して図３に示した各部の機能を発揮することにより実施する。
【００３６】
また、ＣＰＵ１０１は、図７の処理を、所定時間毎（例えば、毎秒）実施する。また、閾値テーブルのパターン１乃至７のうち、初期パターンとして設定されるパターンは、パターン７とする。これは、パターン７は、休止サーバ台数が多いので消費電力削減の観点から好ましい。また、複数のクライアント３００からのセッションの接続リクエストに基づき、各サーバとの間でセッションが確立された後に維持されるセッションの数は、各サーバと複数のクライアント３００とを負荷分散装置１００を介してネットワーク接続した直後は少ないことが想定され、パターン７はセッション閾値が最小だからである。
なお、初期パターンの設定は、管理ユーザが管理クライアント４００から行っても構わないし、ＣＰＵ１０１が、休止サーバ台数が多く、かつセッション閾値が最小のパターンを特定して設定してもよい。また、この実施形態において、サーバ２００、２１０及び２２０は、負荷分散装置１００より所定時間リクエストの送信がないことを検知すると、自動的に稼働状態から休止状態になる。
【００３７】
まず、図７の処理において、ＣＰＵ１０１は、セッション数をカウントする（Ｓ１１）。具体的には、ＣＰＵ１０１は、サーバ２００、２１０及び２２０と、複数のクライアント３００と、の間のセッション数をカウントする。
【００３８】
次に、ＣＰＵ１０１は、現在設定されているパターンのセッション閾値が、Ｓ１１でカウントしたセッション数よりも大きいか否か判断する（Ｓ１２）。具体的には、ＣＰＵ１０１は、現在設定されているパターン７のセッション閾値を、閾値テーブルを参照して１００，０００と特定し、その特定したセッション閾値１００，０００が、Ｓ１１でカウントしたセッション数よりも大きいか否か判断する。
【００３９】
ここで、ＣＰＵ１０１は、現在設定されているパターン７のセッション閾値１００，０００が、Ｓ１１でカウントしたセッション数よりも大きいと判断すると（Ｓ１２のＹｅｓ方向）、パターンの重み付け値に従って負荷分散を行う（Ｓ１７）。具体的には、ＣＰＵ１０１は、複数のクライアント３００からのリクエストを稼働サーバであるサーバ２２０に振り分ける。
【００４０】
一方、ＣＰＵ１０１は、現在設定されているパターン７のセッション閾値１００，０００が、Ｓ１１でカウントしたセッション数よりも小さいと判断すると（Ｓ１２のＮｏ方向）、Ｓ１１でカウントしたセッション数よりも大きいセッション閾値のパターンが閾値テーブルにあるか否か判断する（Ｓ１３）。
ここで、例えば、Ｓ１１でカウントしたセッション数が１５０，０００である場合、ＣＰＵ１０１は、パターン７のセッション閾値１００，０００が、セッション数１５０，０００よりも小さいと判断する（Ｓ１２のＮｏ方向）。その後、ＣＰＵ１０１は、カウントしたセッション数１５０，０００よりも大きいセッション閾値のパターン１乃至６が閾値テーブルにあると判断する（Ｓ１３のＹｅｓ方向）。
【００４１】
次に、ＣＰＵ１０１は、Ｓ１１でカウントしたセッション数よりも大きいセッション閾値のパターンのうち、休止サーバの台数が多いパターンを特定する（Ｓ１４）。具体的には、ＣＰＵ１０１は、セッション数１５０，０００よりも大きいセッション閾値のパターン１乃至６のうち、休止サーバの台数が多いパターン４及び６を特定する。
次に、ＣＰＵ１０１は、Ｓ１４で特定したパターンが２以上か否かについて判断する（Ｓ１５）。ここで、Ｓ１５でＹｅｓの場合、ＣＰＵ１０１は、休止サーバの台数が多いパターンのうち、最小のセッション閾値のパターンを特定する（Ｓ１８）。具体的には、ＣＰＵ１０１は、休止サーバの台数が多いパターンが４及び６であるためＳ１５において２以上であると判断し（Ｓ１５のＹｅｓ方向）、休止サーバの台数が多いパターン４及び６のうち、最小のセッション閾値のパターン６を特定する（Ｓ１８）。
【００４２】
次に、ＣＰＵ１０１は、Ｓ１８で特定したパターンに更新するために、現在設定されているパターンの重み付け値を特定したパターンの重み付け値に変更する（Ｓ１９）。ここで、ＣＰＵ１０１は、Ｓ１８で特定したパターン６に更新するために、パターン７の重み付け値をパターン６の重み付け値に変更する。具体的には、ＣＰＵ１０１は、閾値テーブルを参照して、サーバ２２０の重み付け値を「１」から「０」に変更し、かつサーバ２００の重み付け値を「０」から「２」に変更する。そして、ＣＰＵ１０１は、複数のクライアント３００からのリクエストを稼働サーバであるサーバ２００に振り分ける（Ｓ１７）。
【００４３】
一方、Ｓ１５でＮｏの場合（休止サーバの台数が多いパターンが一つの場合）、ＣＰＵ１０１は、Ｓ１４で特定したパターンに更新するために、現在設定されているパターンの重み付け値を特定したパターンの重み付け値に変更して（Ｓ１６）、そのパターンの重み付け値に従って負荷分散を行う（Ｓ１７）。
また、Ｓ１３に戻って、ＣＰＵ１０１は、Ｓ１１でカウントしたセッション数よりも大きいセッション閾値のパターンが閾値テーブルにないと判断すると（Ｓ１３のＮｏ方向）、セッション閾値が最大のパターンに更新するために、現在設定されているパターンの重み付け値を変更する（Ｓ２０）。
【００４４】
ここで、例えば、Ｓ１１でカウントしたセッション数が７００，０００であった場合、その７００，０００よりも大きいセッション閾値のパターンが閾値テーブルにない（Ｓ１３のＮｏ方向）。この場合、ＣＰＵ１０１は、セッション閾値が最大のパターン１に更新するために、パターン７の重み付け値を変更する。具体的には、ＣＰＵ１０１は、サーバ２００の重み付け値を「０」から「２」に変更し、かつサーバ２１０の重み付け値を「０」から「３」に変更する。そして、ＣＰＵ１０１は、パターン１の重み付け値の比率に従って負荷分散を行う（Ｓ１７）。なお、Ｓ１３において、Ｓ１１でカウントしたセッション数よりも大きいセッション閾値のパターンが閾値テーブルにない場合に（Ｓ１１でカウントしたセッション数が６００，０００を超えるような場合に）、セッション閾値が最大の６００，０００のパターン１の重み付け値に補正するのは、セッション数が６００，０００を超えた場合であってもパターン１で対応せざるを得ないからである。
また、図７においてＣＰＵ１０１が実施した各処理のうち、Ｓ１１は測定部１５０の機能に、Ｓ１２、１３、１４、１５及び１８はパターン特定部１６０の機能に、Ｓ１６、１７、１９、及び２０は負荷分散制御部１７０の機能に、それぞれ対応する。
【００４５】
以上、図７の処理では、負荷分散装置１００は、パターン特定部１６０及び負荷分散制御部１７０の機能を備えることにより、セッション閾値がカウントしたセッション数より小さい場合は、閾値テーブルを参照して、セッション閾値がカウントしたセッション数よりも大きく、かつ休止サーバの台数が多いパターンを特定し、その特定したパターンの重み付け値に動的に変更してパターンの更新をする。このことにより、負荷分散装置１００は、所定時間毎（例えば、毎秒）カウントするセッション数がセッション閾値を超えないようにしつつ、稼働サーバに複数のクライアント３００からのリクエストを振り分けるので、休止サーバについては省電力化を図ることができる。
【００４６】
また、初期パターンは、パターン７としたが、他のパターンを初期パターンとしてもよいことはもちろんである。また、負荷分散装置１００は、Ｓ２０の処理に代えて、管理クライアント４００に、カウントしたセッション数よりも大きいセッション閾値のパターンがない旨を通知してもよい。また、図７の処理では、各サーバは、負荷分散装置１００より所定時間リクエストの送信がないことを検知すると、自動的に稼働状態から休止状態になることとしたが、負荷分散装置１００が能動的に各サーバを休止させてもよい。例えば、負荷分散装置１００の負荷分散制御部１７０は、各サーバの重み付け値を「１」、「２」又は「３」から「０」にする際に、あわせて休止信号をサーバに送信してサーバを稼働状態から休止状態にしてもよい。
【００４７】
（第２実施形態）
次に、この発明の第２実施形態を図８乃至１１を参照しながら説明する。
第２実施形態では、負荷分散装置１００が、上述した図７の処理に加えて、平均ＣＰＵ使用率に基づいて、閾値テーブルのセッション閾値を補正する点が第１実施形態と異なる。そこで、この異なる点を中心に以下説明する。
なお、第２実施形態において、サーバクライアントシステムの構成は、第１実施形態の図１に示した構成と同じである。また、負荷分散装置１００のハードウェア構成は、第１実施形態の図２に示した構成と同じである。また、負荷分散装置１００の機能については、図３に示した各部の機能に加えて、図８に示す以下の機能を備える。
【００４８】
まず、平均ＣＰＵ使用率取得部１８１は、サーバ２００、２１０及び２２０の平均ＣＰＵ使用率を取得するＣＰＵ使用率取得手段である。具体的には、平均ＣＰＵ使用率取得部１８１は、サーバ２００、２１０及び２２０それぞれのＣＰＵ使用率を取得し、その取得したそれぞれのＣＰＵ使用率から平均ＣＰＵ使用率を算出する。各サーバよりＣＰＵ使用率を取得する手法としては、例えば、各サーバに予めＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）エージェントと呼ばれるサーバ監視用のモジュールをインストールしておき、そのＳＮＭＰエージェントに対して負荷分散装置１００がＳＮＭＰゲットのコマンドを発行することによりＣＰＵ使用率を取得できる。なお、別の手法により、ＣＰＵ使用率を取得しても構わない。
【００４９】
次に、ＣＰＵ使用率テーブル生成部１８２は、パターン１乃至７のうち少なくとも１つの所定のパターンについて、その所定のパターンと、その所定のパターンの稼働サーバのセッション閾値と、そのセッション閾値における稼働サーバの基準平均ＣＰＵ使用率と、所定の閾値と、を対応付けたＣＰＵ使用率テーブルを生成する手段である。
具体的には、ＣＰＵ使用率テーブル生成部１８２は、図９に示すように、例えばパターン５については、パターン５と、そのパターン５のセッション閾値３００，０００と、そのセッション閾値３００，０００における稼働サーバであるサーバ２００及び２２０の基準平均ＣＰＵ使用率５０％と、所定の閾値１０％とを対応付けたＣＰＵ使用率テーブルを生成し、ＲＡＭ１０３に記憶する。なお、閾値は、管理クライアント４００の管理ユーザが任意に設定する。また、基準平均ＣＰＵ使用率については、カウントしたセッション数がセッション閾値になったときの稼働サーバ（上述の場合、サーバ２００及び２２０）の平均ＣＰＵ使用率を予め測定しておき設定する。
【００５０】
次に、判断部１８３は、測定部１５０によりカウントした通信値であるセッション数が所定のパターンのセッション閾値になった場合、平均ＣＰＵ使用率取得部１８１により取得した平均ＣＰＵ使用率と所定のパターンと対応する基準平均ＣＰＵ使用率との差の絶対値を算出する。そして、判断部１８３は、その差の絶対値が、所定の閾値以上か否か判断する。
次に、閾値テーブル補正部１８４は、判断部１８３により差の絶対値が、所定の閾値以上であると判断すると、その差の絶対値の大きさに応じて、閾値テーブルの所定のパターンのセッション閾値を補正する補正手段である。
【００５１】
次に、図１０を参照しながら、第２実施形態に係る第２の負荷分散処理の流れについて説明する。なお、ＣＰＵ１０１は、図１０の処理を、図７の処理と同様に、所定時間毎（例えば、毎秒）に実施する。
まず、ＣＰＵ１０１は、セッション数をカウントする（Ｓ３１）。
次に、ＣＰＵ１０１は、現在設定されているパターンが所定のパターンか否か判断する（Ｓ３２）。具体的には、ＣＰＵ１０１は、図９に示したＣＰＵ使用率テーブルを参照して、現在設定されているパターンが所定のパターンか否か判断する。
ここで、ＣＰＵ１０１は、現在設定されているパターンが所定のパターンでない場合（Ｓ３２のＮｏ方向）、図７で説明したＳ１２乃至Ｓ２０の負荷分散処理を実施して処理を終了する。
一方、ＣＰＵ１０１は、現在設定されているパターンが所定のパターン（例えば、現在設定されているパターンがパターン５）の場合（Ｓ３２のＹｅｓ方向）、Ｓ３１でカウントしたセッション数が、所定のパターンのセッション閾値になったか否か判断する（Ｓ３３）。具体的には、ＣＰＵ１０１は、カウントしたセッション数が、パターン５のセッション閾値３００，０００になったか否か判断する。
【００５２】
ここで、ＣＰＵ１０１は、カウントしたセッション数が、設定されたパターン５のセッション閾値３００，０００になっていないと判断すると（Ｓ３３のＮｏ方向）、図７で説明したＳ１２乃至Ｓ２０の負荷分散処理を実施して処理を終了する。なお、この負荷分散処理を実施する場合、Ｓ１２で用いるカウントしたセッション数は、Ｓ３１でカウントしたセッション数を用いる。
【００５３】
一方、ＣＰＵ１０１は、カウントしたセッション数が、設定されたパターン５のセッション閾値３００，０００になったと判断すると（Ｓ３３のＹｅｓ方向）、パターン５の稼働サーバであるサーバ２００及び２２０の平均ＣＰＵ使用率を取得する（Ｓ３４）。
【００５４】
次に、ＣＰＵ１０１は、平均ＣＰＵ使用率取得部１８１により取得した平均ＣＰＵ使用率とパターン５と対応する基準平均ＣＰＵ使用率との差の絶対値が、閾値以上か否か判断する（Ｓ３５）。ここで、例えば、Ｓ３４で取得した平均ＣＰＵ使用率が４０％の場合、基準平均ＣＰＵ使用率５０％との差の絶対値は１０％となって、閾値である１０％以上となる（Ｓ３５でＹｅｓ方向）。この場合、Ｓ３６に進む。
【００５５】
Ｓ３６では、ＣＰＵ１０１は、閾値テーブルのセッション閾値の補正を行う。具体的には、ＣＰＵ１０１は、差の絶対値の大きさに応じて、閾値テーブルの所定のパターンのセッション閾値を補正する。上述の例の場合、差の絶対値は１０％なので、比例計算により補正後のセッション閾値３７５，０００を算出する。計算式は、３００，０００（セッション閾値）：４０％（平均ＣＰＵ使用率）＝補正後のセッション閾値：５０％（基準平均ＣＰＵ使用率）である。そして、ＣＰＵ１０１は、図１１に示すように、パターン５のセッション閾値３００，０００を補正後のセッション閾値３７５，０００に補正する。その後、Ｓ１２乃至Ｓ２０の負荷分散処理を実施して処理を終了する。
【００５６】
一方、例えば、Ｓ３４で取得した平均ＣＰＵ使用率が６０％の場合、基準平均ＣＰＵ使用率５０％との差の絶対値は１０％となって、閾値である１０％以上となる（Ｓ３５のＹｅｓ方向）。そして、ＣＰＵ１０１は、比例計算により補正後のセッション閾値２５０，０００を算出し、その算出した補正後のセッション閾値になるように設定されたパターン５のセッション閾値を補正する。その後、Ｓ１２乃至Ｓ２０の負荷分散処理を実施して処理を終了する。
【００５７】
一方、例えば、Ｓ３４で取得した平均ＣＰＵ使用率が４５％の場合、基準平均ＣＰＵ使用率５０％との差の絶対値は５％となって、閾値である１０％以上にならない（Ｓ３５のＮｏ方向）。この場合、ＣＰＵ１０１は、閾値テーブルの補正を行わない。Ｓ３５の後は、Ｓ１２乃至Ｓ２０の負荷分散処理を実施して処理を終了する。
【００５８】
なお、図１０においてＣＰＵ１０１が実施した各処理のうち、Ｓ３１は測定部１５０の機能に、Ｓ３２、３３及び３５は判断部１８３の機能に、Ｓ３４は平均ＣＰＵ使用率取得部１８１の機能に、Ｓ３６は閾値テーブル補正部１８４の機能に、それぞれ対応する。
また、図１０の処理においては、パターン５を例にとって説明したが、他のパターンについても図９と同様に、セッション閾値と基準平均ＣＰＵ使用率と所定の閾値とを対応付けてＲＡＭ１０３に記憶しておき、図１０のＳ３１乃至３６の処理を実施してもよいことはもちろんである。
【００５９】
以上、図１０の処理では、負荷分散装置１００が平均ＣＰＵ使用率取得部１８１、ＣＰＵ使用率テーブル生成部１８２、判断部１８３、閾値テーブル補正部１８４の各機能を備えることにより、基準平均ＣＰＵ使用率と取得した平均ＣＰＵ使用率との差の絶対値が閾値以上の場合は、その差の絶対値の大きさに応じて、閾値テーブルの現在設定されているパターンのセッション閾値を補正する。このことにより、取得した平均ＣＰＵ使用率が基準平均ＣＰＵ使用率より大きくずれる場合は、その差であるずれ量に応じてセッション閾値を補正できるので、平均ＣＰＵ使用率を加味したセッション閾値を用いて、精度の高い図７の負荷分散処理を実施することができる。
【００６０】
（第３実施形態）
次に、この発明の第３実施形態を図１２乃至図１５を参照しながら説明する。
まず、図１２は、ＣＰＵ使用率と消費電力の関係の一例を示している。この図１２では、サーバ休止時からＣＰＵ使用率が低い間の傾きが急であるため、消費電力の変化量を考慮すると、ＣＰＵ使用率を低く抑えた状態でサーバを運用した方が好ましい。
また、図１３は、ＣＰＵ使用率と消費電力の関係の別例を示す図である。この図１３において、斜線部分は、消費電力が一定にならない区間である。また、この図１３では、ＣＰＵ使用率が５０％を超えると、急激にサーバの消費電力が増加する。このような場合、サーバのＣＰＵ使用率を、３０％よりも小さく抑えた状態でサーバを運用した方がサーバの消費電力の観点から好ましい。
【００６１】
そこで、第３実施形態では、負荷分散装置１００が、上述した図７の処理を、平均ＣＰＵ使用率の上限値を超えないように行う。この点が実施形態１と異なる。以下、この異なる点を中心に説明する。
なお、第３実施形態において、サーバクライアントシステムの構成は、実施形態１の図１に示した構成と同じである。また、負荷分散装置１００のハードウェア構成は、実施形態１の図２に示した構成と同じである。また、負荷分散装置１００の機能については、図３に示した各部の機能に加えて、図１４に示す以下の機能を備える。なお、平均ＣＰＵ使用率取得部１８１は、第２実施形態の図８の平均ＣＰＵ使用率取得部１８１と同じなので、説明を省略する。
【００６２】
まず、ＣＰＵ上限値受付部１９１は、サーバ２００、２１０及び２２０の平均ＣＰＵ使用率の上限値であるＣＰＵ使用率上限値を受け付けてＲＡＭ１０３に記憶する手段である。具体的には、まず管理ユーザが管理クライアント４００にＣＰＵ使用率上限値を入力する。次に、ＣＰＵ上限値受付部１９１は、管理クライアント４００からネットワークを介して送信されるＣＰＵ使用率上限値を受け付け、ＲＡＭ１０３に記憶する。
【００６３】
次に、更新部１９２は、平均ＣＰＵ使用率取得部１８１により取得した平均ＣＰＵ使用率がＣＰＵ使用率上限値以上の場合、現在設定されているパターンの稼働サーバの台数よりも稼働サーバ台数が多いパターンを特定する。そして、更新部１９２は、その特定したパターンに更新するために、現在設定されているパターンの重み付け値を特定したパターンの重み付け値に変更して、パターンを更新する更新手段である。
【００６４】
次に、図１５を参照しながら、第３実施形態に係る第３の負荷分散処理の流れについて説明する。なお、ＣＰＵ１０１は、図１５の処理を、図７の処理と同様に、所定時間毎（例えば、毎秒）に実施する。
まず、ＣＰＵ１０１は、現在設定されているパターンの稼働サーバの平均ＣＰＵ使用率を取得する（Ｓ４１）。そして、ＣＰＵ１０１は、Ｓ４１で取得した平均ＣＰＵ使用率が、ＣＰＵ使用率上限値よりも小さいか否か判断する（Ｓ４２）。
【００６５】
ここで、ＣＰＵ１０１は、Ｓ４１で取得した平均ＣＰＵ使用率が、ＣＰＵ使用率上限値よりも小さい場合（Ｓ４２でＹｅｓ方向）、Ｓ１１乃至Ｓ２０の負荷分散処理を行って処理を終了する。
一方、ＣＰＵ１０１は、Ｓ４１で取得した平均ＣＰＵ使用率が、ＣＰＵ使用率上限値以上の場合（Ｓ４２でＮｏ方向）、閾値テーブルを参照して、現在設定されているパターンの稼働サーバ台数よりも、稼働サーバ台数が多いパターンがあるか否か判断する（Ｓ４３）。
ここで、ＣＰＵ１０１は、現在設定されているパターンの稼働サーバ台数よりも、稼働サーバ台数が多いパターンがなければ（Ｓ４３のＮｏ方向）、Ｓ１１乃至Ｓ２０の負荷分散処理を行って処理を終了する。
【００６６】
一方、ＣＰＵ１０１は、現在設定されているパターンの稼働サーバ台数よりも、稼働サーバ台数が多いパターンがあれば（Ｓ４３のＹｅｓ方向）、現在設定されているパターンの稼働サーバ台数よりも、１台稼働サーバ台数が多いパターンを特定する（Ｓ４４）。そして、ＣＰＵ１０１は、Ｓ４４で特定したパターンに更新するために、現在設定されているパターンの重み付け値を特定したパターンの重み付け値に変更する（Ｓ４５）。そして、ＣＰＵ１０１は、更新後に設定されているパターンの稼働サーバの平均ＣＰＵ使用率を再度取得し、Ｓ４２乃至Ｓ４５の処理を繰り返す。
なお、図１５においてＣＰＵ１０１が実施した各処理のうち、Ｓ４１は平均ＣＰＵ使用率取得部１８１の機能に、Ｓ４２乃至４５は更新部１９２の機能に、それぞれ対応する。
【００６７】
以上、図１５の処理では、負荷分散装置１００が平均ＣＰＵ使用率取得部１８１、ＣＰＵ上限値受付部１９１及び更新部１９２を備えることにより、Ｓ４１乃至Ｓ４５の処理を、取得した平均ＣＰＵ使用率がＣＰＵ使用率上限値よりも小さくなるまで繰り返す。そして、取得した平均ＣＰＵ使用率がＣＰＵ使用率上限値より小さい場合、Ｓ１１乃至Ｓ２０の負荷分散処理を行う。このことにより、稼働サーバの平均ＣＰＵ使用率がＣＰＵ使用率上限値を超えない場合に、Ｓ１１乃至Ｓ２０の負荷分散処理を行えるので、各サーバの省電力化を図ることができる。
【００６８】
以上で各実施形態の説明を終了するが、負荷分散装置１００の具体的な構成や処理の内容等が上述の各実施形態で説明したものに限られないことはもちろんである。
例えば、第１の実施形態の図７のフローチャートでは、ＣＰＵ１０１は、Ｓ１４において、カウントしたセッション数よりも大きいセッション閾値のパターンのうち、休止サーバの台数が多いパターンを特定し、その特定したパターンが２以上の場合（Ｓ１５のＹｅｓ方向）、その２以上のパターンのうち最小のセッション閾値のパターンを特定したが（Ｓ１８）、パターンの特定方法はこれに限られない。
例えば、カウントしたセッション数よりも大きいセッション閾値のパターンの中で、最小のセッション閾値のパターンを特定し、その特定したパターンが２以上の場合、その２以上のパターンのうち休止サーバの台数が多いパターンを特定してもよい。
【００６９】
第１乃至第３実施形態では、パターンを更新する手法として現在設定されているパターンの重み付け値を特定したパターンの重み付け値に変更するようにしたが、他の手法によりパターンの更新をしてもよい。例えば、重み付け値を変更することなく、単に現在設定されているパターンの重み付け値を用いずに、更新後のパターンの重み付け値を用いて負荷分散を行ってもよい。
また、各実施形態における閾値テーブルの性能閾値としては、セッション閾値を用いたが、他の性能閾値を用いてもよい。例えば、毎秒あたりに処理できるパケット数をパケット閾値として用いてもよい。この場合、管理ユーザは、管理クライアント４００にサーバ２００、２１０及び２２０全体の性能値として最大パケット数を入力する。サーバ性能値取得部１３０は、最大パケット数と、各サーバの重み付け値とに基づいて、各サーバのパケット閾値を算出する。そして、図７、１０及び１５の各フローチャートの処理にあたっては、測定部１５０は、通信値として複数のクライアント３００から送信されるパケット数をカウントする。
【００７０】
また、負荷分散装置１００にカレンダー機能を持たせ、負荷の状況によって閾値テーブルの重み付け値を動的に切り替えるようにしてもよい。
例えば、図１６及び図１７にそれぞれ示すように、パターン１における高負荷時と低負荷時の切り替え用重み付け値を予め用意しておき、日、曜日又は時間帯に応じて重み付け値を切り替えるようにする。
【００７１】
ここで、フラグは、「０」又は「１」の２値で表され、「０」は重み付け値を切り替えないことを示し、「１」は重み付け値を切り替えることを示している。この図１６及び図１７の例では、高負荷時は重み付け値を切り替えないようにし、低負荷時はサーバ２００の重み付け値を２から０に切り替え、休止させるようにしている。
ＣＰＵ１０１は、例えば高負荷時の夜間の時間帯は図１６に示す重み付け値を用いる。一方、ＣＰＵ１０１は、例えば低負荷時の朝方及び昼間の時間帯は図１７に示す切り替え用重み付け値になるように、図６の閾値テーブルのパターン１のサーバ２００の重み付け値を切り替える。
【００７２】
このように、負荷分散装置１００がカレンダー機能を備えることで、例えば低負荷時には休止サーバの台数を増やして運用できるので、サーバの省電力化を図ることできる。また、このカレンダー機能は、定期メンテナンスの日時にあわせてサーバを計画停止する際にも好適である。なお、図１６及び図１７では、パターン１を例にとって説明したが、パターン毎に、切り替え用重み付け値のテーブルを用意しても構わない。また、図６に示した閾値テーブルを日、曜日又は時間帯毎に用意しても構わない。
【００７３】
なお、この発明の負荷分散装置１００は、通常のＰＣ等のコンピュータによっても実現することができる。
具体的には、上記各実施形態では、負荷分散装置１００のプログラムが、フラッシュＲＯＭ１０２に予め記憶されているものとして説明した。しかし、フラッシュＲＯＭ１０２のプログラムをコンピュータにインストールして、上述の各部機能を実行することができるコンピュータを構成してもよい。なお、プログラムは、フラッシュＲＯＭ１０２に限らず、その他のコンピュータ読み取り可能な記録媒体（例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ及びＭＯ等）に格納してコンピュータに配布してもよいことはもちろんである。
【００７４】
また、プログラムをインターネット等の通信ネットワーク上のサーバ装置が有するディスク装置等に格納しておき、例えば、コンピュータにダウンロード等するようにしてもよい。さらに、通信ネットワークを介してプログラムを転送しながら起動実行することによっても、上述の負荷分散装置１００の処理を達成することができる。
【符号の説明】
【００７５】
１００  負荷分散装置
１０１  ＣＰＵ
１０２  フラッシュＲＯＭ
１０３  ＲＡＭ
１０４  ネットワークＩ／Ｆ
１１０  全体性能値受付部
１２０  重み付け値受付部
１３０  サーバ性能値取得部
１４０  閾値テーブル生成部
１５０  測定部
１６０  パターン特定部
１７０  負荷分散制御部
１８１  平均ＣＰＵ使用率取得部
１８２  ＣＰＵ使用率テーブル生成部
１８３  判断部
１８４  閾値テーブル補正部
１９１  ＣＰＵ上限値受付部
１９２  更新部
２００，２１０，２２０  サーバ
３００  複数のクライアント
４００  管理クライアント
【図１】
2014109886.tif 000003
【図２】
2014109886.tif 000004
【図３】
2014109886.tif 000005
【図４】
2014109886.tif 000006
【図５】
2014109886.tif 000007
【図６】
2014109886.tif 000008
【図７】
2014109886.tif 000009
【図８】
2014109886.tif 000010
【図９】
2014109886.tif 000011
【図１０】
2014109886.tif 000012
【図１１】
2014109886.tif 000013
【図１２】
2014109886.tif 000014
【図１３】
2014109886.tif 000015
【図１４】
2014109886.tif 000016
【図１５】
2014109886.tif 000017
【図１６】
2014109886.tif 000018
【図１７】
2014109886.tif 000019