図面 (/)

技術 負荷分散装置、負荷分散方法および負荷分散プログラム

出願人 富士通株式会社
発明者 佐野健佐々木和雄
出願日 2009年1月16日 (10年6ヶ月経過) 出願番号 2009-007143
公開日 2010年7月29日 (8年11ヶ月経過) 公開番号 2010-165193
状態 特許登録済
技術分野 マルチプログラミング
主要キーワード 上位接続 下位接続 閾値管理テーブル 割当順 起動優先順位 振り分け対象 負荷閾値 分サーバ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2010年7月29日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

情報処理装置が効率的に省電力状態移行可能となるように負荷分散処理を行うこと。

解決手段

負荷分散装置1は、受信部1a、制御部1bおよび送信部1cを有する。受信部1aは、処理要求5を受信し、制御部1bに出力する。制御部1bは、処理要求5を取得すると、情報処理装置2,3,4のうち、所定の負荷値が所定の閾値Lよりも小さい情報処理装置2を選択する。以後、制御部1bは、情報処理装置2の負荷値が閾値Lに達するまで、情報処理装置2を処理要求5の振分先と決定する。送信部1cは、制御部1aが決定した振分先に処理要求5を送信する。

概要

背景

従来、同一のサービスを提供する複数のサーバを設け、これら複数のサーバに処理要求振り分け分散処理する負荷分散システムが用いられている。負荷分散システムは、負荷分散装置を有する。負荷分散装置は、複数のサーバの前段で処理要求を受け付け、各サーバの負荷が均等になるよう各サーバに処理要求を振り分ける。

負荷分散装置の負荷分散方法には、例えば、ラウンドロビン、最小コネクションおよび最小応答時間などがある。ラウンドロビンは、各サーバに順番に処理を割り当てる方法である。最小コネクションは、各サーバのうち、TCP(Transaction Control Protocol)コネクションやUDP(User Datagram Protocol)フローの数が最も少ないサーバに処理を割り当てる方法である。最小応答時間は、各サーバの応答時間を測定し、応答時間が短いサーバに処理を割り当てる方法である。このように負荷を分散することで、サーバの応答性を向上できる。

ところで、情報処理システムでは省電力化が課題となる。この課題に対し、負荷分散システムでは、全てのサーバを起動させておく必要がない場合には、応答性を損なわない最低限のサーバのみを稼動させ、それ以外のサーバは処理を停止させて省電力状態とすることが望ましい。

このために、例えば、所定のサーバの負荷状況監視して、このサーバ単体処理能力を超えた場合に、停止中のサーバを起動させて負荷分散することが考えられる。また、該当サーバの負荷や全サーバの負荷を監視し、負荷が所定の水準よりも低下した際には、所定のサーバを省電力状態に移行させることが考えられる。

概要

情報処理装置が効率的に省電力状態へ移行可能となるように負荷分散処理を行うこと。負荷分散装置1は、受信部1a、制御部1bおよび送信部1cを有する。受信部1aは、処理要求5を受信し、制御部1bに出力する。制御部1bは、処理要求5を取得すると、情報処理装置2,3,4のうち、所定の負荷値が所定の閾値Lよりも小さい情報処理装置2を選択する。以後、制御部1bは、情報処理装置2の負荷値が閾値Lに達するまで、情報処理装置2を処理要求5の振分先と決定する。送信部1cは、制御部1aが決定した振分先に処理要求5を送信する。

目的

本件はこのような点に鑑みてなされたものであり、情報処理装置が効率的に省電力状態へ移行可能となるように負荷分散処理を行う負荷分散装置、負荷分散方法および負荷分散プログラムを提供する

効果

実績

技術文献被引用数
1件
牽制数
4件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照し、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理装置を、取得した処理要求の振分先と決定する制御部と、前記制御部が決定した前記振分先に前記処理要求を送信する送信部と、を有することを特徴とする負荷分散装置

請求項2

前記制御部は、前記複数の情報処理装置のうち、前記負荷値が前記所定の閾値より小さく、かつ、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を前記処理要求の振分先と決定することを特徴とする請求項1記載の負荷分散装置。

請求項3

前記制御部は、前記複数の情報処理装置それぞれに対し前記処理要求の振分先とした順序を示す振分順序情報を記憶する振分順序情報記憶部を参照して、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を特定する、ことを特徴とする請求項2記載の負荷分散装置。

請求項4

前記制御部は、前記複数の情報処理装置それぞれに対し前記処理要求の振分先とした最新時刻を示す振分時刻情報を記憶する振分時刻情報記憶部を参照して、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を特定する、ことを特徴とする請求項2記載の負荷分散装置。

請求項5

前記複数の情報処理装置それぞれから前記処理要求に応じた処理の完了予定時刻を示す完了時刻情報を受信し、前記複数の情報処理装置それぞれの識別情報と当該完了時刻情報とを対応付けて完了時刻情報記憶部に格納する完了時刻情報受信部を更に有し、前記制御部は、前記完了時刻情報記憶部に記憶された前記完了時刻情報に基づいて、前記負荷値が前記所定の閾値より小さく、かつ、前記完了予定時刻が最も遅い情報処理装置を前記処理要求の振分先と決定する、ことを特徴とする請求項1記載の負荷分散装置。

請求項6

負荷分散装置の負荷分散方法であって、複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照して、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、選択した当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理を、取得した処理要求の振分先と決定し、決定した前記振分先に前記処理要求を送信する、ことを特徴とする負荷分散方法。

請求項7

コンピュータに、複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照して、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、選択した当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理を、取得した処理要求の振分先と決定し、決定した前記振分先に前記処理要求を送信する、処理を実行させることを特徴とする負荷分散プログラム

技術分野

0001

本件は、負荷分散装置負荷分散方法および負荷分散プログラムに関し、特に複数の情報処理装置処理要求振り分ける負荷分散装置、負荷分散方法および負荷分散プログラムに関する。

背景技術

0002

従来、同一のサービスを提供する複数のサーバを設け、これら複数のサーバに処理要求を振り分けて分散処理する負荷分散システムが用いられている。負荷分散システムは、負荷分散装置を有する。負荷分散装置は、複数のサーバの前段で処理要求を受け付け、各サーバの負荷が均等になるよう各サーバに処理要求を振り分ける。

0003

負荷分散装置の負荷分散方法には、例えば、ラウンドロビン、最小コネクションおよび最小応答時間などがある。ラウンドロビンは、各サーバに順番に処理を割り当てる方法である。最小コネクションは、各サーバのうち、TCP(Transaction Control Protocol)コネクションやUDP(User Datagram Protocol)フローの数が最も少ないサーバに処理を割り当てる方法である。最小応答時間は、各サーバの応答時間を測定し、応答時間が短いサーバに処理を割り当てる方法である。このように負荷を分散することで、サーバの応答性を向上できる。

0004

ところで、情報処理システムでは省電力化が課題となる。この課題に対し、負荷分散システムでは、全てのサーバを起動させておく必要がない場合には、応答性を損なわない最低限のサーバのみを稼動させ、それ以外のサーバは処理を停止させて省電力状態とすることが望ましい。

0005

このために、例えば、所定のサーバの負荷状況監視して、このサーバ単体処理能力を超えた場合に、停止中のサーバを起動させて負荷分散することが考えられる。また、該当サーバの負荷や全サーバの負荷を監視し、負荷が所定の水準よりも低下した際には、所定のサーバを省電力状態に移行させることが考えられる。

先行技術

0006

特開2008−225642号公報

発明が解決しようとする課題

0007

ここで、負荷分散装置は振り分け可能なサーバに対して処理を一様に振り分ける。したがって、上記の方法では各サーバの負荷が所定の水準より低下したとしても、サーバに未実行の処理が残っている可能性がある。この場合、サーバを省電力状態に移行することができない。なぜなら、処理が継続しているにも関わらずサーバを省電力状態に移行させると、クライアントサービス利用中断させることになるためである。

0008

このため、上記の方法では、停止対象とするサーバに残っている処理を他のサーバに委譲する必要がある。しかし、委譲を行うとすると、委譲先サーバの選定や委譲を実行する処理により、システムに余計な負荷が発生するという問題がある。また、負荷分散装置やサーバに、このような処理を実行させるためのモジュールを設ける必要があるという問題がある。

0009

本件はこのような点に鑑みてなされたものであり、情報処理装置が効率的に省電力状態へ移行可能となるように負荷分散処理を行う負荷分散装置、負荷分散方法および負荷分散プログラムを提供することを目的とする。

課題を解決するための手段

0010

上記課題を解決するために、負荷分散装置が提供される。この負荷分散装置は、制御部と送信部とを有する。制御部は、複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照し、複数の情報処理装置のうち、負荷値が所定の閾値よりも小さい情報処理装置を選択し、選択した情報処理装置の負荷値が所定の閾値に達するまで、この情報処理装置を、取得した処理要求の振分先と決定する。送信部は、制御部が決定した振分先に処理要求を送信する。

0011

また、上記課題を解決するために上記負荷分散装置と同様の処理を行う負荷分散方法が提供される。また、上記課題を解決するために上記負荷分散装置と同様の処理をコンピュータに実行させる負荷分散プログラムが提供される。

発明の効果

0012

上記負荷分散装置、負荷分散方法および負荷分散プログラムによれば、情報処理装置が効率的に省電力状態へ移行可能となるように負荷分散処理を行うことができる。

図面の簡単な説明

0013

負荷分散システムの概要を示す図である。
Webシステムの構成を示す図である。
負荷分散装置のハードウェア構成を示す図である。
Webサーバのハードウェア構成を示す図である。
第1の実施の形態の負荷分散装置およびWebサーバの機能構成を示す図である。
第1の実施の形態のサーバ管理テーブルの第1のデータ構造例を示す図である。
第1の実施の形態のサーバ管理テーブルの第2のデータ構造例を示す図である。
負荷閾値管理テーブルのデータ構造例を示す図である。
メッセージ受信処理の手順を示すフローチャートである。
第1の実施の形態のリクエスト振分処理の手順を示すフローチャートである。
サーバ起動処理の手順を示すフローチャートである。
サーバ停止処理の手順を示すフローチャートである。
Webシステムの第1の状態例を示す図である。
サーバ停止の流れを示すシーケンス図である。
Webシステムの第2の状態例を示す図である。
サーバ起動の流れを示すシーケンス図である。
Webシステムの第3の状態例を示す図である。
Webシステムの第4の状態例を示す図である。
第2の実施の形態の負荷分散装置およびWebサーバの機能構成を示す図である。
第2の実施の形態のサーバ管理テーブルのデータ構造例を示す図である。
第2の実施の形態のリクエスト振分処理の手順を示すフローチャートである。

実施例

0014

以下、本実施の形態を図面を参照して詳細に説明する。
図1は、負荷分散システムの概要を示す図である。この負荷分散システムは、負荷分散装置1および情報処理装置2,3,4を有する。負荷分散装置1は、処理要求5を情報処理装置2,3,4に振り分ける。情報処理装置2,3,4は、処理要求に応じた処理を実行する。情報処理装置2,3,4は、例えば、所定のサービスを提供するサーバである。

0015

負荷分散装置1は、受信部1a、制御部1bおよび送信部1cを有する。
受信部1aは、情報処理装置2,3,4に対する処理要求5を受信する。処理要求5は、例えば、情報処理装置2,3,4が提供するサービスを利用するクライアントから送信される。受信部1aは、受信した処理要求5を制御部1bに出力する。

0016

制御部1bは、受信部1aから処理要求5を取得すると、情報処理装置2,3,4のうち、所定の負荷値が所定の閾値Lよりも小さい情報処理装置を選択する。負荷値は、例えば、情報処理装置2,3,4のそれぞれに振り分けた処理要求の数や情報処理装置2,3,4のそれぞれのハードウェア資源の負荷などに基づいて取得できる。制御部1bは、例えば情報処理装置2,3,4から定期的に負荷値の通知を受け付けて管理する。なお、閾値Lは情報処理装置2,3,4の応答性を損なわない負荷値として予め決められる。そして、制御部1bは、この情報処理装置の負荷値が閾値Lに達するまで、この情報処理装置を振分先と決定する。

0017

送信部1cは、制御部1bが決定した振分先に処理要求5を送信する。
ここで、制御部1bは、閾値Lよりも小さい情報処理装置が複数存在する場合には、その中から更に振分先とする情報処理装置を決定する。第1の振分先決定方法として、例えば、前回処理要求の送信先とした時点からの経過時間が最も短い情報処理装置を振分先とすることが考えられる。また、第2の振分先決定方法として、振り分けられた処理要求に応じた処理を全て完了する予定時刻が最も遅い情報処理装置を振分先とすることが考えられる。

0018

第1の振分先決定方法を用いる場合、負荷分散装置1が処理要求5を受信した際に、例えば情報処理装置2,3,4が次のような状態であるとする。すなわち、情報処理装置2,4の負荷値が閾値Lより小さく、情報処理装置3の負荷値が閾値Lより大きいものとする。また、処理要求を送信した順に直近のものから並べると、情報処理装置3,2,4であったとする。この場合、制御部1bは、負荷値が閾値Lよりも小さい情報処理装置2,4のうち、直近に処理要求を送信した情報処理装置2を処理要求5の振分先と決定する。

0019

また、第2の振分先決定方法を用いる場合、負荷分散装置1が処理要求5を受信した際に、例えば情報処理装置2,3,4が次のような状態であるとする。すなわち、情報処理装置2,4の負荷値が閾値Lより小さく、情報処理装置3の負荷値が閾値Lより大きいものとする。また、情報処理装置2,4のうち、情報処理装置2の方が、振り分けられた処理要求に応じた処理を全て完了する予定時刻が遅いとする。この場合、制御部1bは、情報処理装置2を処理要求5の振分先と決定する。

0020

このようにすると、情報処理装置2の負荷値が閾値L以上とならない限り、情報処理装置3,4に処理要求が送信されることがなくなる。すなわち、負荷分散システムに対する処理要求が少ない場合には、情報処理装置2に処理要求を集中させることになる。

0021

これにより、情報処理装置を効率的に省電力状態へ移行可能な状態とすることができる。具体的には、負荷分散システムにおいて要求される応答性が単一の情報処理装置で確保できる場合には、所定の情報処理装置に対してのみ処理要求を振り分ける。例えば、情報処理装置2に処理要求を集中させ、情報処理装置3,4には処理要求を振り分けない。その結果、情報処理装置3,4が実行すべき処理が時間の経過と共に完了されて、情報処理装置3,4の負荷値が減少する。この状態が継続すると、情報処理装置3,4の負荷値は、やがて0となる。そして、情報処理装置3,4の省電力状態への移行が可能となる。すなわち、情報処理装置2,3,4で処理の委譲等の余計な負荷を発生させずに、情報処理装置を省電力状態へ移行可能な状態にすることができる。

0022

なお、負荷分散システムの応答性を保証するため、負荷値が上記の閾値を超えた場合には他の情報処理装置に処理要求を振り分けることが望ましい。例えば、情報処理装置2のみを稼動状態にする場合、処理要求が増大すると応答性が損なわれる可能性があるので、処理要求の量に応じて情報処理装置3,4に振り分け可能とすることが望ましい。この点、上記の閾値Lを超える前に、他の情報処理装置を稼動状態にしておくことが考えられる。このために、他の情報処理装置の起動判定用の閾値(この閾値は閾値Lより小さい値とする)を更に設けて、この閾値を超えたら省電力状態の情報処理装置を稼動状態に変更することが考えられる。

0023

ところで、負荷分散装置1は、例えば、Webサービスを提供するWebシステムに適用できる。以下、Webシステムに負荷分散装置1を適用する場合を例に採り、更に具体的に説明する。なお、以下では負荷分散対象プロトコルとして、HTTP(Hyper Text Transfer Protocol)を想定するが、これに限らない。例えば、SMTP(Simple Mail Transfer Protocol)やFTP(File Transfer Protocol)などのプロトコルを利用して他のサービスを提供する情報処理システムにも適用できる。

0024

[第1の実施の形態]
以下、第1の実施の形態を図面を参照して詳細に説明する。
図2は、Webシステムの構成を示す図である。このWebシステムは、負荷分散装置100およびWebサーバ200,300,400,500,・・・を有する。また、負荷分散装置100は、ネットワーク10を介して端末装置21,22,23と接続される。ネットワーク10は、インターネットまたはイントラネット通信網である。

0025

負荷分散装置100は、端末装置21,22,23からWebサーバ200,300,400,500,・・・に対する処理要求であるHTTPリクエスト(以下、単にリクエストという)を受信する。負荷分散装置100は、Webサーバ200,300,400,500,・・・からリクエストの振分先を決定し、決定したWebサーバにリクエストを送信する。

0026

また、負荷分散装置100は、送信したリクエストに対するHTTPレスポンス(以下、単にレスポンスという)をWebサーバ200,300,400,500,・・・から受信する。そして、負荷分散装置100は、該当のリクエストの発信元の端末装置に受信したレスポンスを送信する。

0027

Webサーバ200,300,400,500,・・・は、負荷分散装置100からリクエストを受信すると、リクエストに応じた処理を実行し、負荷分散装置100にレスポンスを送信する。

0028

負荷分散装置100は、Webサービスの利用量が少ない場合には、Webシステムで稼動するWebサーバを適宜省電力状態に移行させて、システムの省電力化を図ることができる。例えば、Webサービスの利用量が多い日中には利用量に応じてWebサーバを稼動させて負荷分散し、利用量の少ない夜間には最小限のWebサーバのみを稼動させる。

0029

ここで、省電力状態とは、ハードウェアデバイスへの電力供給を制御することによって消費電力を抑えるモードである。省電力状態としては、例えば、RAM(Random Access Memory)等の限られたハードウェアデバイスにのみ電力を供給して、記憶されたデータを保持し、このデータからOS(Operating System)を高速に元の状態に復帰可能とするモードが考えられる。また、RAMの情報をHDD(Hard Disk Drive)などの不揮発性記憶媒体に書き込んだ後、RAM等への電力供給も停止し、起動時にはHDDに書き込んだOSの情報をRAMに読み込むことで元の状態に復帰可能とするモードが考えられる。前者のモードと後者のモードとでは、前者の方が電力を消費するが、復帰に要する時間が短いなどの特徴がある。Webサーバ200,300,400,500,・・・の移行後の省電力状態としては、このようなモードが予め設定される。ただし、Webサーバ200,300,400,500,・・・に対する電力供給を完全に停止して省電力効果を向上することも考えられる。

0030

負荷分散装置100は、Webサーバ200,300,400,500,・・・を効率的に省電力状態に移行可能とすることができる。以下では、このような負荷分散装置100の構成に関して詳細に説明する。

0031

図3は、負荷分散装置のハードウェア構成を示す図である。負荷分散装置100は、CPU(Central Processing Unit)101、RAM102、NVRAM(Non Volatile RAM)103、入力インタフェース104、通信部105、上位接続インタフェース106および下位接続インタフェース群107を有する。

0032

CPU101は、負荷分散装置100全体の動作を制御する。
RAM102は、CPU101に実行させるOS(Operating System)のプログラムアプリケーションソフトウェア(以下、アプリケーションという)のプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、CPU101による処理に必要な各種データを記憶する。

0033

NVRAM103は、OSのプログラム、アプリケーションのプログラムを記憶する。また、NVRAM103は、CPU101による処理に必要な各種データを記憶する。
入力インタフェース104は、外部装置からの入力を受け付ける。入力インタフェースは、例えば、シリアル通信ポートである。システムの管理者は、入力インタフェース104に作業用のコンピュータを接続し、Telnetなどのプロトコルを用いて負荷分散装置100に対する各種設定を行える。

0034

通信部105は、データ通信処理を行う。通信部105には、上位接続インタフェース106および下位接続インタフェース群107と接続される。上位接続インタフェース106は、ネットワーク10と接続する通信用ポートである。下位接続インタフェース群107は、Webサーバ200,300,400,500,・・・と接続する通信用ポートである。負荷分散装置100とWebサーバ200,300,400,500,・・・とは、下位接続インタフェース群107で直接接続してもよいし、負荷分散装置100とWebサーバ200,300,400,500,・・・との間にスイッチングハブなどを設けてもよい。

0035

図4は、Webサーバのハードウェア構成を示す図である。Webサーバ200は、CPU201、RAM202、HDD203、画像表示インタフェース204、入力インタフェース205および通信インタフェース206を有する。

0036

CPU201は、Webサーバ200全体の動作を制御する。
RAM202は、CPU201に実行させるOSのプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、RAM202は、CPU201による処理に必要な各種データを記憶する。

0037

HDD203は、OSのプログラム、アプリケーションのプログラムを記憶する。また、HDD203は、CPU201による処理に必要な各種データを記憶する。
画像表示インタフェース204は、モニタ31と接続される。画像表示インタフェース204は、CPU201からの命令に従って、画像をモニタ31の画面に表示させる。

0038

入力インタフェース205は、キーボード32とマウス33と接続される。入力インタフェース205は、キーボード32やマウス33から送られてくる信号をCPU201に送信する。

0039

通信インタフェース206は、負荷分散装置100と接続され、負荷分散装置100との間でデータの送受信を行う。
なお、Webサーバ300,400,500,・・・についてもWebサーバ200と同様のハードウェア構成により実現できる。

0040

図5は、第1の実施の形態の負荷分散装置およびWebサーバの機能構成を示す図である。負荷分散装置100は、管理情報記憶部110、通信処理部120、メッセージ処理部130、振分サーバ決定部140、サーバ情報管理部150、起動指示部160および省電力化指示部170を有する。これらの機能は、CPU101が所定のプログラムを実行することで実現される。ただし、これらの機能の一部または全部を専用のハードウェアで実現してもよい。

0041

管理情報記憶部110は、Webサーバ200,300,400,500,・・・の管理情報を記憶する。管理情報には、サーバ名、IPアドレス、現在の稼動状況、負荷の状況などが含まれる。また、管理情報記憶部110は、リクエストの振分先の決定やサーバの起動停止などの判定に用いる負荷値に関する各種閾値の設定を記憶する。各閾値の設定は、管理者により、Webシステムの応答性を損なわない値が予め設定される。

0042

通信処理部120は、端末装置21からリクエストを受信する。そして、通信処理部120は、受信したリクエストを何れかのWebサーバに送信し、そのWebサーバからリクエストに応じたレスポンスを受信する。更に、通信処理部120は、受信したレスポンスを端末装置21に送信する。

0043

また、通信処理部120は、メッセージ処理部130から取得する各種メッセージをWebサーバ200,300,400,500,・・・に送信する。通信処理部120は、Webサーバ200,300,400,500,・・・から受信する各種メッセージをメッセージ処理部130に出力する。

0044

メッセージ処理部130は、各種メッセージの生成・編集を行う。また、メッセージ処理部130は、受信したメッセージに応じた処理の実行を負荷分散装置100の各部に指示する。具体的には、以下の処理を行う。

0045

(1)メッセージ処理部130は、通信処理部120が端末装置21からリクエストを受信すると、振分サーバ決定部140に振分先を決定させる。そして、リクエストの宛先を決定された振分先に編集して通信処理部120に出力する。また、振分先としたWebサーバの識別情報(サーバ名やIPアドレスなど)をサーバ情報管理部150に通知する。なお、通信処理部120が、このリクエストに対してWebサーバからレスポンスを受信すると、このレスポンスの送信先を端末装置21の宛先に編集して通信処理部120に出力する。

0046

(2)メッセージ処理部130は、通信処理部120がWebサーバ200,300,400,500,・・・から負荷の状況を示す情報(負荷通知メッセージ)を受信すると、その情報をサーバ情報管理部150に出力する。

0047

(3)メッセージ処理部130は、起動指示部160から省電力状態のWebサーバの起動指示を受け付けると、この指示に対応する該当サーバ宛のメッセージを生成し、通信処理部120に出力する。このメッセージを起動指示メッセージとよぶこととする。また、起動対象としたWebサーバの識別情報をサーバ情報管理部150に出力する。

0048

(4)メッセージ処理部130は、通信処理部120がWebサーバ200,300,400,500,・・・からWebサーバ200,300,400,500,・・・が実行すべき処理を全て完了した旨の通知(全処理完了メッセージ)を受け付けると、これを省電力化指示部170に出力する。また、これに応じて、省電力化指示部170から稼動状態のサーバの省電力状態への移行指示を受け付けると、この指示に対応する該当サーバ宛のメッセージを生成し、通信処理部120に出力する。このメッセージを省電力化指示メッセージとよぶこととする。また、移行対象のWebサーバの識別情報をサーバ情報管理部150に出力する。

0049

振分サーバ決定部140は、管理情報記憶部110に記憶された管理情報および閾値の情報に基づいて、端末装置21から受信したリクエストの振分先を決定する。
サーバ情報管理部150は、メッセージ処理部130から取得する情報に応じて管理情報記憶部110に記憶された管理情報を更新する。更新対象は、例えば、各Webサーバの負荷値、稼動状態/省電力状態、処理要求の振分順序を示す情報である。

0050

起動指示部160は、サーバ情報管理部150により管理情報記憶部110の負荷値が更新されると管理情報記憶部110に記憶された管理情報および閾値の情報に基づいて、省電力状態のWebサーバの起動の要否を判定する。起動が必要である場合、起動指示およびその対象となるWebサーバの識別情報をメッセージ処理部130に通知する。

0051

省電力化指示部170は、メッセージ処理部130を介してWebサーバ200,300,400,500,・・・の全処理完了通知を取得すると、管理情報記憶部110に記憶された管理情報および閾値の情報に基づいて、Webサーバ200,300,400,500,・・・の省電力状態への移行可否を判定する。省電力状態への移行が可能である場合、Webサーバ200,300,400,500,・・・の省電力状態への移行指示をメッセージ処理部130に出力する。

0052

Webサーバ200は、通信処理部210、メッセージ処理部220、負荷監視部230および省電力制御部240を有する。これらの機能は、CPU201が所定のプログラムを実行することで実現される。ただし、これらの機能の一部または全部を専用のハードウェアで実現してもよい。

0053

通信処理部210は、負荷分散装置100からのメッセージ(Webサービスに対するリクエストを含む)を受信し、メッセージ処理部220に出力する。また、通信処理部210は、メッセージ処理部220から取得する各種メッセージを負荷分散装置100に送信する。

0054

メッセージ処理部220は、各種メッセージの生成を行う。また、メッセージ処理部220は、受信したメッセージに応じた処理の実行をWebサーバ200の各部に指示する。具体的には、以下の処理を行う。

0055

(1)メッセージ処理部220は、通信処理部210が負荷分散装置100からリクエストを受信すると、該当のリクエストに対応するサービス処理部(図示せず)に、リクエストに応じた処理を実行させる。また、サービス処理部がリクエストに応じて生成したレスポンスを取得し、通信処理部210に出力する。

0056

(2)メッセージ処理部220は、負荷監視部230から負荷値情報を定期的に取得し、負荷分散装置100に負荷値を通知するメッセージを生成して通信処理部210に出力する。このメッセージを負荷通知メッセージとよぶこととする。

0057

(3)メッセージ処理部220は、通信処理部210が負荷分散装置100から起動指示メッセージを受信すると、省電力制御部240に省電力状態から稼動状態への移行を指示する。

0058

(4)メッセージ処理部220は、通信処理部210が負荷分散装置100から省電力化指示メッセージを受信すると、省電力制御部240に稼動状態から省電力状態への移行を指示する。

0059

(5)メッセージ処理部220は、負荷監視部230から負荷値が0になった旨の通知を受けると、負荷分散装置100にこの旨を通知するメッセージを生成して通信処理部210に出力する。このメッセージを全処理完了メッセージとよぶこととする。

0060

負荷監視部230は、Webサーバ200における負荷値を定期的に取得する。負荷監視部230は、例えば、Webサーバ200における負荷値を未処理のリクエストの数やCPU201の負荷に基づいて取得することができる。負荷監視部230は、取得した負荷値をメッセージ処理部220に出力する。また、負荷監視部230は、Webサーバ200における負荷値が0となった場合、その旨をメッセージ処理部220に通知する。

0061

省電力制御部240は、Webサーバ200の稼動状態および省電力状態を変更する。省電力制御部240は、メッセージ処理部220から省電力状態への移行を指示されると、Webサーバ200を稼動状態から省電力状態に移行させる(省電力化)。また、省電力制御部240は、メッセージ処理部220から稼動状態への移行を指示されると、Webサーバ200を省電力状態から稼動状態に移行させる(起動)。

0062

なお、Webサーバ300,400,500,・・・についても同様の機能構成により実現できる。
図6は、第1の実施の形態のサーバ管理テーブルの第1のデータ構造例を示す図である。サーバ管理テーブル111は、管理情報記憶部110に記憶される。サーバ管理テーブル111は、端末装置21,22,23から処理要求を受け付ける仮想サーバごとに負荷分散装置100に設けられる。ここで、仮想サーバは、負荷分散装置100で端末装置21,22,23からのリクエストを受け付けるための仮想的なサーバである。Webサーバ200,300,400,500,・・・が提供するサービスに対応付けられた仮想サーバ名を“System”、その仮想IPアドレスを“192.168.0.10”とする。他の仮想サーバが存在する場合は別個にサーバ管理テーブルを設ける。

0063

サーバ管理テーブル111には、サーバ名を示す項目、IPアドレスを示す項目、状態を示す項目、負荷値を示す項目、リクエスト振分順を示す項目および起動優先順位を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのサーバに関する情報を示す。

0064

サーバ名を示す項目には、サーバの名称が設定される。IPアドレスを示す項目には、該当のWebサーバのIPアドレスが設定される。状態を示す項目には、稼動状態であるか省電力状態であるかを示す情報が設定される。負荷値を示す項目には、各Webサーバの負荷値が設定される。リクエスト振分順を示す項目には、リクエストの割当順を示す情報が設定される。割当順を示す情報には、例えば、昇順の番号を用いることができる。この場合、番号が大きいWebサーバほど、前回リクエスト送信からの経過時間が短くなる。起動優先順位を示す項目には、Webサーバを起動させる場合の優先順位が設定される。優先順位は、例えば、稼動中の消費電力が低いWebサーバを優先するように順位付けすることができる。

0065

サーバ管理テーブル111には、例えばWebサーバ200の設定に基づき、サーバ名が“サーバA”、IPアドレスが“192.168.0.11”、状態が“稼動状態”、負荷値が“5”、リクエスト振分順が“4”、起動優先順位が“1”という情報が設定される。

0066

同様に、Webサーバ300の設定に基づき、“サーバB”の情報が設定される。また、Webサーバ400の設定に基づき、“サーバC”の情報が設定される。また、Webサーバ500の設定に基づき、“サーバD”の情報が設定される。その他のサーバに関しても同様である。

0067

ここで、“サーバA”に関する負荷値“5”は、処理が未完了のリクエストが5個存在することを示す。
また、リクエスト振分順に関して、Webサーバ200,300,400でそれぞれ“4”、“2”、“3”である。これは、Webサーバ200に直近にリクエストを振り分けたことを示す。その前にリクエストを振り分けたサーバは、Webサーバ400であり、この中で最も過去にリクエストを振り分けたサーバは、Webサーバ300である。

0068

起動優先順位に関して、Webサーバ200,300,400でそれぞれ“1”、“2”、“3”である。優先順位の番号が小さいほど、先に省電力状態から稼動状態に移行されることを示す。

0069

図7は、第1の実施の形態のサーバ管理テーブルの第2のデータ構造例を示す図である。サーバ管理テーブル111aは、管理情報記憶部110に記憶される。サーバ管理テーブル111aは、リクエスト振分順をリクエストを該当のWebサーバに対して最後に振り分けた時間により管理する点がサーバ管理テーブル111と異なる。

0070

サーバ管理テーブル111には、サーバ名を示す項目、IPアドレスを示す項目、状態を示す項目、負荷値を示す項目、リクエスト最終振分時刻を示す項目、起動優先順位を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのサーバに関する情報を示す。ここで、リクエスト最終振分時刻を示す項目以外の項目に関しては、サーバ管理テーブル111と同一の内容の情報が設定される。

0071

リクエスト最終振分時刻を示す項目には、該当のサーバに最後にリクエストを振り分けた時刻が設定される。
サーバ管理テーブル111aには、例えば“サーバA”に関して、リクエスト最終振分時刻が“10:00:00”という情報が設定される。また、例えば“サーバB”に関して、リクエスト最終振分時刻が“9:00:00”という情報が設定される。また、例えば“サーバC”に関して、リクエスト最終振分時刻が“9:30:00”という情報が設定される。すなわち、リクエストを振り分けた順は、直近のものから順にWebサーバ200,400,300の順となる。

0072

このように、リクエスト振分順を示す項目に対応する情報として、該当のWebサーバにリクエストを最後に振り分けた時刻(リクエスト最終振分時刻)を管理してもよい。
図8は、負荷閾値管理テーブルのデータ構造例を示す図である。閾値管理テーブル112は、管理情報記憶部110に記憶される。閾値管理テーブル112には、種別を示す項目、閾値を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの閾値に関する情報を示す。

0073

種別を示す項目には、閾値の用途の種別を示す情報が設定される。閾値を示す項目には、閾値とする負荷値が設定される。
閾値管理テーブル112には、例えば、種別が“状態移行判定用”、閾値が“10”という情報が設定される。この閾値を閾値L1とする。閾値L1は、Webサーバ200,300,400,500,・・・を省電力状態に移行してよいか否かの判定処理に用いられる。

0074

また、閾値管理テーブル112には、例えば、種別が“振分判定用”、閾値が“15”という情報が設定される。この閾値を閾値L2とする。閾値L2は、Webサーバ200,300,400,500,・・・の何れのサーバにリクエストを振り分けるかの判定処理に用いられる。

0075

なお、閾値L1には、閾値L2よりも小さい負荷値が設定される。なぜなら、閾値L1は、処理要求を集中させているWebサーバの負荷値が閾値L2以上となった場合にも応答が遅延しないよう、予め他のWebサーバを稼動状態としておくための判定に用いる値だからである。

0076

次に、以上のような構成を有する負荷分散装置100の処理に関して説明する。なお、以下では、サーバ管理テーブル111を用いて負荷分散処理やその他の処理を行う場合を説明する。

0077

図9は、メッセージ受信処理の手順を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
[ステップS1]通信処理部120は、メッセージ(端末装置21,22,23からの仮想サーバに対するリクエストを含む)を受信する。通信処理部120は、受信したメッセージをメッセージ処理部130に出力する。

0078

[ステップS2]メッセージ処理部130は、通信処理部120から取得したメッセージがWebサービスに対するリクエストであるか否かを判定する。リクエストである場合、処理がステップS3に移される。リクエストでない場合、処理がステップS4に移される。メッセージ処理部130は、例えば、受信したリクエストが仮想サーバに対するものであるか否かを判定することで、上記のWebサービスに対するリクエストであるか否かを判定できる。

0079

[ステップS3]メッセージ処理部130は、振分サーバ決定部140にリクエストの振分先を決定させる。そして、メッセージ処理部130は、決定された振分先を宛先として通信処理部140にリクエストを出力する。通信処理部140は、メッセージ処理部130から取得するリクエストを宛先のWebサーバに送信する。

0080

[ステップS4]メッセージ処理部130は、通信処理部120から取得したメッセージがWebサーバ200,300,400,500,・・・からの負荷通知メッセージであるか否かを判定する。負荷通知メッセージである場合、処理がステップS5に移される。負荷通知メッセージでない場合、処理がステップS7に移される。

0081

[ステップS5]メッセージ処理部130は、Webサーバ200,300,400,500,・・・からの負荷通知メッセージに基づいて、各サーバの負荷値を取得する。そして、取得した負荷値をサーバ情報管理部150に出力する。サーバ情報管理部150は、メッセージ処理部130から取得する各サーバの負荷値により、管理情報記憶部110に記憶されたサーバ管理テーブル111を更新する。

0082

[ステップS6]起動指示部160は、サーバ情報管理部150により管理情報記憶部110に記憶されたサーバ管理テーブル111が更新されると、サーバ起動処理を行う。
[ステップS7]メッセージ処理部130は、通信処理部120から取得したメッセージがWebサーバ200,300,400,500,・・・からの全処理完了メッセージであるか否かを判定する。全処理完了メッセージである場合、処理がステップS8に移される。全処理完了メッセージでない場合、処理が完了する。

0083

[ステップS8]メッセージ処理部130は、省電力化指示部170に全処理完了メッセージの送信元サーバの識別情報を通知する。省電力化指示部170は、メッセージ処理部130から取得する識別情報と、管理情報記憶部110に記憶されたサーバ管理テーブル111および閾値管理テーブル112に基づいて、該当のWebサーバの省電力状態への移行可否を判定し、判定結果をメッセージ処理部130に通知する。メッセージ処理部130は、判定結果が移行可能であれば、全処理完了メッセージの送信元サーバに対する省電力化指示メッセージを生成し、通信処理部120に出力する。通信処理部120は、メッセージ処理部130から取得した省電力化指示メッセージを該当のWebサーバに送信する。

0084

このように、負荷分散装置100は、受信したメッセージの内容に応じた処理を行う。端末装置21,22,23からWebサーバに対するリクエストを受信すると、リクエストの振分処理を行う。Webサーバ200,300,400から負荷通知メッセージを受信すると、サーバ管理テーブル111の負荷値を更新し、サーバ起動処理を行う。Webサーバ200,300,400,500,・・・から全処理完了メッセージを受信すると、サーバ省電力化処理を行う。

0085

次に、上記ステップS3,S6,S8の処理に関して更に詳細に説明する。
図10は、第1の実施の形態のリクエスト振分処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。なお、以下に示す処理内容は、図9のステップS3の処理を詳細に示すものである。

0086

[ステップS11]振分サーバ決定部140は、メッセージ処理部130から仮想サーバ“System”に対するリクエストを取得する。
[ステップS12]振分サーバ決定部140は、管理情報記憶部110に記憶された仮想サーバ名“System”に対応するサーバ管理テーブル111を特定する。振分サーバ決定部140は、管理情報記憶部110に記憶された閾値管理テーブル112の閾値L2を参照し、サーバ管理テーブル111の各サーバの負荷値と閾値L2とを比較する。

0087

[ステップS13]振分サーバ決定部140は、負荷値が閾値L2より小さいサーバを抽出する。図6,7の例では、サーバA,Cが抽出される。
[ステップS14]振分サーバ決定部140は、サーバ管理テーブル111のリクエスト割当順を参照して、抽出したサーバのうち直近にリクエストを送信したサーバを特定する。すなわち、サーバAを特定する。

0088

[ステップS15]振分サーバ決定部140は、特定したサーバをリクエストの振分先と決定し、その旨をメッセージ処理部130に通知する。メッセージ処理部130は、振分サーバ決定部140が決定した振分先を宛先としたリクエストを通信処理部120に出力する。通信処理部120は、該当宛先のサーバに対してリクエストを送信する。すなわち、サーバA(Webサーバ200)に対してリクエストを送信する。

0089

[ステップS16]メッセージ処理部130は、宛先としたWebサーバの識別情報をサーバ情報管理部150に通知する。サーバ情報管理部150は、管理情報記憶部110に記憶されたサーバ管理テーブル111のリクエスト送信順を参照して、通知されたWebサーバが前回のリクエストの振分先と同じであるか否かを判定する。同じである場合、処理が完了する。異なる場合、処理がステップS17に移される。

0090

[ステップS17]サーバ情報管理部150は、サーバ管理テーブル111において、今回リクエストの振分先としたWebサーバのリクエスト割当順を更新する。すなわち、リクエスト割当順に他のサーバで“3”までが設定されている場合、サーバAに“4”が設定される。

0091

このように、振分サーバ決定部140は、Webサービスに対するリクエストを受信すると、各サーバの負荷値と閾値L2とを比較し、負荷値が閾値L2よりも小さいWebサーバを抽出する。そして、負荷値が閾値L2よりも小さいWebサーバのうち、前回リクエストの振分先として、リクエスト送信した時点からの経過時間が最も短いWebサーバを今回のリクエストの振分先と決定する。

0092

なお、上記ステップS14において、サーバ管理テーブル111aを用いる場合には、振分サーバ決定部140は、リクエスト最終振分時刻が最新のサーバを特定する。すなわち、サーバAを特定する。この場合、上記ステップS17では、サーバ情報管理部150は、サーバ管理テーブル111aに今回リクエストの振分先としたWebサーバのリクエスト最終振分時刻を更新する。

0093

図11は、サーバ起動処理の手順を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。なお、以下に示す処理内容は、図9のステップS6の処理を詳細に示すものである。

0094

[ステップS21]起動指示部160は、管理情報記憶部110に記憶されたサーバ管理テーブル111を参照して、各サーバの負荷値を取得する。
[ステップS22]起動指示部160は、管理情報記憶部110に記憶された閾値管理テーブル112の閾値L1を参照し、サーバ管理テーブル111の各サーバの負荷値と閾値L1とを比較する。

0095

[ステップS23]起動指示部160は、負荷値が閾値L1未満のWebサーバが存在するか否かを判定する。存在する場合、処理が完了する。存在しない場合、処理がステップS24に移される。

0096

[ステップS24]起動指示部160は、サーバ管理テーブル111の起動優先順位を参照して、省電力状態であり起動が最優先されるWebサーバの識別情報を取得する。起動指示部160は、特定したWebサーバに対して起動指示を送信するようメッセージ処理部130に通知する。メッセージ処理部130は、通知されたWebサーバに対する起動指示メッセージを生成し、通信処理部120に出力する。通信処理部120は、メッセージ処理部130から取得する起動指示メッセージを該当のWebサーバに送信する。

0097

[ステップS25]メッセージ処理部130は、起動指示メッセージの宛先としたWebサーバの識別情報をサーバ情報管理部150に通知する。サーバ情報管理部150は、管理情報記憶部110に記憶されたサーバ管理テーブル111の通知された識別情報に対応するWebサーバの状態を省電力状態から稼動状態へ更新する。

0098

このように、起動指示部160は、負荷値が閾値L1未満のWebサーバが1台も存在しない場合には、起動優先順位に基づいて省電力状態のWebサーバを起動させる。
図12は、サーバ停止処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。なお、以下に示す処理内容は、図9のステップS8の処理を詳細に示すものである。

0099

[ステップS31]省電力化指示部170は、メッセージ処理部130から全処理完了メッセージの送信元のWebサーバの識別情報を取得する。
[ステップS32]省電力化指示部170は、管理情報記憶部110に記憶されたサーバ管理テーブル111を参照して、各サーバの負荷値を取得する。

0100

[ステップS33]省電力化指示部170は、管理情報記憶部110に記憶された閾値管理テーブル112の閾値L1を参照し、サーバ管理テーブル111の各サーバの負荷値と閾値L1とを比較する。

0101

[ステップS34]省電力化指示部170は、上記ステップS31で取得した識別情報以外のWebサーバで負荷値が閾値L1未満のWebサーバが存在するか否かを判定する。存在する場合、処理がステップS35に移される。存在しない場合、処理が完了する。

0102

[ステップS35]省電力化指示部170は、全処理完了メッセージの送信元のWebサーバを省電力状態へと移行可能と決定し、この旨をメッセージ処理部130に通知する。メッセージ処理部130は、全処理完了メッセージの送信元のWebサーバに対する省電力化指示メッセージを生成し、通信処理部120に出力する。通信処理部120は、メッセージ処理部130から取得した省電力化指示メッセージを該当のWebサーバに送信する。

0103

[ステップS36]メッセージ処理部130は、省電力化指示メッセージの宛先としたWebサーバの識別情報をサーバ情報管理部150に通知する。サーバ情報管理部150は、管理情報記憶部110に記憶されたサーバ管理テーブル111の通知された識別情報に対応するWebサーバの状態を稼動状態から省電力状態へ更新する。

0104

このように、省電力化指示部170は、Webサーバからの全処理完了メッセージを受信すると、負荷値が閾値L1未満のWebサーバがメッセージ送信元のWebサーバ以外に存在するかを判定する。負荷値が閾値L1未満のWebサーバが1台以上存在する場合、メッセージ処理部130は、全処理完了メッセージの送信元のWebサーバに対して省電力化指示メッセージを生成し、通信処理部120を介して送信する。

0105

以下、上記負荷分散システムの処理の流れを具体的に説明する。
図13は、Webシステムの第1の状態例を示す図である。この第1の状態例は、図6に示すサーバ管理テーブル111で示される状態に対応する。ただし、Webサーバ500を含むその他のサーバは省略する。

0106

Webサーバ200,300,400の負荷値について、次の場合を想定する。Webサーバ200の負荷値は、閾値L1より小さい。Webサーバ300の負荷値は、閾値L2より大きい。Webサーバ400の負荷値は、閾値L1より大きく、閾値L2より小さい。また、負荷分散装置100によるリクエストの振分先はWebサーバ200である。

0107

この状態で、Webシステムに対するリクエストが減少すると、負荷分散装置100は、Webサーバ200を残し、Webサーバ300,400を効率的に省電力状態とすることができる。

0108

図14は、サーバ停止の流れを示すシーケンス図である。以下、図14に示す処理をステップ番号に沿って説明する。なお、以下の内容は、図13に示した状態を起点に実行される処理を例示している。

0109

[ステップS101]負荷分散装置100は、Webサーバ200,300,400から負荷通知メッセージを受信する。負荷分散装置100は、受信した負荷通知メッセージに基づいて、管理情報記憶部110に記憶されたサーバ管理テーブル111の負荷値を更新する。その後、負荷分散装置100が受け付けるリクエストの量は減少し、Webサーバ200の負荷値の増大もなくなり、Webサーバ300,400の負荷値は次第に減少する。

0110

[ステップS102]負荷分散装置100は、Webサーバ400から全処理完了メッセージを受信する。
[ステップS103]負荷分散装置100は、Webサーバ400以外にWebサーバ200の負荷値が閾値L1よりも小さいと判定する。そして、負荷分散装置100は、Webサーバ400に省電力化指示メッセージを送信する。Webサーバ400は、この省電力化指示メッセージを受信すると、稼動状態から省電力状態へ移行する。

0111

[ステップS104]負荷分散装置100は、Webサーバ300から全処理完了メッセージを受信する。
[ステップS105]負荷分散装置100は、Webサーバ300以外にWebサーバ200の負荷値が閾値L1よりも小さいと判定する。そして、負荷分散装置100は、Webサーバ300に省電力化指示メッセージを送信する。Webサーバ300は、この省電力化指示メッセージを受信すると稼動状態から省電力状態へ移行する。

0112

[ステップS106]負荷分散装置100は、端末装置21からリクエストを受信する。
[ステップS107]負荷分散装置100は、受信したリクエストをWebサーバ200に送信する。以降、リクエストの量が増大してWebサーバ200の負荷値が閾値L1以上とならない限り、WebシステムはWebサーバ200のみが稼動状態となり、Webサーバ300,400は省電力状態を維持する。

0113

図15は、Webシステムの第2の状態例を示す図である。この第2の状態例は、図14のステップS107以降のWebシステムの状態を示している。
このように、システムの利用量が少ない場合には、応答性能を損なわない最低限のサーバのみを稼動状態とし、他のサーバを省電力状態として運用することができる。このとき、省電力状態に移行するために各サーバの処理の委譲等を行う必要がないので、このための処理負荷によりWebシステムの応答性が損なわれることもない。

0114

次に、この状態からWebシステムに対するリクエストの量が増加していく場合を説明する。
図16は、サーバ起動の流れを示すシーケンス図である。以下、図16に示す処理をステップ番号に沿って説明する。なお、以下の内容は、図15に示した状態を起点に実行される処理を例示している。

0115

[ステップS111]負荷分散装置100は、Webサーバ200から負荷通知メッセージを受信する。負荷分散装置100は、受信した負荷通知メッセージに基づいて、管理情報記憶部110に記憶されたサーバ管理テーブル111のサーバAの負荷値を更新する。この時点では、サーバAの負荷値は、閾値L1未満であるとする。

0116

[ステップS112]負荷分散装置100は、端末装置21からリクエスト群を受信する。
[ステップS113]負荷分散装置100は、受信したリクエスト群をWebサーバ200に送信する。

0117

[ステップS114]負荷分散装置100は、Webサーバ200から負荷通知メッセージを受信する。負荷分散装置100は、受信した負荷通知メッセージに基づいて、管理情報記憶部110に記憶されたサーバ管理テーブル111のサーバAの負荷値を更新する。この時点で、サーバAの負荷値は、閾値L1以上になるとする。

0118

[ステップS115]負荷分散装置100は、管理情報記憶部110に記憶されたサーバ管理テーブル111を参照して、省電力状態のWebサーバのうち、起動優先順位の最も高いWebサーバ300に起動指示メッセージを送信する。Webサーバ300は、起動指示メッセージを受信すると、省電力状態から稼動状態へ移行する。

0119

[ステップS116]負荷分散装置100は、Webサーバ200,300から負荷通知メッセージを受信する。負荷分散装置100は、受信した負荷通知メッセージに基づいて、管理情報記憶部110に記憶されたサーバ管理テーブル111のサーバA,Bの負荷値を更新する。この時点では、サーバAの負荷値は、閾値L1以上閾値L2未満であるとする。なお、サーバBの負荷値は、この時点ではリクエストは全てサーバAに集中されるので、0である。

0120

[ステップS117]負荷分散装置100は、端末装置21からリクエスト群を受信する。
[ステップS118]負荷分散装置100は、受信したリクエスト群をWebサーバ200に送信する。

0121

[ステップS119]負荷分散装置100は、Webサーバ200から負荷通知メッセージを受信する。負荷分散装置100は、受信した負荷通知メッセージに基づいて、管理情報記憶部110に記憶されたサーバ管理テーブル111のサーバA,Bの負荷値を更新する。この時点で、サーバAの負荷値は、閾値L2以上であるとする。なお、サーバBの負荷値は、この時点ではリクエストは全てサーバAに集中されるので、0である。

0122

[ステップS120]負荷分散装置100は、端末装置21からリクエスト群を受信する。
[ステップS121]負荷分散装置100は、受信したリクエスト群をWebサーバ300に送信する。

0123

図17は、Webシステムの第3の状態例を示す図である。この第3の状態例は、図16のステップS121直後のWebシステムの状態を示している。Webサーバ200の負荷値は閾値L2以上となっており、Webサーバ300の負荷値は閾値L1未満である。このため、負荷分散装置100は、端末装置21からのリクエストをWebサーバ300に集中する。

0124

このように、Webサーバ200の負荷値が閾値L1を超えた場合には、Webサーバ300を予め稼動状態に移行させておく。このため、Webシステムへのリクエストが増加して、Webサーバ200の負荷値が閾値L2を超えた場合にも、Webサーバ300にスムーズにリクエストを振り分けることができ、Webシステムの応答性を損なうことがない。

0125

この状態から更に時間が経過すると、Webサーバ200,300の負荷値に応じて、このWebシステムは次の2通りの状態を取り得る。
図18は、Webシステムの第4の状態例を示す図である。(A)は更にWebサーバ400を稼動状態にする場合、(B)はWebサーバ400を省電力状態のままとする場合である。

0126

(A)では、リクエストを集中させているWebサーバ300の負荷値が閾値L1以上となったとき、Webサーバ200の負荷値が閾値L1以上である場合である。この場合、負荷分散装置100は、Webサーバ400に対し、起動指示メッセージを送信してWebサーバ400を省電力状態から稼動状態に移行させる。

0127

(B)では、リクエストを集中させているWebサーバ300の負荷値が閾値L1以上となったとき、Webサーバ200の負荷値が閾値L1未満である場合である。この場合、負荷分散装置100は、Webサーバ400を省電力状態のままとする。負荷分散装置100は、リクエストの量が増大して、Webサーバ300の負荷値が閾値L2以上となった場合には、Webサーバ200へリクエストを集中させることになる。

0128

このように、負荷分散装置100は、Webシステムの利用量に応じて効率的にWebサーバ200,300,400,500,・・・の稼動状態および省電力状態を変更することができる。これにより、Webシステムの応答性を損なうことなく省電力化を図ることができる。

0129

以上、説明したように負荷分散装置100は、負荷値が閾値L2よりも小さいWebサーバを選択し、選択したWebサーバの負荷値が閾値L2に達するまで、このWebサーバをリクエストの振分先と決定する。これにより、それ以外のWebサーバの負荷を低減させる。このため、システムの利用量が少ない場合には、リクエストを集中させているWebサーバ以外のサーバの負荷はやがて0となり、処理の委譲などを伴わずに、これらのサーバを省電力状態へ移行できる。

0130

負荷分散装置100は、負荷値が閾値L2よりも小さいサーバのうち、直近にリクエストを振り分けたサーバをリクエスト振分先と決定する。これにより、過去にリクエストを振り分けたサーバほどリクエストの振り分け対象とはなり難くなるので、そのサーバの負荷を効率的に低減させることができる。

0131

このために負荷分散装置100は、各Webサーバにつきリクエストの振分先とした順序やリクエストの最終振分時間を管理する。これにより、負荷分散装置100は、リクエストを集中させるサーバを効率的に特定できる。

0132

[第2の実施の形態]
以下、第2の実施の形態を図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。

0133

第2の実施の形態では、負荷分散装置は、各サーバが振り分けられたリクエストに応じて実行すべき処理に要する時間に基づきリクエストの振分先の決定等を行う、という点が第1の実施の形態と異なる。この点、第1の実施の形態では、各サーバで未処理のリクエスト数や処理の振分順に基づいて決定するものとした。これに対し、第2の実施の形態では各リクエストの処理時間が異なる場合にも適正にサーバの負荷を把握可能とする。

0134

第2の実施の形態に係る負荷分散システムは、図2に示した第1の実施の形態に係る負荷分散システムと同様のシステム構成によって実現できる。また、第2の実施の形態に係る負荷分散装置およびWebサーバは、図3,4に示した第1の実施の形態に係る負荷分散装置100およびWebサーバ200と同様のハードウェア構成によって実現できる。

0135

図19は、第2の実施の形態の負荷分散装置およびWebサーバの機能構成を示す図である。負荷分散装置100aは、管理情報記憶部110a、通信処理部120、メッセージ処理部130、振分サーバ決定部140a、サーバ情報管理部150、起動指示部160および省電力化指示部170を有する。ここで、通信処理部120、メッセージ処理部130、サーバ情報管理部150、起動指示部160および省電力化指示部170は、図5の負荷分散装置100において同一の符号を付して説明した構成と同一である。

0136

管理情報記憶部110aは、図5の管理情報記憶部110に対応する。ただし、管理情報記憶部110aが記憶する管理情報は、Webサーバ200a,300a,400a,500a,・・・に振り分けられたリクエストの処理時間に即したものである。具体的な内容は図20で説明する。

0137

振分サーバ決定部140aは、図5の振分サーバ決定部140に対応する。振分サーバ決定部140aは、管理情報記憶部110aに記憶された管理情報および閾値の情報に基づいて、端末装置21から受信したリクエストの振分先を決定する。

0138

Webサーバ200aは、通信処理部210、メッセージ処理部220a、負荷監視部230、省電力制御部240および処理時間見積部250を有する。ここで、通信処理部210、負荷監視部230および省電力制御部240は、図5のWebサーバ200において同一の符号を付して説明した構成と同一である。

0139

メッセージ処理部220aは、図5のメッセージ処理部220に対応する。メッセージ処理部220aは、メッセージ処理部220の機能に加えて、処理時間見積部250から取得する全処理完了予定時刻の情報に基づき、これを通知するメッセージを生成する。このメッセージを完了予定時刻メッセージとよぶこととする。メッセージ処理部220aは、生成した完了予定時刻メッセージを通信処理部210を介して負荷分散装置100aに送信する。

0140

処理時間見積部250は、振り分けられたリクエストの処理時間を見積もる。処理時間見積部250は、同じ処理内容のリクエストの処理に要した時間を平均して各リクエストの処理時間を算出する。処理時間見積部250は、各リクエストの処理終了ごとに、該当のリクエストの処理時間を更新し、管理する。そして、処理時間見積部250は、通信処理部210が新たなリクエストを受信すると、このリクエストを含め未処理のリクエストが全て処理完了となる予定時刻(全処理完了予定時刻)の情報をメッセージ処理部220aに出力する。

0141

ここで、処理時間見積部250は、Webサーバ200aが現時点でリクエストの振り分け対象になっている場合には、余計な負荷を発生させないために処理時間の見積処理を行わないことが望ましい。このため、処理時間見積部250は、例えば、所定の時間だけリクエストが新規に振り分けられていないことを検知する。すなわち、リクエストの振り分け対象が別のWebサーバに変更された際に、処理時間の見積処理を開始することが考えられる。このようにすると、安定した状態で適正に処理時間の計算ができると共に、リクエスト受信時のような高負荷時に処理時間の計算による余計な負荷を生じさせることがない。

0142

なお、Webサーバ300a,400a,500a,・・・に関してもWebサーバ200aと同様の機能構成により実現できる。
図20は、第2の実施の形態のサーバ管理テーブルのデータ構造例を示す図である。サーバ管理テーブル111bは、管理情報記憶部110aに記憶される。サーバ管理テーブル111bには、サーバ名を示す項目、IPアドレスを示す項目、状態を示す項目、負荷値を示す項目、全処理完了予定時刻を示す項目、起動優先順位を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのWebサーバの情報を示す。

0143

サーバ名を示す項目、IPアドレスを示す項目、状態を示す項目、負荷値を示す項目および起動優先順位を示す項目は、図6のサーバ管理テーブル111の同じ名称の項目と同一の情報が設定される。全処理完了予定時刻を示す項目には、各サーバにおいて振り分けられたリクエストの処理が全て完了する予定時刻が設定される。

0144

サーバ管理テーブル111bには、例えば、“サーバA”に対して、全処理完了予定時刻が“10:30:00”という情報が設定される。
次に、以上のような構成を有する負荷分散装置100aの処理に関して説明する。

0145

ここで、負荷分散装置100aのメッセージ受信処理の手順は、図9に示した負荷分散装置100のメッセージ受信処理の手順と同様である。ただし、ステップS3のリクエスト振分処理の手順が異なる。

0146

図21は、第2の実施の形態のリクエスト振分処理の手順を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS41]振分サーバ決定部140aは、メッセージ処理部130から仮想サーバ“System”に対するリクエストを取得する。

0147

[ステップS42]振分サーバ決定部140aは、管理情報記憶部110aに記憶された仮想サーバ名“System”に対応するサーバ管理テーブル111bを特定する。振分サーバ決定部140は、管理情報記憶部110aに記憶された閾値管理テーブル112の閾値L2を参照し、サーバ管理テーブル111bの各サーバの負荷値と閾値L2とを比較する。

0148

[ステップS43]振分サーバ決定部140aは、負荷値が閾値L2より小さいサーバを抽出する。図8,19の例では、サーバB,Cが抽出される。
[ステップS44]振分サーバ決定部140aは、サーバ管理テーブル111bの全処理完了予定時刻を参照して、抽出したサーバのうち最も遅く全処理が完了するサーバを特定する。すなわち、サーバBが特定される。

0149

[ステップS45]振分サーバ決定部140aは、特定したサーバをリクエストの振分先と決定し、その旨をメッセージ処理部130に通知する。メッセージ処理部130は、振分サーバ決定部140aが決定した振分先を宛先としたリクエストを通信処理部120に出力する。通信処理部120は、該当宛先のサーバに対してリクエストを送信する。すなわち、サーバB(Webサーバ300a)に対してリクエストを送信する。

0150

[ステップS46]通信処理部120は、リクエストを送信したWebサーバ300から完了予定時刻メッセージを受信する。通信処理部120は、受信した完了予定時刻メッセージをメッセージ処理部130に出力する。

0151

[ステップS47]メッセージ処理部130は、通信処理部120から取得する完了予定時刻メッセージに基づき、Webサーバ300aの全処理完了予定時刻を取得する。メッセージ処理部130は、取得した全処理完了予定時刻をサーバ情報管理部150に通知する。サーバ情報管理部150は、通知された内容に基づいて、管理情報記憶部110aに記憶されたサーバ管理テーブル111bの全処理完了予定時刻の情報を更新する。

0152

このように、振分サーバ決定部140aは、Webサービスに対するリクエストを受信すると、各サーバの負荷値と閾値L2とを比較し、負荷値が閾値L2よりも小さいWebサーバを抽出する。そして、負荷値が閾値L2よりも小さいWebサーバのうち、前回リクエストの振分先として、全処理完了予定時刻の最も遅いWebサーバを今回のリクエストの振分先と決定する。

0153

これにより、第1の実施の形態と同様の効果を得ることができると共に、第1の実施の形態よりも、実際のサーバの負荷をより反映してリクエストの振分が行える。例えば、各リクエストの処理時間が異なる場合にも適正にサーバの負荷を把握してリクエストを振り分けることができる。

0154

なお、負荷値を示す項目には、未完了のリクエスト数を設定するものとしたが、これに限らない。例えば、CPU負荷、IO(Input / Output)負荷およびディスク負荷などを考慮した指数を各Webサーバから受け付け、これを負荷値として用いることが考えられる。負荷値にこのような指数を用いることで、各Webサーバの実際の負荷をより反映してリクエスト振分対象や稼動/省電力化対象を決定できる。なお、負荷値をこのような指数とする場合、閾値管理テーブル112に設定される閾値L1,L2もそれに応じて変更する。

0155

以上、説明したように負荷分散装置100aは、負荷値が閾値L2よりも小さいWebサーバを選択し、選択したWebサーバの負荷値が閾値L2に達するまで、このWebサーバをリクエストの振分先と決定する。これにより、それ以外のWebサーバの負荷を低減させる。このため、システムの利用量が少ない場合には、リクエストを集中させているWebサーバ以外のサーバの負荷はやがて0となり、処理の委譲などを伴わずに、これらのサーバを省電力状態へ移行できる。

0156

負荷分散装置100aは、負荷値が閾値L2よりも小さいサーバのうち、振り分けられたリクエストに応じた処理を全て完了する予定時刻が最も遅いサーバをリクエスト振分先と決定する。これにより、また、実際のサーバの負荷をより反映したリクエストの振分が行える。各リクエストの処理時間が異なる場合にも適正にサーバの負荷を把握してリクエストを振り分けることができる。

0157

なお、上記の負荷分散装置の機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置光ディスク光磁気記録媒体半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスクFD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。

0158

プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体販売される。また、プログラムをサーバコンピュータ記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。

0159

プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。

0160

以上、本件の負荷分散装置、負荷分散方法および負荷分散プログラムを図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。

0161

以上、説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照し、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理装置を、取得した処理要求の振分先と決定する制御部と、
前記制御部が決定した前記振分先に前記処理要求を送信する送信部と、
を有することを特徴とする負荷分散装置。

0162

(付記2) 前記制御部は、前記複数の情報処理装置のうち、前記負荷値が前記所定の閾値より小さく、かつ、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を前記処理要求の振分先と決定することを特徴とする付記1記載の負荷分散装置。

0163

(付記3) 前記制御部は、前記複数の情報処理装置それぞれに対し前記処理要求の振分先とした順序を示す振分順序情報を記憶する振分順序情報記憶部を参照して、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を特定する、
ことを特徴とする付記2記載の負荷分散装置。

0164

(付記4) 前記制御部は、前記複数の情報処理装置それぞれに対し前記処理要求の振分先とした最新の時刻を示す振分時刻情報を記憶する振分時刻情報記憶部を参照して、前記処理要求を前回送信した時点から現時点までの経過時間が最も短い情報処理装置を特定する、
ことを特徴とする付記2記載の負荷分散装置。

0165

(付記5) 前記複数の情報処理装置それぞれから前記処理要求に応じた処理の完了予定時刻を示す完了時刻情報を受信し、前記複数の情報処理装置それぞれの識別情報と当該完了時刻情報とを対応付けて完了時刻情報記憶部に格納する完了時刻情報受信部を更に有し、
前記制御部は、前記完了時刻情報記憶部に記憶された前記完了時刻情報に基づいて、前記負荷値が前記所定の閾値より小さく、かつ、前記完了予定時刻が最も遅い情報処理装置を前記処理要求の振分先と決定する、
ことを特徴とする付記1記載の負荷分散装置。

0166

(付記6) 前記複数の情報処理装置それぞれから、各情報処理装置に振り分けられた処理要求のうち、処理が未完了の処理要求の数を前記負荷値として受信し、前記複数の情報処理装置それぞれの識別情報と受信した前記負荷値とを対応付けて前記負荷情報記憶部に格納する負荷情報受信部を更に有し、
前記制御部は、前記負荷情報記憶部に記憶された前記負荷値に基づいて、当該負荷値が前記所定の閾値よりも小さい情報処理装置を特定する、
ことを特徴とする付記1乃至5の何れかに記載の負荷分散装置。

0167

(付記7) 前記複数の情報処理装置それぞれから、各情報処理装置におけるハードウェアデバイスの負荷を示す値を前記負荷値として受信し、前記複数の情報処理装置それぞれの識別情報と受信した前記負荷値とを対応付けて前記負荷情報記憶部に格納する負荷情報受信部を更に有し、
前記制御部は、前記負荷情報記憶部に記憶された前記負荷値に基づいて、当該負荷値が前記所定の閾値よりも小さい情報処理装置を特定する、
ことを特徴とする付記1乃至5の何れかに記載の負荷分散装置。

0168

(付記8) 前記複数の情報処理装置それぞれから前記処理要求に応じた処理を全て完了した旨の通知を受信する全処理完了通知受信部を更に有し、
前記全処理完了通知受信部が前記通知を受信すると、前記所定の閾値より小さい省電判定用閾値を記憶する省電力判定用閾値記憶部と前記負荷情報記憶部を参照し、前記複数の情報処理装置のうち、当該通知の送信元の情報処理装置以外で、前記負荷値が前記省電力判定用閾値より小さい情報処理装置が存在するか否かを判定し、当該情報処理装置が存在する場合、前記通知の送信元の情報処理装置に省電力状態への移行を指示する省電力化指示部と、
を更に有することを特徴とする付記1乃至7の何れかに記載の負荷分散装置。

0169

(付記9) 所定のタイミングで、前記負荷情報記憶部を参照し、前記複数の情報処理装置のうち、前記負荷値が前記省電力判定用閾値よりも小さい情報処理装置が存在するか否かを判定し、当該情報処理装置が存在しない場合、省電力状態の情報処理装置を稼動状態に起動させる起動指示部を更に有することを特徴とする付記8記載の負荷分散装置。

0170

(付記10) 前記起動指示部は、省電力状態の情報処理装置が複数存在する場合、省電力状態の情報処理装置のうち、稼動状態における消費電力の小さい情報処理装置を優先して起動させることを特徴とする付記9記載の負荷分散装置。

0171

(付記11)負荷分散装置の負荷分散方法であって、
複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照して、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、
選択した当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理を、取得した処理要求の振分先と決定し、
決定した前記振分先に前記処理要求を送信する、
ことを特徴とする負荷分散方法。

0172

(付記12)コンピュータに、
複数の情報処理装置それぞれの負荷値を記憶する負荷情報記憶部を参照して、前記複数の情報処理装置のうち、前記負荷値が所定の閾値よりも小さい情報処理装置を選択し、
選択した当該情報処理装置の前記負荷値が前記所定の閾値に達するまで、当該情報処理を、取得した処理要求の振分先と決定し、
決定した前記振分先に前記処理要求を送信する、
処理を実行させることを特徴とする負荷分散プログラム。

0173

(付記13)負荷分散装置から受信した処理要求に応じた処理を実行する処理部と、
前記処理部が前記負荷分散装置から受信した全ての処理要求に応じた処理を完了すると、当該完了した旨を示す完了通知を前記負荷分散装置に送信する送信部と、
前記送信部が送信した完了通知に応じて、前記負荷分散装置から省電力化指示を受信する受信部と、
前記受信部が前記省電力化指示を受信すると、自装置を稼動状態から省電力状態に移行させる省電力制御部と、
を有することを特徴とする情報処理装置。

0174

1負荷分散装置
1a 受信部
1b 制御部
1c 送信部
2,3,4情報処理装置
5 処理要求

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ