(57)【要約】【課題】稼働中の負荷分散システムを停止させずに、その負荷分散システムに使用されるサーバの性能計測を高精度で行うこと。【解決手段】コンピュータは、性能測定対象サーバの優先順位を高く、その他のサーバの優先順位を低く設定した優先順位による負荷分散を行い、性能測定対象サーバのＣＰＵ負荷等を確認しながら、性能測定対象サーバに分配する処理量の上限を少しずつ上げる。ＣＰＵ負荷等があらかじめ設定した許容上限に達した時に性能測定対象サーバに分配している処理量が当該サーバの処理能力となるので、その値を記録する。【選択図】図８
2007179246.tif 000002
【特許請求の範囲】
【請求項１】
負荷分散管理テーブルに基づいて分配されたリクエストを実行する複数のサーバにおいて、性能測定対象である第１サーバの処理能力を測定する計算機管理方法であって、
コンピュータが、
リクエストを実行中である第２サーバよりも、前記第１サーバにリクエストが優先的に割り当てられるように、記憶手段に格納された前記負荷分散管理テーブルを変更する優先度制御手順と、
前記第１サーバの性能が所定の許容上限に達した時点の処理量を、前記第１サーバの処理能力として記録する負荷状況監視手順と、
を実行することを特徴とする計算機管理方法。
【請求項２】
前記負荷分散管理テーブルは、サーバごとに処理量の上限を格納し、前記第１サーバの処理量の上限を超えるリクエストについては、前記第２サーバに割り当てられるように構成されることを特徴とする請求項１に記載の計算機管理方法。
【請求項３】
前記負荷分散管理テーブルは、前記第１サーバの処理量の上限の初期値を、性能測定開始前の前記第１サーバの処理量とすることを特徴とする請求項２に記載の計算機管理方法。
【請求項４】
前記優先度制御手順は、前記負荷状況監視手順において前記第１サーバの処理能力を記録した後に、前記第１サーバにリクエストが割り当てられないように、前記負荷分散管理テーブルを変更することを特徴とする請求項１ないし請求項３のいずれか１項に記載の計算機管理方法。
【請求項５】
前記負荷状況監視手順は、前記第１サーバの性能が所定の許容上限に達したか否かを、前記第１サーバに関するＣＰＵ使用率、メモリ使用率、および、ネットワーク回線使用率のうち、少なくとも１つの使用率を参照して決定することを特徴とする請求項１ないし請求項４のいずれか１項に記載の計算機管理方法。
【請求項６】
前記負荷分散管理テーブルは、前記第１サーバの現在の処理量が、前記第１サーバの処理量の上限に達したら、前記第１サーバの処理量の上限を増大させるように構成されることを特徴とする請求項２に記載の計算機管理方法。
【請求項７】
前記第１サーバおよび前記第２サーバは、Ｗｅｂサーバであることを特徴とする請求項１ないし請求項６のいずれか１項に記載の計算機管理方法。
【請求項８】
請求項１ないし請求項７のいずれか１項に記載の計算機管理方法を、コンピュータに実行させるための計算機管理プログラム。
【請求項９】
負荷分散管理テーブルに基づいて分配されたリクエストを実行する複数のサーバにおいて、性能測定対象である第１サーバの処理能力を測定する計算機管理サーバであって、
リクエストを実行中である第２サーバよりも、前記第１サーバにリクエストが優先的に割り当てられるように、前記負荷分散管理テーブルを変更する優先度制御部と、
前記第１サーバの性能が所定の許容上限に達した時点の処理量を、前記第１サーバの処理能力として記録する負荷状況監視部と、
を有していることを特徴とする計算機管理サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機管理方法、計算機管理プログラム、および、計算機管理サーバについての技術に関する。
【背景技術】
【０００２】
負荷分散は、要求されたリクエストを複数のサーバに分配することにより、複数のサーバにリクエストを並列で処理させる手法である。これにより、単位時間当たりでは、１台のサーバがリクエストを実行するよりも、複数のサーバが実行するリクエストの総和が大きくなることが期待されるので、単位時間当たりに処理できるリクエストの数を増やすことができる。
【０００３】
要求されたリクエストを割り当てるサーバの選択アルゴリズムとして、ラウンドロビン、重み付け、優先順位といった静的な負荷分散アルゴリズム（非特許文献１参照）に始まり、特許文献１に記載されているような、負荷状況を見て処理を分散する方式などが開発されている。これらの負荷分散方式は、全てのサーバの負荷が均等になる、あるいは、全体の処理件数が最大になるように処理を分散することを目的としている。
【０００４】
さらに、負荷分散を効率的に行うために、負荷分散の対象となるサーバを、各時点でのリクエスト量に応じて動的に増減させる技術（以下、動的な負荷分散とする）が提案されている。具体的には、サーバの負荷状況を監視して、負荷が増大してあらかじめ決めた上限閾値を上回った場合には、その時点で利用されていないサーバを追加して負荷の増大に対処するという制御が行われる。逆に、負荷が減少して下限閾値を下回った場合には、利用している少なくとも一つのサーバを削減して、削減したサーバを別の目的で利用できるようにする制御が行われる。これにより、過剰にサーバを稼働させることを抑制でき、サーバの利用効率を高めることができる。
【０００５】
例えば、特許文献２に記載された動的な負荷分散は、サーバを追加した直後は、追加されたサーバに対するリクエスト送出量を少なくし、時間経過と供に追加サーバへのリクエスト送出量を段階的に増加させることを特徴としている。これは、追加直後のサーバは必要な情報がキャッシュされていない等の原因で処理能力が低いため、追加直後のサーバの負担を軽減することで応答時間の悪化を防ぐことを目的としている。
【０００６】
動的な負荷分散を効率的に実現するためには、負荷分散によりリクエストが割り当てられる各サーバの性能を計測する必要がある。特に、グリッドコンピューティングのシステムでは、サーバ等の計算機資源の有効活用も目的の一つとしているため、利用するサーバのスペックは均一ではなく、ばらつきがある場合が多い。特許文献３に記載された性能測定方法は、サーバから負荷分散装置に対して送信されるフィードバック情報に含まれるサーバの負荷の値を操作することで、負荷分散装置の分配比率を調整し、テスト対象のサーバに負荷を意図的に集中させて性能を測定しているが、利用する負荷分散装置としては、アクティブフィードバックによる負荷分散制御を行うことが前提となっている。
【特許文献１】特開平１０−３１２３６５号公報
【特許文献２】特開２００５−９２８６２号公報
【特許文献３】特開２００５−１００５００号公報
【非特許文献１】株式会社アイアイジェイテクノロジー  川本信博著、「ロードバランシング技術〜高負荷に耐えるシステムの構築〜」、http://www.nic.ad.jp/ja/materials/iw/2002/proceeding/T19.pdf
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来は、動的な負荷分散を効率的に実現するためのサーバの性能計測において、稼働中の負荷分散システムにサーバを含めずに行っていた。そのため、サーバの性能を高精度で測定することができなかった。なお、動的な負荷分散システムに限らず、多くのシステムは、既に稼働し運用されつづけている。それらの稼働中のシステムは、無停止の運用（２４時間の運用）が求められている。
【０００８】
例えば、稼働中の負荷分散システムに接続せずにスタンドアロンで、ＣＰＵ（Central Processing Unit）周波数などのハードウェアの性能を、ベンチマークソフトで計測する手法が考えられる。しかし、利用しているサーバが当該業務の処理をどれくらい処理できるのかというアプリケーションベースの性能を測定しなければ、サーバの性能を高精度で測定できたとはいえず、動的な負荷分散を効率的に実現することはできない。
【０００９】
そこで本発明は、稼働中の負荷分散システムを停止させずに、その負荷分散システムに使用されるサーバの性能計測を高精度で行うことを、主な目的とする。なお、計測されたサーバの性能は、負荷分散のリクエストの増減に応じて増減されるサーバの選択に使用される。
【課題を解決するための手段】
【００１０】
前記課題を解決するために、本発明は、負荷分散管理テーブルに基づいて分配されたリクエストを実行する複数のサーバにおいて、性能測定対象である第１サーバの処理能力を測定する計算機管理方法であって、コンピュータが、リクエストを実行中である第２サーバよりも、前記第１サーバにリクエストが優先的に割り当てられるように、記憶手段に格納された前記負荷分散管理テーブルを変更する優先度制御手順と、前記第１サーバの性能が所定の許容上限に達した時点の処理量を、前記第１サーバの処理能力として記録する負荷状況監視手順と、を実行することを特徴とする。その他の手段は、後記する。
【発明の効果】
【００１１】
本発明によれば、稼働中の負荷分散システムを停止させずに、その負荷分散システムに使用されるサーバの性能計測を高精度で行うことができる。例えば、グリッドコンピューティングのような高度な負荷分散を行うシステムにおいて必要となる各サーバの処理能力を、容易に計測することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。図１は、負荷分散システムを示す構成図である。
【００１３】
利用者クライアント１０１からのリクエストは、ネットワーク１０２を介して、負荷分散装置１０３に届く。負荷分散装置１０３は、業務処理サーバ（業務処理サーバＡ１０４、業務処理サーバＢ１０５、業務処理サーバＣ１０６、および、業務処理サーバＺ１０９）に対してリクエストを分配することにより、負荷分散を行う構成となっている。これら業務処理サーバは、例えばＷｅｂシステムにおけるＷｅｂサーバである。
【００１４】
管理サーバ１１１（計算機管理サーバ）は、計算センタ内のシステムの負荷状態を監視し、過負荷状態が発生している場合には、センタ内の未使用サーバを動的にシステムに追加するといった制御を実現している。なお、動的なシステムの追加は、例えば、あらかじめネットワーク１０２に接続された計算機システムが、管理サーバ１１１の指示により、未稼働の状態から稼働中の状態へと遷移することで、その計算機システムが負荷分散装置１０３からリクエストを割り当てられる業務処理サーバとなることである。
【００１５】
図２は、負荷分散装置１０３を示す構成図である。図２（ａ）は、負荷分散装置１０３と管理サーバ１１１とが別々の筐体に分離された構成例を示し、図２（ｂ）は、負荷分散装置１０３と管理サーバ１１１とが同一の筐体に収容された構成例を示す。負荷分散装置１０３および管理サーバ１１１は、主記憶装置２０１、ＣＰＵ２０２、通信管理２０３が存在し、図示しないバスで互いに接続されている。ＣＰＵ２０２は、主記憶装置２０１に格納されたプログラムを実行する。
【００１６】
図２（ａ）において、負荷分散装置１０３の主記憶装置２０１には、負荷分散処理部２０４、および、負荷分散参照テーブル２１６が格納され、管理サーバ１１１の主記憶装置２０１には、優先度制御部２０７、負荷状況監視部２０５、および、負荷分散管理テーブル２０６が格納される。図２（ｂ）では、負荷分散管理テーブル２０６が負荷分散参照テーブル２１６の役割を兼任する。
【００１７】
負荷分散処理部２０４は、利用者クライアント１０１からのリクエストの受付を、各業務処理サーバに負荷を分散して転送する。負荷状況監視部２０５は、各業務処理サーバの負荷状態を監視する。負荷分散管理テーブル２０６は、各業務処理サーバの負荷状況および計測された各業務処理サーバの処理能力を記録する。優先度制御部２０７は、業務処理サーバの処理能力を計測するために、負荷分散管理テーブル２０６に格納される優先度３０７（図３参照）を制御する。負荷分散参照テーブル２１６は、負荷分散を実行する際に参照されるテーブルであり、負荷分散管理テーブル２０６に格納されるデータの少なくとも一部がコピーされる。
【００１８】
図３〜図６は、負荷分散管理テーブル２０６を示す構成図である。負荷分散管理テーブル２０６には、負荷分散先の業務処理サーバ名３０１、負荷状況監視部２０５が測定した最新の負荷状況である現在の処理量３０２、および、現在のＣＰＵ負荷３０３、当該サーバを優先度１にした場合の処理量の上限３０４、あらかじめ決めたＣＰＵ負荷許容上限３０５、性能測定で求められた処理能力３０６、優先順位による負荷分散を行う際の優先度３０７が記録されている。図３〜図６の各データの内容は、後記するフローチャートの説明にて、詳細に説明する。
【００１９】
なお、負荷分散参照テーブル２１６は、少なくとも現在の処理量３０２、処理能力３０６、および、優先度３０７を有する。そして、負荷分散装置１０３は、優先度３０７の高い順に業務処理サーバを選択し、その選択した業務処理サーバの現在の処理量３０２が処理能力３０６となるまで、選択した業務処理サーバにリクエストを割り当てつづける。
【００２０】
図７は、処理量とＣＰＵ負荷の関係の例を示す説明図である。管理サーバ１１１は、処理量の上限３０４に制限される現在の処理量３０２を徐々に上げながらＣＰＵ負荷を計測し、負荷分散管理テーブル２０６のＣＰＵ負荷許容上限３０５（本実施形態の場合は９０％）を超えた時点の処理量が、当該業務処理サーバの処理能力３０６となる。
【００２１】
図８は、負荷分散処理を示すフローチャートである。このフローチャートは、性能測定の開始とともに動作する。以下、業務処理サーバＡ１０４、業務処理サーバＢ１０５、および、業務処理サーバＣ１０６（前記３台が請求項の第２サーバの一例）の稼働中に、業務処理サーバＺ１０９（請求項の第１サーバの一例）の処理能力を計測する場合について説明する。
【００２２】
まず、負荷状況監視部２０５は、負荷分散管理テーブル２０６を参照し、業務処理サーバＺ１０９の現在の処理量３０２がｎ件／分であることを確認する（Ｓ５０１）。例えば、サーバＺ追加前（図３）には、業務処理サーバＺ１０９の現在の処理量３０２は、割り当てられていない。これは、業務処理サーバＺ１０９の優先度３０７が規定されていないため、負荷分散装置１０３が業務処理サーバＺ１０９にリクエストを割り当てないからである。
【００２３】
次に、優先度制御部２０７は、負荷分散方法を変更する（Ｓ５０２）。優先度制御部２０７は、業務処理サーバＺ１０９をそれまでの負荷分散対象から外し、業務処理サーバＺ１０９を優先度１にした優先順位による負荷分散を開始する。例えば、サーバＺの性能測定を実施中（図４）には、優先度３０７について、業務処理サーバＺ１０９が１（高優先）、他の業務処理サーバが２（低優先）である。これにより、負荷分散装置１０３は業務処理サーバＺ１０９に対して優先的にリクエストを割り当てる。
【００２４】
ここで、業務処理サーバＺ１０９の処理量の上限３０４の初期値は、Ｓ５０１で求めた現在の処理量３０２とする。なお、現在の処理量３０２が割り当てられていないときには、初期値は０である。そして、負荷分散装置１０３は、業務処理サーバＺ１０９の処理量の上限３０４を超える処理については、業務処理サーバＡ１０４、業務処理サーバＢ１０５、および、業務処理サーバＣ１０６にて処理するようにリクエストを割り当てる。業務処理サーバＡ１０４、業務処理サーバＢ１０５、および、業務処理サーバＣ１０６における負荷分散方法は、それまで行っていた負荷分散方法でもよいし、別の負荷分散方法でもよい。
【００２５】
そして、負荷状況監視部２０５は、業務処理サーバＺ１０９のＣＰＵ負荷と、負荷分散管理テーブル２０６に設定されているＣＰＵ負荷許容上限３０５との比較を行うことで、業務処理サーバＺ１０９のＣＰＵ２０２に余裕が有るか否かを判定する（Ｓ５０３）。
【００２６】
まず、業務処理サーバＺ１０９の現在のＣＰＵ負荷３０３が、負荷分散管理テーブル２０６に設定されているＣＰＵ負荷許容上限３０５よりも小さく、ＣＰＵ２０２に余裕がある場合（Ｓ５０３，Ｙｅｓ）、Ｓ５０３Ｂに進む。例えば、サーバＺの性能測定を実施中（図４）には、業務処理サーバＺ１０９の現在のＣＰＵ負荷３０３が２５％であり、ＣＰＵ負荷許容上限３０５の９０％までには、まだ余裕がある。そして、業務処理サーバＺ１０９の現在の処理量３０２が処理量の上限３０４に達したら（Ｓ５０３Ｂ，Ｙｅｓ）、業務処理サーバＺ１０９の処理量の上限３０４を増大させる（Ｓ５０４）。増大させる量については、それまでの処理量の何パーセント増大という方法でもよいし、固定的に何件／分増大という方法でもよい。その後、Ｓ５０３に戻る。
【００２７】
一方、業務処理サーバＺ１０９の現在のＣＰＵ負荷３０３が、負荷分散管理テーブル２０６に設定されているＣＰＵ負荷許容上限３０５よりも大きくなり、ＣＰＵ２０２に余裕が無くなったら（Ｓ５０３，Ｎｏ）、現在の処理量３０２を当該業務サーバの処理能力３０６として記録する（Ｓ５０５）。例えば、サーバＺの性能測定が完了（図５）したときには、現在のＣＰＵ負荷３０３が９０％となり、ＣＰＵ負荷許容上限３０５の９０％に達した。このとき、管理サーバ１１１が、現在の処理量３０２の９０件／分を処理能力３０６にコピーする。
【００２８】
なお、業務処理サーバＺ１０９のＣＰＵ負荷が、負荷分散管理テーブル２０６に設定されているＣＰＵ負荷許容上限３０５を大きく上回った場合には、管理サーバ１１１が、ＣＰＵ負荷許容上限３０５を超えたと推測される処理量を比例計算等で求め、当該業務サーバの処理能力３０６として記録してもよい（図７参照）。
【００２９】
最後に、優先度制御部２０７は、業務処理サーバＡ１０４、業務処理サーバＢ１０５、業務処理サーバＣ１０６、および、業務処理サーバＺ１０９への負荷分散方法を、性能測定開始前の負荷分散方法に戻して（Ｓ５０６）、性能測定処理を終了する。例えば、サーバＺ切り離し後（図６）には、優先度３０７について、業務処理サーバＺ１０９が未定義、他の業務処理サーバが１（高優先）である。これにより、負荷分散装置１０３は業務処理サーバＺ１０９に対してリクエストを割り当てなくなる。
【００３０】
以上の処理により、業務処理サーバＺ１０９の処理能力を求めることができる。
【００３１】
同様の性能測定を業務処理サーバＡ１０４、業務処理サーバＢ１０５、業務処理サーバＣ１０６についても行い、負荷分散管理テーブル２０６内の処理能力３０６を求めておく。これにより、業務処理サーバの処理能力３０６の総和と、現在のリクエストとを比較することにより、利用者クライアント１０１からのリクエストが２４０件／分未満となれば業務処理サーバＢ１０５を削減することが可能であり、１７０件／分未満となれば業務処理サーバＢ１０５および業務処理サーバＣ１０６の２台を削減することが可能であることが分かる。
【００３２】
以上説明した本発明は、以下のようにその趣旨を逸脱しない範囲で広く変形実施することができる。
【００３３】
例えば、計測するパラメータとして、ＣＰＵ使用率だけでなく、メモリ使用率、および、ネットワーク回線使用率などのＣＰＵ以外の計算機資源に関するパラメータを、ＣＰＵ使用率の代わりに、あるいはＣＰＵ使用率と併せて計測することとしてもよい。
【００３４】
また、本実施形態において、業務処理サーバを対象としたが、負荷分散の対象となる処理は、業務処理に限定されず、科学計算処理などの様々な計算機の処理としてもよい。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施形態に関する負荷分散システムを示す構成図である。
【図２】本発明の一実施形態に関する負荷分散装置を示す構成図である。
【図３】本発明の一実施形態に関する負荷分散管理テーブル（サーバＺ追加前）を示す構成図である。
【図４】本発明の一実施形態に関する負荷分散管理テーブル（サーバＺの性能測定を実施中）を示す構成図である。
【図５】本発明の一実施形態に関する負荷分散管理テーブル（サーバＺの性能測定が完了）を示す構成図である。
【図６】本発明の一実施形態に関する負荷分散管理テーブル（サーバＺ切り離し後）を示す構成図である。
【図７】本発明の一実施形態に関する処理量とＣＰＵ負荷の関係の例を示す説明図である。
【図８】本発明の一実施形態に関する負荷分散処理を示すフローチャートである。
【符号の説明】
【００３６】
１０１  利用者クライアント
１０２  ネットワーク
１０３  負荷分散装置
１０４  業務処理サーバＡ
１０５  業務処理サーバＢ
１０６  業務処理サーバＣ
１０９  業務処理サーバＺ
１１１  管理サーバ
２０１  主記憶装置
２０２  ＣＰＵ
２０３  通信管理
２０４  負荷分散処理部
２０５  負荷状況監視部
２０６  負荷分散管理テーブル
２０７  優先度制御部
２１６  負荷分散参照テーブル
【図１】
2007179246.tif 000003
【図２】
2007179246.tif 000004
【図３】
2007179246.tif 000005
【図４】
2007179246.tif 000006
【図５】
2007179246.tif 000007
【図６】
2007179246.tif 000008
【図７】
2007179246.tif 000009
【図８】
2007179246.tif 000010