以下、本発明の実施の形態を図面を参照して説明する。
実施の形態1.
図1は、本発明の第1の実施の形態のシステム構成候補導出装置の例を示すブロック図である。本発明のシステム構成候補導出装置は、データ処理装置100と、システム操作記憶手段140とを備える。
データ処理装置100は、管理対象となる管理対象システム(以下、対象システムと記す。)160に接続される。図2は、データ処理装置100に接続される対象システム160の例を示す説明図である。図2では、対象システムを構成するサーバ、通信ネットワーク、ルータ、ロードバランサ、層を、図17と同一の符号を付して示し、これらのサーバ等の装置や各通信ネットワークの詳細な説明を省略する。ただし、対象システム160に属する層は、Web層、AP層、DB層に限定されるわけではないので、以下、対象システム160に属する層を第1層、第2層、第3層と記す。図2では、対象システム160がこれら3つの層を含む場合を例示しているが、対象システム160に含まれる層は3つに限定されない。
既に説明したように、層とは、同種のソフトウェアが搭載されそのソフトウェアに従って動作するコンピュータの集合である。同じ層に属する装置に同一のソフトウェアが搭載されていてもよい。以下、層を構成するコンピュータ(同種のソフトウェアが搭載されそのソフトウェアに従って動作するコンピュータ)に該当するサーバをシステム構成要素と記す。また、システム構成要素(サーバ)を追加または除外する操作の対象となる装置やソフトウェアを操作対象要素と記す。操作対象要素の例として、対象システム160に含まれるロードバランサ240やルータ251,252が挙げられる。各サーバ211,221,231も操作対象要素に該当する。また、各サーバ211,221,231、ロードバランサ240、ルータ251,252に搭載されるソフトウェア(例えば、ミドルウェア、アプリケーションソフトウェア等)も操作対象要素に該当する。
システム構成要素(サーバ)を追加または除外する操作は、操作対象要素に対する操作の集合となる。例えば、ある層にサーバを追加する操作は、「物理的には通信ネットワークに接続されているが通信ネットワークを介して通信可能となっていないサーバを通信可能となるように設定変更する。」、「サーバにソフトウェアをインストールする。」、「ソフトウェアを起動する。」、「通信不能となるようにサーバの設定を変更する。」、「ソフトウェアを終了する。」、「サーバからソフトウェアを削除する。」等の操作対象要素に対する操作の集合によって表される。システム操作記憶手段140は、各層毎に、サーバを追加する場合およびサーバを除外する場合における操作対象要素に対する操作の情報を記憶する記憶装置である。システム操作記憶手段140が記憶する操作の情報は、例えば、UNIX(登録商標)におけるシェルスクリプトやWS−BPEL(Web Services Business Process Execution Language)のようなワークフロー言語等の形式で記述される。ただし、ここで示したシェルスクリプトやWS−BPELは例示であり、システム操作記憶手段140が記憶する操作の情報は他の形式で記述されていてもよい。
データ処理装置100は、対象システム160の負荷状況を監視(計測)し、計測した項目の相関性に基づいてシステム構成変更ルールを生成する。
データ処理装置100は、要素間相関性導出手段110と、性能プロファイル手段120と、システム構成候補列挙手段131と、有効範囲計算手段132と、トリガ生成手段133と、操作系列生成手段134と、ルール生成手段130とを備える。
要素間相関性導出手段110は、対象システム160のシステム構成要素であるサーバのメトリックを計測し、相関性を有するメトリックの組み合わせを特定し、そのメトリック間の相関性を導出する。
メトリックとは、管理対象システムの負荷状況を表す計測項目である。メトリックの例として、各層210,220,230に属する各サーバのCPU使用率やメモリ使用量、同じ層に属する各サーバが単位時間当たりに受信したリクエストの総数などが挙げられる。これらは、メトリックの例示であり、要素間相関性導出手段110が計測するメトリックは、例示した上記のメトリックに限定されない。
また、相関性とは、あるメトリックの値が変動すると、その変動に伴って他のメトリックの値も変動するメトリック間の関係性である。例えば、第1層210の各サーバ211がロードバランサ240から単位時間当たりに受信するリクエスト数が増加したとする。そして、各サーバ211がそのリクエストに応じて、第2層220のサーバ221に処理を要求したとする。すると、第2層220のサーバ221が第1層の各サーバ211から受信する単位時間当たりのリクエスト数も増加する。従って、第1層210の各サーバ211がロードバランサ240から単位時間当たりに受信するリクエストの総数と、第2層220のサーバ221が第1層の各サーバ211から単位時間当たりに受信するリクエストの総数との間には相関性があることになる。要素間相関性導出手段110は、これらの相関性を有するメトリックの組み合わせを特定し、そのメトリック間の相関性を導出する。
性能プロファイル手段120は、システム構成候補列挙手段131および有効範囲計算手段132に性能プロファイルを提供する。
性能プロファイルとは、システム構成要素(サーバ)の台数とその台数のシステム構成要素の処理量との関係を導出可能な情報である。性能プロファイルは、システム構成要素となるサーバの台数とその台数のサーバの処理量との関係を直接示した情報であってもよい。また、性能プロファイルは、サーバの単位台数(1台)当たりの処理量を示した情報であってもよい。サーバ1台当たりの処理量にサーバの台数を乗じれば、サーバの台数とその台数のサーバの処理量との関係を導出することができる。
図3は、サーバの台数とその台数のサーバの処理量との関係を直接示した性能プロファイルの例を示す説明図である。サーバの台数とその台数のサーバの処理量との関係を直接示す場合、図3に例示するように、メトリック毎に、サーバの台数とサーバの処理量との関係をまとめた情報が性能プロファイルとなる。例えば、図3に示すメトリック1が、第1層210のサーバ211がロードバランサ240から単位時間当たりに受信するリクエストの総数であるとする。図3に示す例では、サーバ211が1台では単位時間当たり70のリクエストまで処理可能であり、サーバ211が2台では単位時間当たり140のリクエストまで処理可能である等の台数と処理量との関係を示している。同様に、例えば、図3に示すメトリック2が、第2層220の各サーバ221が単位時間当たりに行うトランザクションの総数であるとする。図3に示す例では、サーバ221が1台では単位時間当たり25のトランザクションを実行可能であり、サーバ221が2台では単位時間当たり50のトランザクションを実行可能である等の台数と処理量との関係を示している。なお、図3に示す例では、サーバ台数が4台から5台になっても、単位時間当たりのトランザクション数が変化していないが、これはサーバを4台以上増やしてもそのサーバが属する層全体の処理量(性能)を上げられないことを意味している。換言すれば、サーバを4台まで増やすとサーバが属する層全体の処理量が飽和することを意味している。
図4は、サーバの単位台数当たりの処理量を示した性能プロファイルの例を示す説明図である。サーバの単位台数当たりの処理量を示す場合、図4に例示するように、メトリックと、単位台数当たりの処理量と、限界台数とが対応付けられる。図3で例示場合と同様に図4においても、メトリック1が、第1層210のサーバ211がロードバランサ240から単位時間当たりに受信するリクエストの総数であるとする。図4に示す例では、サーバ211の単位台数(1台)当たり単位時間に70のリクエストまで処理可能であることを示している。また、限界台数は、サーバが属する層全体の処理量が飽和するサーバ台数を意味している。従って、本例では、サーバ211を10台まで増やせば処理量を70・10=700まで上げられるが、さらにサーバ台数を増やしても処理量をそれ以上増加させられないことを意味している。
図3および図4では2種類のメトリックに関する性能プロファイルを例示しているが、性能プロファイルは2種類のメトリックに関するものだけに限定されない。
また、処理性能として、例えば、リクエスト数、トランザクション数、クエリ数等の数を示す場合、単位時間当たりに処理可能な数として示せばよい。
システム構成候補列挙手段131は、システム構成候補を導出する。システム構成候補は、対象システムの構成の候補である。対象システム16は、各層毎にシステム構成要素(サーバ)を含んでいるが、各層のサーバ台数が任意の数となっていると、バランスのとれたシステム構成にならない。例えば、いずれかの層に属するサーバ台数によって実現される処理性能が、他の層に属するサーバ台数によって実現される処理性能に比べて低い場合には、処理性能の低い層がボトルネックとなってしまい、全体的にバランスのとれたシステム構成とはならない。また、例えば、いずれかの層に属するサーバ台数によって実現される処理性能が、他の層に属するサーバ台数によって実現される処理性能に比べて高い場合には、処理性能の高い層ではサーバ台数が多すぎて処理性能に寄与しないサーバが存在していることになる。この場合もバランスのとれたシステム構成にならない。なお、バランスのとれたシステム構成とは、いずれの層においても処理性能に寄与しないサーバが存在しない構成である。
一つの層に含めることのできるサーバ台数に上限がある場合がある。例えば、ルータ等のネットワーク機器のポート数が限られている、あるいは管理者が所有しているサーバ台数に限りがあるといった物理的な理由で一つの層におけるサーバ台数が制限される場合もある。また、サーバにインストールするために購入したソフトウェアの動作上の制限(例えば、ソフトウェアが動作可能な台数や構成に制限がある、あるいは購入したライセンス数に限りがある等)によって、一つの層におけるサーバ台数が制限される場合もある。図2に示す各層210,220,230では、いずれも設置できるサーバ台数が10台であるとする。すると、各層に設置するサーバ台数の組み合わせは、10×10×10=1000通り存在することになるが、全ての組み合わせがバランスのとれた構成になるわけではない。例えば、第1層210のサーバ211を10台とし、他の層のサーバをそれぞれ1台とするような構成では、第1層210のサーバ台数が過剰であり、そのサーバを有効に活用することにならないのでバランスのとれた構成であるとはいえない。
システム構成候補列挙手段131は、メトリックの相関性と性能プロファイルとによって、バランスのとれたシステム構成候補を導出する。システム構成候補列挙手段131が導出するシステム構成候補は一つに限られるわけではなく、システム構成候補列挙手段131はバランスのとれたシステム構成候補を列挙する。
なお、データ処理装置100は、予め定められた各層毎のサーバ台数の上限値を記憶した記憶装置(図示せず。)を備えていてもよい。また、この記憶装置は、予め定められた各層毎にサーバ台数の下限値を記憶していてもよい。以下、この記憶装置(図示せず。)を台数限界値記憶手段と記す。
有効範囲計算手段132は、システム構成候補列挙手段131によって導出されたシステム構成候補と、性能プロファイルと、メトリックの相関性とによって、各システム構成候補毎に、各層で処理可能な負荷の範囲を計算する。
各層における処理可能な負荷の範囲は、その層のサーバの処理性能とサーバ台数のみによって決定されるわけではなく、メトリックの相関性にも依存する。例えば、あるシステム構成候補では、第1層210,第2層220および第3層230でのサーバ台数がそれぞれ1台と定められていたとする。また、各層のサーバ211,221,231の処理数がそれぞれ、70,50,25であったとする。そして、第1層のサーバ211が1処理を実行するためには、第2層のサーバ221が2処理を実行し、第3層のサーバ231が1処理を実行しなければならないとする。第1層のサーバ211は、1台で70処理を行えるが、そのためには第2層のサーバ221が140処理を実行し、第3層のサーバ231が70処理を行わなければならいが、上記の例では、第2層のサーバ221、第3層のサーバ231は、それぞれ50処理、25処理しか実行しない。よって、「第1層のサーバ211が1処理を実行するためには、第2層のサーバ221が2処理を実行し、第3層のサーバ231が1処理を実行しなければならないとする。」という関係によって、第1層から第3層までの各層の各サーバが処理可能な負荷の範囲(以下、有効範囲と記す。)は、それぞれ25処理、50処理、25処理となる。
有効範囲計算手段132は、このような有効範囲の組み合わせを、システム構成候補列挙手段131によって導出された各システム構成候補毎に算出する。
あるシステム構成候補が「第1層のサーバ211が1台。第2層のサーバ221が1台。第3層のサーバ231が1台。」という構成であったとする。このシステム構成候補における有効範囲が「第1層のサーバ211では0〜25処理。第2層のサーバ221では0〜50処理。第3層のサーバ231では0〜25処理。」と計算されたとする。また、あるシステム構成候補が「第1層のサーバ211が1台。第2層のサーバ221が2台。第3層のサーバ231が2台。」という構成であったとする。このシステム構成候補における有効範囲が「第1層のサーバ211では0〜50処理。第2層のサーバ221では0〜100処理。第3層のサーバ231では0〜50処理。」と計算されたとする。
上記のように、あるシステム構成候補から他のシステム構成候補に切り替えると、有効範囲も変化する。システム構成候補列挙手段131によって導出されたシステム構成候補を、各層のサーバ台数がそれぞれ増加していくように昇順に並べ、その順番に有効範囲を並べたとする。そのとき、順番に並ぶ有効範囲において、先に並んだ方の有効範囲の上限を有効範囲の境界と呼ぶ。例示した「第1層のサーバ211では0〜25処理。第2層のサーバ221では0〜50処理。第3層のサーバ231では0〜25処理。」という有効範囲と、「第1層のサーバ211では0〜50処理。第2層のサーバ221では0〜100処理。第3層のサーバ231では0〜50処理。」という有効範囲とに関しては、有効範囲の境界は「第1層では25、第2層では50、第3層では25。」となる。
ここで、本発明のシステム構成候補導出装置が生成するシステム構成変更ルールについて説明する。システム構成変更ルールは、if−then形式のルールであり、対象システム16の負荷に関する条件と、その条件が満たされたときの対象システムに関する操作の情報を含んでいる。以下、システム構成変更ルールの条件の部分をトリガと記す。また、トリガが満たされたときには、サーバを追加したり、除外したりする操作を行う。この操作は、操作対象要素に対する操作の集合となる。さらに、サーバを追加したり、除外したりする操作は、1つの層についてのみ行うとは限らず、複数の層について行う場合もある。操作すべき各層毎の操作対象要素に対する操作の集合を操作系列と記す。すなわち、システム構成変更ルールは、トリガと操作系列とを含み、トリガが満たされたときに、操作系列に含まれる個々の操作をそれぞれ実行すべきことを表している。
トリガ生成手段133は、各システム構成候補毎に算出された有効範囲の境界に基づいて、トリガを生成する。例えば、第1層210の有効範囲が、あるシステム構成候補では“0〜25”であり、他のシステム構成候補では“0〜50”であり、有効範囲の境界が“25”であったとする。トリガ生成手段133は、その境界よりも所定数低い値、あるいは境界の値の所定の割合(例えば90%)のような値を求め、その値をトリガとする。すなわち、トリガは、境界の値よりも低い値として計算する。このようにトリガを求めることによって、対象システム16内の負荷が上昇している場合には、対象システム16のシステム構成で負荷に耐えられなく前に、よりサーバ数の多いシステム構成候補への切り替えを指示するシステム構成変更ルールを生成することができる。また、対象システム16内の負荷が現象している場合には、切り替え後のシステム構成候補の構成で処理可能な負荷まで低下したときに、よりサーバ数の少ないシステム構成候補への切り替えを指示するシステム構成変更ルールを生成することができる。
操作系列生成手段134は、システム構成候補列挙手段131によって導出されたシステム構成候補を各層のサーバ台数がそれぞれ増加していくように昇順に並べたときに、順番に並ぶシステム構成候補の差分を求める。すなわち、順番に並べられて隣り合うシステム構成候補において、一方のシステム構成候補のみに含まれるシステム構成要素(サーバ)を求める。操作系列生成手段134は、差分となるサーバを層に追加するための操作の情報をシステム操作記憶手段140から読み込む。差分となるサーバを層に追加するための操作の情報として、システム操作記憶手段140から読み込まれた情報の集合は操作系列となる。また、操作系列生成手段134は、差分となるサーバを層から除外するための操作の情報も、システム操作記憶手段140から読み込む。差分となるサーバを層から除外するための操作の情報として、システム操作記憶手段140から読み込まれた情報の集合も操作系列となる。
ルール生成手段130は、トリガ生成手段133によって生成されたトリガと、操作系列生成手段134によってシステム操作記憶手段140から読み出された操作系列とを組み合わせてシステム変更ルールを生成する。
図1および図2に示すようにデータ処理装置100(ルール生成手段130)は監視システム170に接続されていてもよい。そして、ルール生成手段130は、生成したシステム構成変更ルールを監視システム170に送信してもよい。監視システム170は、対象システム160の負荷状況を監視し、トリガが満たされた場合に、そのトリガに対応する操作系列に従って対象システム160に対してサーバの追加操作あるいは除外操作を行う。
なお、ここでは、データ処理装置100(ルール生成手段130)が監視システム170に接続され、ルール生成手段130がシステム構成変更ルールを監視システム170に送信する場合を例示したが、システム構成変更ルールを監視システム170に提供する態様は他の態様であってもよい。例えば、ルール生成手段130が記憶媒体にシステム構成変更ルールを記憶させ、管理者が監視システム170にその記憶媒体からシステム構成変更ルールを読み込ませてもよい。
要素間相関性導出手段110、性能プロファイル手段120、システム構成候補列挙手段131、有効範囲計算手段132、トリガ生成手段133、操作系列生成手段134、およびルール生成手段130は、例えば、プログラムに従って動作するコンピュータ(中央処理装置)によって実現される。上記の各手段が、同一の中央処理装置によって実現されていてもよい。
次に、動作について説明する。図5は、第1の実施の形態のシステム構成候補導出装置の処理経過の例を示すフローチャートである。
まず、要素間相関性導出手段110が、対象システム160のシステム構成要素であるサーバのメトリックを計測する(ステップA1)。メトリックの例として、サーバのCPU使用率やメモリの使用量、サーバが受信した単位時間当たりのリクエスト数等が挙げられる。サーバのCPUは、サーバに搭載されているOS(Operating System)に従って、CPU使用率やメモリの使用量を出力する。要素間相関性導出手段110は、例えば、サーバに対して、CPU使用率やメモリの使用量を要求し、サーバからそれらの情報を受信すればよい。また、サーバのCPUは、サーバに搭載されているソフトウェアに従って、受信したリクエスト数等をログに記録している。要素間相関性導出手段110は、例えば、サーバに対してログを要求してサーバからログを受信し、そのログから単位時間当たりのリクエスト数等のメトリックを求めてもよい。また、監視システム170が上記のようにメトリックを収集し、要素間相関性導出手段110がそのメトリックを監視システム170から受信してもよい。
要素間相関性導出手段110は、ある時点でのメトリックだけを計測するのでなく、時間経過に伴ってメトリックの計測を継続して行う。例えば、要素間相関性導出手段110は、定期的に各メトリックを計測する。
次に、要素間相関性導出手段110は、計測したメトリックに基づいて、相関性を有するメトリックの組み合わせを特定し、そのメトリック間の相関性を導出する(ステップA2)。以下、ステップA2の動作について詳細に説明する。
要素間相関性導出手段110は、ステップA1で計測したメトリックから2つのメトリックを選択し、回帰分析によって、その2つのメトリックに相関性があるか否かを判定する。2つのメトリック間に相関性として比例関係があるか否かが判定できればよい場合には、y=a・xという一次式を用いて回帰分析を行えばよい。この回帰分析は以下のように行えばよい。2つのメトリックMa,Mbの時刻tにおける測定結果をそれぞれMa(t),Mb(t)とする。要素間相関性導出手段110は、各時刻(ここでは時刻を便宜的にt=0,1,2,・・・と表す。)におけるメトリックMa(t),Mb(t)を、y=Ma(t),x=Mb(t)としてy=a・xに代入する。すると、以下のように多数の式が得られる。
Ma(0)=a・Mb(0),
Ma(1)=a・Mb(1),
Ma(2)=a・Mb(2),
Ma(3)=a・Mb(3),
・・・
要素間相関性導出手段110は、上記の各式からそれぞれ一次式の係数aを算出する。Ma(0),Mb(0)等の各値はステップA1で計測されているので、上記の各式におけるaを、例えば、Ma(0)/Mb(0)という除算によって算出することができる。続いて、要素間相関性導出手段110は、各式からそれぞれ求めた係数aの分散を計算し、その分散が予め定められた閾値以下であるか否かを判定する。aの分散が閾値以下であれば、要素間相関性導出手段110は、二つのメトリックMa,Mb間には相関性があり、MaとMbの処理量の比が1:aであると判定する。MaとMbの処理量の比として求めた「1:a」における“a”は、各式から求めたaの平均値である。
例えば、メトリックMaが第1層210(図1参照。)の各サーバがロードバランサ240から単位時間当たりに受信したリクエストの総数であり、メトリックMbが第2層220の各サーバが第1層のサーバからの要求に応じて単位時間に実行した総トランザクション数であるとする。上記のように、MaとMbの処理量の比が1:aであるということは、第1層210のサーバが1つのリクエストを受信すると、第2層のサーバでa個のトランザクションが生じることを意味している。
また、aの分散が予め定められた閾値よりも大きな値であれば、二つのメトリックMa,Mb間には相関性がないと判定し、別のメトリックの組み合わせを選択し、同様の処理を繰り返す。なお、メトリックの組み合わせの選択順序は、予め定めておけばよい。
上記の例では、y=a・xという単純な一次式を用いた回帰分析によって相関性の有無を判定する場合を例示したが、回帰分析に用いる式(以下、回帰式と記す。)は、y=a・x+bという定数項bを含む式であってもよい。この場合、要素間相関性導出手段110は、各時刻におけるメトリックMa(t),Mb(t)を、y=Ma(t),x=Mb(t)としてy=a・x+bに代入する。すると、すると、以下のように多数の式が得られる。
Ma(0)=a・Mb(0)+b,
Ma(1)=a・Mb(1)+b,
Ma(2)=a・Mb(2)+b,
Ma(3)=a・Mb(3)+b,
・・・
要素間相関性導出手段110は、上記の各式からそれぞれa,bを求める。要素間相関性導出手段110は、例えば、最小二乗法を用いて、a,bを算出してもよい。また、2つの式の組み合わせからならなる連立方程式の解としてa,bを算出してもよい。次に、要素間相関性導出手段110は、算出した各a、各bの分散をそれぞれ算出する。要素間相関性導出手段110は、a,bの分散がそれぞれ予め定められた閾値以下であるか否かを判定し、aの分散およびbの分散がそれぞれ閾値以下であれば、二つのメトリックMa,Mb間には相関性があり、MaとMbの処理量の比が1:aであると判定する。MaとMbの処理量の比として求めた「1:a」における“a”は、各式から求めたaの平均値である。aの分散およびbの分散のいずれか一方あるいは両方が閾値を超えていれば、Ma,Mbに相関性はないと判定する。なお、aの分散との比較に用いる閾値と、bの分散との比較に用いる閾値とは同一の値でなくてもよい。
また、回帰式として、時間遅れを考慮した回帰式を用いて相関性の有無を判定してもよい。時間遅れを考慮した回帰式は、y(t)+a1・y(t−1)+a2・y(t−2)+・・・=b0・x(t)+b1・x(t−1)+b2・x(t−2)+・・・と表される。ここでは、y(t)+a1・y(t−1)+a2・y(t−2)=b0・x(t)+b1・x(t−1)+b2・x(t−2)という回帰式を例にして説明する。要素間相関性導出手段110は、各時刻におけるメトリックを上記の回帰式に代入する。すると、以下のように多数の式が得られる。
Ma(2)+a1・Ma(1)+a2・Ma(0)=b0・Mb(2)+b1・Mb(1)+b2・Mb(0),
Ma(3)+a1・Ma(2)+a2・Ma(1)=b0・Mb(3)+b1・Mb(2)+b2・Mb(1),
・・・
要素間相関性導出手段110は、上記の各式からそれぞれ係数a1,a2,b0〜b2を求める。要素間相関性導出手段110は、例えば、最小二乗法を用いてこれらの係数を算出すればよい。次に、要素間相関性導出手段110は、算出した各係数a1,a2,b0〜b2の分散をそれぞれ算出する。要素間相関性導出手段110は、係数a1,a2,b0〜b2の分散がそれぞれ予め定められた閾値以下であるか否かを判定し、各係数の分散がそれぞれ閾値以下であれば、二つのメトリックMa,Mb間には相関性があり、MaとMbの処理量の比が1:Pであると判定する。ここで、Pは、以下のように求めればよい。各式からa1,a2,b0〜b2を求めたならば、要素間相関性導出手段110は、a1の平均値を算出する。同様に、a2,b0,b1,b2についてもそれぞれ平均値を算出する。要素間相関性導出手段110は、左辺の各係数の平均値の和であるa1+a2=Σaiと、右辺の各係数の平均値の和であるb0+b1+b2=Σbiとをそれぞれ算出し、Σbi/Σai=Pとして、上記の処理量の比1:Pを導出すればよい。
上記の各例であh、二つのメトリックMa,Mb間には相関性の有無を判定したが、さらに、例えば、メトリックMb,Mcの相関性の有無を判定し、相関性があると判定した場合には、Ma,Mbの処理量の比およびMb,Mcの処理量の比に基づいて、Ma,Mb,Mcの処理量の比を導出してもよい。
また、性能プロファイル手段120は、性能プロファイル(サーバの台数とその台数のサーバの処理量との関係を導出可能な情報)を生成する(ステップA3)。性能プロファイル手段120は、生成した性能プロファイルをシステム構成候補列挙手段131および有効範囲計算手段132に渡す。性能プロファイル手段120は、対象システム160のサーバに実際に負荷をかけて性能プロファイルを導出してもよい。例えば、性能プロファイル手段120は、対象システム160において動作可能なサーバの台数等の対象システムの構成を取得する。そして、性能プロファイル手段120は、ある層のサーバに対してリクエストを送出しそのリクエストが処理できなくなるまで単位時間当たりのリクエスト数を増加させていき、1台のサーバが処理可能な単位時間当たりのリクエスト数を判定してもよい。また、1台のサーバで処理できなくなった場合に、2台のサーバに対してリクエストを送信して、単位時間当たりのリクエスト数を増加させていき、2台のサーバで処理可能な単位時間当たりのリクエスト数を判定してもよい。さらに、複数のサーバで処理できなくなった場合には、さらにリクエストを送信するサーバの台数を増やして同様に、処理可能な単位時間当たりのリクエスト数を順次判定していけばよい。ここでは、処理可能な単位時間当たりのリクエスト数を例にして説明したが、他のメトリックに関する性能プロファイル(例えば、単位時間当たりのトランザクション数や単位時間当たりのクエリに関する性能プロファイル)も同様に導出すればよい。
また、上記の説明では、性能プロファイル手段120自身が性能プロファイルを導出する場合を示したが、予め管理者などによって性能プロファイルが用意され、性能プロファイル手段120が予めその性能プロファイルを記憶している構成であってもよい。性能プロファイル手段120が予め性能プロファイルを記憶している場合には、ステップA3(性能プロファイル生成処理)を行わなくてもよい。また、この場合、システム構成候補列挙手段131および有効範囲計算手段132は、性能プロファイル手段120から性能プロファイルを読み込む。
性能プロファイル手段120によらずに性能プロファイルを用意する態様として、実際に運用されている対象システム160の動作実績から性能プロファイルを決定してもよい。例えば、対象システム160の動作が級にスローダウンしたときの負荷(例えば、リクエスト数、トランザクション数、クエリ数等)をログから読み取り、その負荷を用いて性能プロファイルを決定してもよい。
また、対象システム160内で運用されているサーバを対象システムから取り出したり、あるいは対象システム160内で運用されているサーバと同じスペックのサーバを用意して、そのサーバに対して模擬的に負荷をかけて処理性能を計測することによって性能プロファイルを決定してもよい。例えば、サーバにダミーリクエストを与え、そのときの処理性能(例えば、応答時間や、単位時間当たりに処理可能なリクエスト数等)を計測すればよい。また、所望の台数のサーバの処理性能を計測するには、手動あるいは自動でサーバの数を増減して、負荷(例えばダミーリクエスト)を与えればよい。
ステップA3の後、システム構成候補列挙手段131は、メトリックの相関性と性能プロファイルとによって、バランスのとれたシステム構成候補を導出する(ステップA4)。ここで、システム構成候補列挙手段131は、メトリックの相関性の具体的な内容として、ステップA2で導出されたメトリックの処理量の比を参照する。また、システム構成候補列挙手段131は、性能プロファイル手段120が導出した(あるいは性能プロファイル手段120が予め記憶している)性能プロファイルを参照する。
システム構成候補列挙手段131は、ステップA2で導出されたメトリックの処理量の比を、各層のシステム構成要素の台数比に変換する。この変換によって得られた各層のシステム構成要素の台数が、システム構成候補となる。メトリックの処理量の比を、各層のシステム構成要素の台数比に変換する方法として、以下に示す2つの方法がある。
第1の方法は、基準となる層を一つ定め、その層のシステム構成要素をいくつにするのかを仮に決め、さらに、他の各層のシステム構成要素の数を決定する方法である。
第1の方法では、システム構成候補列挙手段131は、基準となる層と、その層のシステム構成要素E0の台数n0を定める。基準となる層は予め決められていてもよい。例えば、図2に示す各層のうち、第1層210(第2層や第3層であってもよい。)が基準となる層として予め決められていてもよい。システム構成候補列挙手段131は、基準となる層のシステム構成要素E0(本例では第1層210のサーバ211)の台数n0を仮に定める。
システム構成候補列挙手段131は、性能プロファイルを参照し、基準となる層のシステム構成要素E0(以下、サーバ211であるものとして説明する。)の台数がn0台であったときの、サーバ211のメトリックの処理量を参照する。このメトリックをM0とし、サーバ211がn0台のときのメトリックM0の処理量がP0であったとする。また、システム構成候補列挙手段131は、基準となる層のサーバ211のメトリックM0の処理量として、他の層のサーバのメトリックとの間に相関性を有しているメトリックM0の処理量を参照する。
次に、システム構成候補列挙手段131は、ステップA2で導出されたメトリックの処理量の比から、メトリックM0と相関性を有している他の層のメトリックM1に要求される処理量を算出する。ステップA2で導出されたメトリックM0,M1の処理量の比が、j:kであったとする。システム構成候補列挙手段131は、メトリックM1に要求される処理量P1を、P0:P1=j:kが満足される値として算出する。そして、システム構成候補列挙手段131は、メトリックM1に関して処理量P1を実現可能な他の層のシステム構成要素(他の層のサーバ)の台数を、性能プロファイルを参照して求める。システム構成要素となるサーバの台数とその台数のサーバの処理量との関係を導出可能な情報であるので、処理量P1を実現可能なシステム構成要素の台数を性能プロファイルから求めることができる。
このようにして、システム構成候補列挙手段131は、基準となる層のシステム構成要素の台数をn0としたときの他の層のシステム構成要素の台数を、各層毎に順次算出する。このようにして得られた、基準となる層のシステム構成要素の台数n0、および他の各層のシステム構成要素の台数の組み合わせが、一つのシステム構成候補となる。
システム構成候補列挙手段131は、基準となる層のシステム構成要素の台数を変化させ、同様にシステム構成候補を順次導出していく。例えば、基準となる層のシステム構成要素の台数が1台のときのシステム構成候補、2台のときのシステム構成候補、3台のときのシステム構成候補、・・・と順に、システム構成候補を導出していけばよい。
第2の方法は、最小のシステム構成から、処理量が相対的に不足しているシステム構成要素の数を増加させていくことで各層の台数比を求める方法である。
第2の方法の場合、システム構成候補列挙手段131は、層が異なるシステム構成候補のメトリックの処理量の比を元にして、各層のシステム構成候補のメトリックの処理量の比を求める。例えば、第1層のシステム構成要素のメトリックM0と第2層のシステム構成要素のメトリックM1の処理量の比だけでは、第3層のシステム構成要素のメトリックの処理量との関係が分からない。そこで、第3層のシステム構成候補のメトリックM2と、M1(M0でもよい。)との処理量の比と、M0とM1の処理量の比とから、システム構成候補列挙手段131は、M0,M1,M2の処理量の比を求める。M0とM1の処理量の比と、M1とM2の処理量の比とから、M0,M1,M2の処理量の比を求める場合、2つの比(本例ではM0とM1の比、およびM1とM2の比)に共通するメトリックM1の値を共通化して、各比をつなげればよい。例えば、M0とM1の処理量の比が1:2であり、M1とM2の処理量の比が2:1ならば、M0,M1,M2の処理量の比を1:2:1として求めればよい。以下、この比を、メトリックの相関性から求めた処理量比と記す。
システム構成候補列挙手段131は、最小のシステム構成となるような各層のシステム構成要素の台数を決定する。システム構成候補列挙手段131は、例えば、各層のシステム構成要素が1台ずつである構成を最小のシステム構成として、各層のシステム構成要素の数を全て1台と定めてもよい。各層のシステム構成要素をE0,E1,E2とし、各層のシステム構成要素の台数をn0,n1,n2とする。ここでは、n0=1,n1=1,n2=1である。この「n0=1,n1=1,n2=1」という組み合わせは、システム構成候補の1つである。
システム構成候補列挙手段131は、性能プロファイルを参照して、各メトリックM0,M1,M2の処理量の比を求める。ここでは、n0=1であるので、サーバが1台のときにおけるメトリックM0に関する処理量(P0とする。)を性能プロファイルを参照して求めればよい。同様に、サーバが1台のときにおけるメトリックM1の処理量(P1とする。)、およびサーバが1台のときにおけるメトリックM2の処理量(P2とする。)も求める。システム構成候補列挙手段131は、処理量の比であるP0:P1:P2を、各メトリックM0,M1,M2の処理量の比とする。このP0:P1:P2を、性能プロファイルより求めた処理量比と記す。
次に、システム構成候補列挙手段131は、メトリックの相関性から求めた処理量比と、性能プロファイルより求めた処理量比とを比較して、相対的に性能プロファイルより求めた処理量比が最も小さくなっているシステム構成要素を特定する。この特定方法を具体的に示す。メトリックの相関性から求めた処理量比がp:q:rであり、性能プロファイルより求めた処理量比がs:t:uであるとする。システム構成候補列挙手段131は、性能プロファイルより求めた処理量比における各項をそれぞれ、メトリックの相関性から求めた処理量比における対応する各項で除算した相対比を求める。すなわち、システム構成候補列挙手段131は、s/p:t/q:u/rを求める。システム構成候補列挙手段131は、この相対比の各項のうち、最も小さい項に対応するシステム構成要素を、「相対的に性能プロファイルより求めた処理量比が最も小さくなっているシステム構成要素」として特定する。
例えば、メトリックの相関性から求めた処理量比p:q:r=1:1:1であり、性能プロファイルより求めた処理量比s:t:u=1:2:3であるとする。このとき、相対比は1:2:3となり、相対比における最小の項「1」に対応するシステム構成要素を、「相対的に性能プロファイルより求めた処理量比が最も小さくなっているシステム構成要素」とする。
また、例えば、メトリックの相関性から求めた処理量比p:q:r=1:2:3であり、性能プロファイルより求めた処理量比s:t:u=1:1:1であるとする。このとき、相対比は1:1/2:1/3となり、相対比における最小の項「1/3」に対応するシステム構成要素を、「相対的に性能プロファイルより求めた処理量比が最も小さくなっているシステム構成要素」とする。
「相対的に性能プロファイルより求めた処理量比が最も小さくなっているシステム構成要素」を特定したならば、そのシステム構成要素を1台増加する。例えば、「相対的に性能プロファイルより求めた処理量比が最も小さくなっているシステム構成要素」がE1であったとする。すると、「n0=1,n1=1,n2=1」というシステム構成要素に対し、E1の台数を一台増加し、「n0=1,n1=2,n2=1」として、その台数の組み合わせをシステム構成候補の一つとして追加する。
以降、同様にして、システム構成候補列挙手段131は、「相対的に性能プロファイルより求めた処理量比が最も小さくなっているシステム構成要素」を特定し、そのシステム構成要素の台数を1台増加して新たなシステム構成候補とする処理を繰り返す。システム構成候補列挙手段131は、いずれかのシステム構成要素の台数が上限値に達するか、あるいはシステム構成要素を増やしても処理量が飽和する状態になるまで上記の処理を繰り返す。
なお、ここでは、増加するシステム構成要素の台数を1台ずつとしたが、2台以上ずつシステム構成要素を増加させながらシステム構成候補を定めていってもよい。
また、システム構成候補列挙手段131は、前述の台数限界値記憶手段(図示せず。)を参照して、いずれかのシステム構成要素の台数が上限値に達したか否かを判定すればよい。また、各層におけるサーバの台数の下限値が定められている場合には、システム構成候補列挙手段131は、その下限値よりも少ない台数を定めたシステム構成候補を、システム構成候補から除外する。
また、後述するように、サーバを通信ネットワークに接続させる態様として、物理的には通信ネットワークに接続されているがソフトウェアのインストールや通信を行うための設定が行われていないサーバに対して、ソフトウェアのインストールや通信を行うための設定を行う態様がある。このような態様でサーバを追加する場合、予め用意されて通信ネットワークに物理的に接続されている各層毎のサーバの台数を示す情報が、データ処理装置100が備える記憶装置に記憶されていてもよい。そして、この情報が示すサーバの台数の上限値として参照してもよい。
システム構成候補列挙手段131によってシステム構成候補が生成された後(ステップA4の後)、有効範囲計算手段132は、有効範囲(各層の各サーバが処理可能な負荷の範囲)を計算する(ステップA5)。以下、有効範囲の計算処理について説明する。
有効範囲計算手段132は、ステップA4の第2の方法と同様にして、「メトリックの相関性から求めた処理量比」を導出する。
また、有効範囲計算手段132は、ステップA4で導出された複数のシステム構成候補の中から一つのシステム構成候補を選択する。有効範囲計算手段132は、選択したシステム構成候補で定められている各層のシステム構成要素の台数に基づいて、ステップA4の第2の方法と同様に、「性能プロファイルより求めた処理量比」を導出する。
さらに、有効範囲計算手段132は、「メトリックの相関性から求めた処理量比」および「性能プロファイルより求めた処理量比」とから、ステップA4の第2の方法と同様に、「相対的に性能プロファイルより求めた処理量比が最も小さくなっているシステム構成要素」を特定する。そして、有効範囲計算手段132は、特定したシステム構成要素が、選択したシステム構成候補で何台に定められいるかを判定する。
有効範囲計算手段132は、性能プロファイルを参照して、その台数に応じた処理量を求める。この処理量をQとする。有効範囲計算手段132は、その処理量Qを基準として、他の層の処理量を、「メトリックの相関性から求めた処理量比」に基づいて算出する。例えば、「相対的に性能プロファイルより求めた処理量比が最も小さくなっているシステム構成要素」が第1層のサーバ211であり、システム構成候補で定められたサーバ211の台数に応じた第1層の処理量Qを求めたとする。このとき、第2層の処理量Q’および第3層の処理量Q’’を求める。有効範囲計算手段132は、Q:Q’:Q’’が「メトリックの相関性から求めた処理量比(例えば、p:q:r)」と等しくなるように第2層の処理量Q’および第3層の処理量Q’’を求める。すなわち、Q:Q’:Q’’=p:q:rとなるような処理量Q’,Q’’を求める。
有効範囲計算手段132は、このようにして求めた各層の処理量を、選択したシステム構成候補における各層の有効範囲の上限とする。また、有効範囲計算手段132は、選択したシステム構成候補における各層の有効範囲の下限をいずれも0に定める。上記の例の場合、第1層210の有効範囲は0〜Qであり、第2層220の有効範囲は0〜Q’であり、第3層230の有効範囲は0〜Q’’である。
有効範囲計算手段132は、選択したシステム構成候補に関して各層の有効範囲を求めたならば、未選択のシステム構成候補を選択し、同様にそのシステム構成候補における各層の有効範囲を求める。有効範囲計算手段132は、未選択のシステム構成候補がなくなるまで上記の処理を繰り返す。この結果、各システム構成候補毎に、システム構成候補に対応する有効範囲が導出される。
ステップA5の後、トリガ生成手段133は、有効範囲の境界(各有効範囲の上限)に基づいて、トリガを定める(ステップA6)。トリガ生成手段133は、システム構成候補列挙手段131によって導出されたシステム構成候補を、各層のサーバ台数(システム構成要素の台数)がそれぞれ増加していくように昇順に並べる。さらに、トリガ生成手段133は、そのシステム構成候補の順番に従って、各システム構成候補に対応する有効範囲(各層の有効範囲の組み合わせ)を順番に並べる。そして、順番に並ぶシステム構成候補の有効範囲の境界を特定する。例えば、あるシステム構成候補Aに対応する有効範囲(各層の有効範囲の組み合わせ)が、「第1層のサーバでは0〜Q1。第2層のサーバでは0〜Q2。第3層のサーバでは0〜Q3。」であり、次のシステム構成候補Bに対応する有効範囲が、「第1層のサーバでは0〜Q1’。第2層のサーバでは0〜Q2’。第3層のサーバでは0〜Q3’。」であったとする。トリガ生成手段133は、システム構成要素数が少ない方のシステム構成候補の有効範囲の上限を境界として特定する。本例では、有効範囲の境界を「第1層ではQ1、第2層ではQ2、第3層でQ3」と特定する。
続いて、トリガ生成手段133は、特定した境界よりも所定数低い値をトリガとして定める。上記の例の場合、例えば、第1層のトリガをQ1−k、第2層のトリガをQ2−k、第3層のトリガをQ3−kとして定める。なお、第1層のトリガがQ1−kであるということは、第1層におけるメトリックがQ1−kより低い値からQ1−kまで上昇したら、より有効範囲の広いシステム構成候補に切り替えるべきであることを意味し、第1層におけるメトリックがQ1−kより高い値からQ1−kまで減少したら、より有効範囲の狭いシステム構成候補に切り替えるべきであることを意味する。
また、トリガ生成手段133は、特定した境界に所定の割合(100%よりも低い所定の割合)を乗じてトリガを定めてもよい。例えば、上記の例の場合、例えば、第1層のトリガを0.9・Q1、第2層のトリガを0.9・Q2、第3層のトリガを0.9・Q3として定めてもよい。
トリガ生成手段133は、システム構成候補の有効範囲の境界毎にトリガを定める。
次に、操作系列生成手段134は、システム構成候補の差分から、操作系列を生成する(ステップA7)。操作系列生成手段134は、各層のシステム構成要素の台数がそれぞれ増加していくように昇順に並べられたシステム構成候補において、連続して並んでいるシステム構成候補同士の差分をそれぞれ求める。すなわち、連続して並んでいる2つのシステム構成候補に関して、一方のシステム構成候補のみに含まれるシステム構成要素(サーバ)を求める。操作系列生成手段134は、差分となるサーバを層に追加するための操作の情報をシステム操作記憶手段140から読み込み、2つのシステム構成候補の差分となるサーバを追加するための操作の情報の集合を一つの操作系列とする。同様に、差分となるサーバを層から除外するための操作の情報をシステムシステム操作記憶手段140から読み込み、2つのシステム構成候補の差分となるサーバを除外するための操作の情報の集合を一つの操作系列とする。
操作系列生成手段134は、同様にして、連続して並ぶ2つのシステム構成候補毎に、その差分となるサーバを追加するための操作系列、および差分となるサーバを除外するための操作系列を定めていく。
なお、サーバを通信ネットワークに接続させる態様として、物理的に接続されていないサーバを人間が物理的に通信ネットワークに接続させ、そのサーバにソフトウェアをインストールしたり、そのサーバの設定を、通信ネットワークを介した通信が行えるように設定したりする態様がある。この接続態様では、操作対象要素に対する操作として、例えば、「サーバを物理的に通信ネットワークに接続させる。」、「サーバにソフトウェアをインストールする。」、「通信ネットワークを介して通信可能となるようにサーバの設定を変更する。」、「ソフトウェアを起動する。」等の操作が含まれる。物理的に接続されていないサーバを人間が物理的に通信ネットワークに接続させる場合には、「サーバを物理的に通信ネットワークに接続させる。」という操作の情報を含む情報をシステム操作記憶手段140から読み込み、「サーバを物理的に通信ネットワークに接続させる。」という操作の情報を含む操作系列を定める。
また、サーバを通信ネットワークに接続させる態様として、物理的には通信ネットワークに接続されているがソフトウェアのインストールや通信を行うための設定が行われていないサーバに対して、ソフトウェアのインストールや通信を行うための設定を行う態様がある。この場合には、例えば、「サーバを通信可能となるように設定変更する。」、「サーバにソフトウェアをインストールする。」、「ソフトウェアを起動する。」等の情報を含む操作系列を定めればよい。
サーバを通信ネットワークに接続させる態様を、上記の2つの態様のいずれかにするかは、予め定められ、その態様に応じた操作の情報が予めシステム操作記憶手段140に記憶される。
ステップA7において、システム構成候補同士の差分となるシステム構成要素を追加あるいは除外するための操作の情報がシステム操作記憶手段140に記憶されておらず、操作系列生成手段134がシステム操作記憶手段140から操作の情報を読み込むことができない場合には、操作系列生成手段134は、操作の情報を用意してシステム操作記憶手段140に記憶させるべきことを示すメッセージを出力する(例えば、メッセージをディスプレイ装置に表示させる)。
ステップA7の後、ルール生成手段130は、ステップA6で得られたトリガと、ステップA7で得られた操作系列とを組み合わせて、システム構成変更ルールを生成する(ステップA8)。トリガおよび操作系列は、連続して並ぶ2つのシステム構成候補毎に求められる。この2つのシステム構成候補の境界に基づいて求められたトリガが、2つのシステム構成候補の一方から他方に切り替えるトリガとなる。2つのシステム構成候補のうち、システム構成要素の少ない方のシステム構成候補からシステム構成要素の多い方のシステム構成候補に切り替えるシステム構成変更ルールは、その有効範囲の境界から求めたトリガと、差分となるサーバを追加するための操作系列とを組み合わせることによって生成すればよい。また、2つのシステム構成候補のうち、システム構成要素の多い方のシステム構成候補からシステム構成要素の少ない方のシステム構成候補に切り替えるシステム構成変更ルールは、その有効範囲の境界から求めたトリガと、差分となるサーバを除外するための操作系列とを組み合わせればよい。
なお、例えば、ルール生成手段130が監視システム170に、生成したシステム構成変更ルールを送信するなどして、監視システム170にシステム構成変更ルールを保持させる。監視システム170は、対象システム160の状態を監視し、保持しているシステム構成変更ルールのトリガを満足する状態になったならば、そのシステム構成変更ルールの操作系列に従ってサーバを追加したり、あるいはサーバを削除するための操作を行う。例えば、「サーバを通信可能となるように設定変更する。」、「サーバにソフトウェアをインストールする。」、「ソフトウェアを起動する。」、「通信不能となるようにサーバの設定を変更する。」、「ソフトウェアを終了する。」、「サーバからソフトウェアを削除する。」等の操作系列に含まれる個々の情報に従って、通信ネットワークを介してサーバの設定変更や、ソフトウェアのインストールや削除等の操作を行う。ただし、監視システム170は、サーバを物理的に通信ネットワークに接続させることはできない。そこで、「サーバを物理的に通信ネットワークに接続させる。」という操作に関しては、その操作情報をディスプレイ装置(図1において図示せず。)に表示して、管理者にサーバを物理的に通信ネットワークに接続すべきことを知らせる。
また、上記の説明では、要素間相関性導出手段110が回帰分析によって、相関性を有するメトリックの組み合わせや、メトリック間の相関性を導出する場合を示したが、要素間相関性導出手段110は、各層のサーバ211,221,231に搭載されているプログラムを解析することによって、相関性を有するメトリックの組み合わせや、メトリック間の相関性を導出してもよい。
次に、本実施の形態の効果について説明する。
本実施の形態によれば、要素間相関性導出手段110が、対象システム160のサーバのメトリックを計測し、計測したメトリック間の相関性を導出する。そして、システム構成候補列挙手段131が、メトリックの相関性と性能プロファイルとに基づいてシステム構成候補を導出する。従って、一部の層のシステム構成要素が過剰に多かったり少なかったりすることのない組み合わせをシステム構成候補として特定することができる。
また、本実施の形態によれば、有効範囲計算手段132が、システム構成候補毎に有効範囲(各層の各サーバが処理可能な負荷の範囲)を計算し、トリガ生成部133がその有効範囲の境界に基づいて対象システム160の構成を変更する条件(トリガ)を定める。また、操作系列生成手段134が、システム構成候補同士の差分(一方のシステム構成候補のみに含まれるシステム構成要素)を追加したり除外するための操作の情報をシステム操作記憶手段140から読み込み、自律制御ルール生成手段130がトリガと操作の情報の集合である操作系列とを組み合わせてシステム構成変更ルールを生成する。従って、人間の経験や実績によらずにシステム構成変更ルールを生成することができる。また、人間のスキルによらずにシステム構成変更ルールを生成することができるので、適切なシステム構成ルールを容易に生成することができる。
実施の形態2.
図6は、本発明の第2の実施の形態のシステム構成候補導出装置の例を示すブロック図である。第1の実施の形態と同様の構成部については図1と同一の符号を付し、説明を省略する。第2の実施の形態では、データ処理装置100は、要素間相関性導出手段110、性能プロファイル手段120、システム構成候補列挙手段131、有効範囲計算手段132、トリガ生成手段133、操作系列生成手段134、ルール生成手段130に加えて、システム構成候補絞込手段135を備える。
既に説明したように、有効範囲計算手段132は、選択する各システム構成候補における各層の有効範囲の下限をいずれも0に定める。従って、各システム構成候補の有効範囲の下限はいずれも0であり、あるシステム構成候補の有効範囲は、システム構成要素がより少ない他のシステム構成候補の有効範囲を包含し、この二つのシステム構成候補の有効範囲には重複する部分がある。
システム構成候補絞込手段135は、互いに異なるシステム構成候補の有効範囲同士の重複部分が大きい場合には、そのシステム構成候補のうちの一方を、システム構成候補から除外する処理を行う。
図7は、第2の実施の形態のシステム構成候補導出装置の処理経過の例を示すフローチャートである。第1の実施の形態と同様の処理については、図5に示す符号と同一の符号を付し説明を省略する。システム構成候補絞込手段135は、ステップA5で各システム構成候補の有効範囲が計算された後、互いに異なるシステム構成候補の有効範囲同士の重複部分が大きいか否かを判定し、重複部分が大きいと判定した場合には、そのシステム構成候補のいずれか一方を、システム構成候補から除外し、もう一方のシステム構成候補のみをシステム構成候補として残す(ステップA5−a)。その後、ステップA6以降の動作を行う。
以下、このステップA5−aの処理を詳細に説明する。まず、有効範囲の重複について説明する。図8は、2つのシステム構成候補の有効範囲の例を示す説明図である。白色で示した部分はシステム構成要素の数が少ない方のシステム構成候補(以下、候補1とする。)の有効範囲を表している。斜線で示した部分はシステム構成要素の数が多い方のシステム構成候補(以下、候補2とする。)の有効範囲を表している。また、図8では、第1層から第3層までの相関性のあるメトリックの有効範囲を表している。候補1の第1層のメトリックの有効範囲は0〜hであり、候補2の第1層のメトリックの有効範囲は0〜h’であり、0〜hの範囲が重複する。候補1の第2層のメトリックの有効範囲は0〜iであり、候補2の第2層のメトリックの有効範囲は0〜i’であり、0〜iの範囲が重複する。候補1の第3層のメトリックの有効範囲は0〜jであり、候補2の第3層のメトリックの有効範囲は0〜j’であり、0〜jの範囲が重複する。
システム構成候補絞込手段135は、各層の相関性のあるメトリックそれぞれについて、有効範囲の重複部分が、大きい方の有効範囲(すなわち、候補2の有効範囲)の有効範囲の所定の割合(例えば90%)以上である場合に、有効範囲同士の重複部分が大きいと判定する。以下、この所定の割合が90%である場合を例にして説明する。図8に示す例の場合、各層のメトリックの有効範囲について、h>0.9・h’,i>0.9・i’,j>0.9・j’が全て成立していれば、システム構成候補絞込手段135は、有効範囲同士の重複部分が大きいと判定する。
有効範囲同士の重複部分が大きいと判定した場合、システム構成候補絞込手段135は、候補1と候補2のいずれか一方をシステム構成候補から除外する。このとき、有効範囲が狭い方のシステム構成候補(システム構成要素の数が少ない方のシステム構成候補。ここでは候補1)を除外することが好ましい。
また、システム構成候補絞込手段135は、各層の相関性のあるメトリックのうちの所定のメトリックについて、有効範囲の重複部分が、大きい方の有効範囲の所定の割合以上である場合に、有効範囲同士の重複部分が大きいと判定してもよい。例えば、第1層のメトリックおよび第2層のメトリックについて、h>0.9・h’,i>0.9・i’が成立しているときに、有効範囲同士の重複部分が大きいと判定してもよい。
また、システム構成候補絞込手段135は、各層の相関性のあるメトリックそれぞれについて、小さい方の有効範囲(すなわち候補1の有効範囲)の上限値と大きい方の有効範囲(すなわち候補2の有効範囲)上限値との差が所定値(例えば10)以下である場合に、有効範囲同士の重複部分が大きいと判定してもよい。図8に示す例の場合、各層のメトリックの有効範囲について、h’−h>10,i’−i>10,j’−j>10が全て成立している場合に、有効範囲同士の重複部分が大きいと判定してもよい。
また、システム構成候補絞込手段135は、各層の相関性のあるメトリックのうちの所定のメトリックについて、小さい方の有効範囲の上限値と大きい方の有効範囲上限値との差が所定値以下である場合に、有効範囲同士の重複部分が大きいと判定してもよい。例えば、第1層のメトリックおよび第2層のメトリックについて、h’−h>10,i’−i>10が成立しているときに、有効範囲同士の重複部分が大きいと判定してもよい。
上記の例における所定の割合あるいは所定値は、相関性を有するメトリック毎に異なっていてもよい。
システム構成候補絞込手段135は、システム構成候補として残っているシステム構成候補の中から2つのシステム構成候補を選択して、有効範囲同士の重複部分が大きいか否かを判定し、重複部分が大きいと判定した場合には、そのシステム構成候補のいずれか一方を削除する。この処理を、削除するシステム構成候補がなくなるまで繰り返す。その後、ステップA6以降の動作を行う。
第2の実施の形態においても、第1の実施の形態と同様に、システム構成ルールを容易に生成することができるという効果が得られる。さらに、第2の実施の形態では、有効範囲の重複部分が多い相異なるシステム構成候補については一方をシステム構成候補から除外して、システム構成候補を絞り込むことができる。
システム構成候補絞込手段135は、例えば、プログラムに従って動作するコンピュータ(中央処理装置)によって実現される。システム構成候補絞込手段135は、他の各手段と同一の中央処理装置によって実現されていてもよい。
実施の形態3.
図9は、本発明の第3の実施の形態のシステム構成候補導出装置の例を示すブロック図である。第1の実施の形態と同様の構成部については図1と同一の符号を付し、説明を省略する。第3の実施の形態では、データ処理装置100は、要素間相関性導出手段110、性能プロファイル手段120、システム構成候補列挙手段131、有効範囲計算手段132、トリガ生成手段133、操作系列生成手段134、ルール生成手段130に加えて、システム構成候補提示手段136を備える。
システム構成候補提示手段136は、システム構成候補131によって導出されたシステム構成候補の一覧を表示して、システム構成候補の一覧を利用者(例えば、対象システム106およびシステム構成候補導出装置の管理者)に提示する。そして、システム構成候補提示手段136は、利用者によって、除外するシステム構成候補の情報が入力されると、導出された複数のシステム構成候補のなかからそのシステム構成候補を除外する。
システム構成候補提示手段136は、例えば、プログラムに従って動作するコンピュータ(中央処理装置)と、ディスプレイ装置と、マウスやキーボード等の入力装置によって実現される。システム構成候補提示手段136を実現するための中央処理装置は、他の手段を実現するための中央処理装置と同一であってもよい。
図10は、第3の実施の形態のシステム構成候補導出装置の処理経過の例を示すフローチャートである。第1の実施の形態と同様の処理については、図5に示す符号と同一の符号を付し説明を省略する。システム構成候補絞込手段135は、ステップA5で各システム構成候補の有効範囲が計算された後、システム構成候補の一覧を表示し、利用者によって、除外するシステム構成候補の情報が入力されると、導出された複数のシステム構成候補のなかからそのシステム構成候補を除外する(ステップA5−b)。その後、ステップA6以降の動作を行う。
図11は、システム構成候補提示手段136によって表示されるシステム構成候補の一覧の表示画面の例を示す説明図である。システム構成候補の一覧の表示画面は、例えば、システム構成候補の表示欄401と、システム構成候補の有効範囲の表示欄402と、除外すべきシステム構成候補を指定するためのチェックボックス403と、メトリックを選択するためのプルダウンメニュー404とを含む。
システム構成候補提示手段136は、ステップA5−bにおいて、それぞれのシステム構成候補を表示する各表示欄401と、個々の表示欄401に対応させてチェックボックス402および有効範囲を表示する各表示欄402と、プルダウンメニュー404とを含む画面をディスプレイ装置に表示させる。システム構成候補提示手段136は、プルダウンメニュー404にはデフォルトのメトリックの名称を表示し、そのメトリックの有効範囲を各表示欄402に表示する。また、利用者によってプルダウンメニュー404が操作され、他のメトリックが指定された場合には、そのメトリックの有効範囲を各表示欄402に表示する。
利用者は、除外すべきシステム構成候補に対応するチェックボックス403をマウスでクリックする。システム構成候補提示手段136は、チェックボックス403がマウスによってクリックされると、クリックされたチェックボックスにチェックマークを表示する。そして、クリックされたチェックボックス403に対応するシステム構成候補を、ステップA4で導出された各システム構成候補の中から除外する。その後、ステップA6以降の動作を行う。
第3の実施の形態においても、第1の実施の形態と同様に、システム構成ルールを容易に生成することができるという効果が得られる。さらに、利用者が不要と考えるシステム構成候補を、利用者の判断で削除することができる。
データ処理装置100は、第2の実施の形態におけるシステム構成候補絞込手段135と、第3の実施の形態におけるシステム構成候補提示手段136の双方を備えていてもよい。そのような構成の場合、システム構成候補絞込手段135が第2の実施の形態におけるステップA5−aの処理を行った後に、システム構成候補提示手段136が第3の実施の形態におけるステップA5−bの処理を行い、その後ステップA6以降の処理を行ってもよい。あるいは、システム構成候補提示手段136が第3の実施の形態におけるステップA5−bの処理を行った後に、システム構成候補絞込手段135が第2の実施の形態におけるステップA5−aの処理を行い、その後ステップA6以降の処理を行ってもよい。
また、第1の実施の形態から第3の実施の形態までの各実施の形態において、システム構成候補列挙手段131が、導出したシステム構成候補を一旦記憶装置に記憶させ、有効範囲計算手段132がその記憶装置からシステム構成候補を読み込む構成であってもよい。図12は、システム構成候補を記憶装置に一旦記憶させるシステム構成候補導出装置の例を示すブロック図である。第1の実施の形態と同様の構成部については図1と同一の符号を付し、説明を省略する。データ処理装置100は、要素間相関性導出手段110、性能プロファイル手段120、システム構成候補列挙手段131、有効範囲計算手段132、トリガ生成手段133、操作系列生成手段134、ルール生成手段130に加えて、さらにシステム構成候補記憶手段141を備える。
システム構成候補記憶手段141は、システム構成候補列挙手段131が導出したシステム構成候補を記憶する記憶装置である。システム構成候補列挙手段131は、導出したシステム構成候補をシステム構成候補記憶手段141に記憶させる。このとき、システム構成候補記憶手段141は、要素間相関性導出手段110によって導出されたメトリックの相関性の情報もシステム構成候補記憶手段141に記憶させる。そして、有効範囲計算手段132は、システム構成候補記憶手段141から各システム構成候補およびメトリックの相関性の情報を読み込んでステップA5の処理を行う。
なお、ステップA5の処理では性能プロファイルも用いる。既に説明した各実施の形態と同様に、性能プロファイル手段120が、性能プロファイルを有効範囲計算手段132に渡してもよい。あるいは、性能プロファイル手段120が予め性能プロファイルを記憶し、有効範囲計算手段132がその性能プロファイルを性能プロファイル手段120から読み込んでもよい。また、システム構成候補列挙手段131が、性能プロファイル手段120によって生成される各性能プロファイル(または性能プロファイル手段120が予め記憶している各性能プロファイル)を、システム構成候補とともにシステム構成候補記憶手段141に記憶させてもよい。そして、有効範囲計算手段132が、システム構成候補および性能プロファイルをシステム構成候補記憶手段141から読み込んでもよい。
図12に示すような構成においても、データ処理装置100は、システム構成候補絞込手段135(図6参照。)やシステム構成候補提示手段136(図9参照。)を備えていてもよい。
また、本発明のシステム構成候補導出装置は、有効範囲計算手段132、トリガ生成手段133、操作系列134、ルール生成手段130を備えずに、ステップA1〜A4までの処理を行う構成であってもよい。そのような構成であっても、システム構成候補列挙手段131が、メトリックの相関性と性能プロファイルとに基づいてシステム構成候補を導出することができるので、一部の層のシステム構成要素が過剰に多かったり少なかったりすることのない組み合わせをシステム構成候補として導出することができる。
次に、本発明のシステム構成候補導出装置を実現するための具体的な装置の例について説明する。図13は、本発明のシステム構成候補導出装置を実現するコンピュータの例を示す説明図である。コンピュータ1000は、CPU1001と、外部記憶装置1003と、メモリ1002と、入力装置1004と、ディスプレイ装置等の出力装置1005とを備える。メモリ1002は、プログラムを記憶し、CPU1001はそのプログラムに従って、要素間相関性導出手段110、プロファイル手段120、システム構成候補列挙手段131、有効範囲計算手段132、トリガ生成手段133、操作系列生成手段134、ルール生成手段130として動作する。また、第2の実施の形態や第3の実施の形態の場合には、システム構成候補絞込手段135やシステム構成候補提示手段136としての動作も行う。
外部記憶装置1003は、導出されたシステム構成候補、生成されたシステム構成変更ルールを記憶する。CPU1001はシステム構成変更ルールを生成した後、そのシステム構成変更ルールを外部記憶装置1003に記憶させてもよい。また、外部記憶装置1003は、予め用意されて通信ネットワークに物理的に接続されている各層毎のサーバの台数を示す情報を記憶していてもよい。この情報は、システム構成候補に含めることが可能な各層のシステム構成要素の上限値として参照される。
入力装置1004は、マウス、キーボード、タッチパネルなどの入力デバイスである。入力装置1004を介して、利用者からの指示(例えば、本発明の動作の開始や終了の指示等)が入力される。