(57)【特許請求の範囲】
【請求項１】
プールされているリソースの中からプログラムを実行させる前記リソースを選択する計算機リソース割当管理方法であって、
コンピュータが、
前記リソースごとに、利用コスト、現在の使用状況、および、スペック情報から特定される前記プログラムごとのリクエスト処理件数を記憶部に記憶し、
リクエスト処理件数を利用コストで除算したコストパフォーマンスを、前記現在の使用状況が未使用である前記リソースごとに計算し、前記コストパフォーマンスが大きい前記リソースを前記プログラムが実行する前記リソースとして選択し、
前記記憶部において前記リクエスト処理件数と対応づけて記憶されているプログラムのうちの第１プログラムを動作させた場合のコストパフォーマンスが大きい前記リソースのうちの所定リソースを選択し、その所定リソースが前記プログラムのうちの第２プログラムを実行させるリソースとして割り当てられているときには、前記第２プログラムを実行させるリソースを、前記所定リソースから他のリソースへと交換し、前記第１プログラムを実行させるリソースを、前記所定リソースとすること
を特徴とする計算機リソース割当管理方法。
【請求項２】
前記リソースの選択処理は、制限コスト内に収まっている前記リソースの中で前記コストパフォーマンスが大きい前記リソースを選択することを特徴とする請求項１に記載の計算機リソース割当管理方法。
【請求項３】
前記リソースの選択処理は、プールされている第１のリソースに関するリクエスト処理件数を、プールされている前記第１のリソース以外の複数の前記リソースに関するリクエスト処理件数から計算することを特徴とする請求項１または請求項２に記載の計算機リソース割当管理方法。
【請求項４】
前記リソースの選択処理は、前記第１のリソース以外の複数の前記リソースに関するリクエスト処理件数を、前記プログラムを動作させることにより実測した値とすることを特徴とする請求項３に記載の計算機リソース割当管理方法。
【請求項５】
プールされているリソースの中からプログラムを実行させる前記リソースを選択する計算機リソース割当管理装置であって、
前記リソースごとに、利用コスト、現在の使用状況、および、スペック情報から特定される前記プログラムごとのリクエスト処理件数を記憶する記憶部と、
リクエスト処理件数を利用コストで除算したコストパフォーマンスを、前記現在の使用状況が未使用である前記リソースごとに計算し、その前記コストパフォーマンスが大きい前記リソースを前記プログラムが実行する前記リソースとして選択し、
前記記憶部において前記リクエスト処理件数と対応づけて記憶されているプログラムのうちの第１プログラムを動作させた場合のコストパフォーマンスが大きい前記リソースのうちの所定リソースを選択し、その所定リソースが前記プログラムのうちの第２プログラムを実行させるリソースとして割り当てられているときには、前記第２プログラムを実行させるリソースを、前記所定リソースから他のリソースへと交換し、前記第１プログラムを実行させるリソースを、前記所定リソースとするリソース割当管理部と、
を有することを特徴とする計算機リソース割当管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機リソース割当管理方法および計算機リソース割当管理装置に関する技術である。
【背景技術】
【０００２】
近年、インターネット環境で利用される業務アプリケーションが増えている。インターネット環境には不特定多数の利用者が存在するため、利用者数やリクエスト数の見積もりが難しい状況にある。
【０００３】
急激に増加したアクセスに対応するために、プール化した未使用のリソース群の中から自動的に業務アプリケーションを実行させるリソースを選択するという、グリッドコンピューティングの技術が実用化の時期を迎えている。
【０００４】
特許文献１では、負荷の状況に応じて、サービスレベルを維持するのに必要な資源（リソース）をリアルタイムに提供する技術が紹介されている。
【０００５】
他方、リソースの性能向上は著しく、年に数回のペースで、より高い性能を持ったリソースが登場しているため、大量なリソースを所有するデータセンタなどでは、最新のリソースから数世代前のリソースまで、様々な性能特性を持ったリソースが混在するようになっている。
【０００６】
急激に増加したアクセスに対応するために、プール化した未使用のリソース群の中からリソースを選択するにあたり、どういった性能特性を持ったリソースを選択するのがコストパフォーマンス的に優れているのかは、動作させている業務アプリケーションの特性によって異なる場合が多い。
【０００７】
具体的には、データベースへのアクセスが多発する業務アプリケーションであれば、ハードディスク装置のデータ転送性能が高いリソースの方が、単位時間あたりのリクエスト処理件数は大きくなる。逆に、ＣＰＵを多用するがハードディスク装置へのアクセスが少ない業務アプリケーションであれば、ハードディスク装置のデータ転送性能が低くても、ＣＰＵの周波数が高いリソースの方が、単位時間あたりのリクエスト処理件数は大きくなる。
【０００８】
プール化した未使用のリソース群の中から、どのリソースを選択するかを判断するのは、業務の特性を認識したシステム管理者の経験に基づく判断によることが多かった。
【特許文献１】特開２００２−０２４１９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来の技術では、リソースの性能特性と業務アプリケーション（プログラムやオブジェクトでもよい）の特性の組み合わせによって異なるコストパフォーマンスに視点を置いたリソースの割当は行なわれていなかったため、リソースの選択によりサービスレベルは維持されるが、そのために要するコストは考慮されていなかった。
【００１０】
つまり、従来の技術では、業務アプリケーションに必要なリソースという観点でしかリソースの割当は行なわれていなかった。そのため、リソースを過剰に割り当ててしまうことにより、コストが必要以上に高くかかってしまい、非効率であった。
【００１１】
そこで、本発明は、前記した問題を解決し、効率的に必要なリソースの割り当てを実現することを主な目的とする。
【課題を解決するための手段】
【００１２】
本発明は、プールされているリソースの中からプログラム（オブジェクトでもよい）を実行させる前記リソースを選択する計算機リソース割当管理方法であって、コンピュータが、前記リソースごとに、利用コスト、現在の使用状況、および、スペック情報から特定される前記プログラムごとのリクエスト処理件数を記憶部に記憶し、リクエスト処理件数を利用コストで除算したコストパフォーマンスを、前記現在の使用状況が未使用である前記リソースごとに計算し、前記コストパフォーマンスが大きい前記リソースを前記プログラムが実行する前記リソースとして選択し、前記記憶部において前記リクエスト処理件数と対応づけて記憶されているプログラムのうちの第１プログラムを動作させた場合のコストパフォーマンスが大きい前記リソースのうちの所定リソースを選択し、その所定リソースが前記プログラムのうちの第２プログラムを実行させるリソースとして割り当てられているときには、前記第２プログラムを実行させるリソースを、前記所定リソースから他のリソースへと交換し、前記第１プログラムを実行させるリソースを、前記所定リソースとすることを特徴とする。その他の手段は、後記する。
【発明の効果】
【００１３】
本発明によれば、プールされているリソースの中から業務プログラムを稼動させるリソースを選択する場合において、当該業務プログラムを動作させた場合のコストパフォーマンスが大きいリソースが選択されるようになり、リソースを有効に活用することが可能となる。よって、効率的に必要なリソースの割り当てを実現することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。
【００１５】
図１は、本発明における一実施形態であるリソース割当管理装置１１１の構成例を示したものである。
【００１６】
業務アプリケーションは、業務処理サーバ１０５ａ〜ｎのいずれか１台または複数台の上で動作している。利用者クライアント１０１から業務アプリケーションへのリクエストは、ネットワーク１０２を介してルータ１０３に届く。ルータ１０３は、リクエストに含まれる情報から判断した負荷分散装置１０４ａ〜ｎにリクエストを転送し、負荷分散装置１０４ａ〜ｎは、業務アプリケーションが動作している業務処理サーバ１０５ａ〜ｎのいずれか１台または複数台の負荷状況を判断した上で、リクエストを業務処理サーバ１０５に転送している。
【００１７】
リソース割当管理装置１１１は、業務処理サーバ１０５ａ〜ｎの負荷状況を監視し、必要に応じて業務アプリケーションに対する業務処理サーバ１０５ａ〜ｎの選択および非選択を行なう。なお、リソースの非選択とは、すでに業務アプリケーションを実行するように選択されたリソースについて、業務アプリケーションを実行しないように選択を解除することを指す。
【００１８】
リソース割当管理装置１１１内には、メモリ１１２、ＣＰＵ１１３、通信管理１１４、ネットワークアダプタ１１９が存在して、バス１１５で接続されている。通信管理１１４とは、ネットワークのプロトコルを動作させることによって、パケットの通信を管理する機能ブロックである。
【００１９】
リソース割当管理装置１１１は、ネットワークアダプタ１１９を介して、ＬＡＮ１２０に接続されている。
【００２０】
メモリ１１２には、リソース情報記憶テーブル１１６と処理能力記憶テーブル１１７とリソース割当管理部１１８が存在する。リソース割当管理部１１８は、リソース情報記憶テーブル１１６と処理能力記憶テーブル１１７を参照して、コストパフォーマンスが大きいリソースを選択し、コストパフォーマンスの小さいリソースの非選択を行なったりする。
【００２１】
表１および表２は、リソース情報記憶テーブル１１６の詳細例を示した図である。表１の各レコードは、スペックＩＤおよびスペック情報の対応情報を格納する。例えば、スペックＩＤ「１」のスペック情報は、ＣＰＵ周波数が「８６６ＭＨｚ」、メモリ量が「２５６ＭＢ」、ディスク転送速度が「１３３ＭＢ／Ｓ」である。
【表１】
0004594877.tif 000002
【００２２】
表２の各レコードは、リソースＩＤで特定されるリソースに関する情報である。例えば、リソースＩＤ「ａ−０１」のリソースは、スペックＩＤ「３」のスペック（表１参照）を有し、「２００円／時間」の利用コストで利用でき、「業務アプリケーションａ」によって現在使用されている。
【表２】
0004594877.tif 000003
【００２３】
表３は、処理能力記憶テーブル１１７の詳細例を示した図である。表３のテーブルには、リソース割当管理装置１１１が管理するリソースのスペック情報毎に、当該サーバで業務アプリケーションを動作させた場合の（単位時間あたりの）最大リクエスト処理件数の実測値を記録する。例えば、スペックＩＤ「１」のスペック（表１参照）は、単位時間あたりの処理件数が、業務アプリケーションａでは「６００」件、業務アプリケーションｂでは「７５０」件、業務アプリケーションｃでは「２５０」件となっている。
【表３】
0004594877.tif 000004
【００２４】
最大リクエスト処理件数の実測値とは、当該スペック情報の組み合わせを持つリソースで業務アプリケーションを動作させた際に、リソースの処理能力の限界点に達した時点のリクエスト処理件数を指す。例えば、リソースの処理能力の限界は、ＣＰＵ利用率が９０％に達するときとする。
【００２５】
図２は、業務アプリケーションａを例に、リソースを選択する（リソース上で業務アプリケーションを実行する）際の処理フロー例を示した図である。
【００２６】
リソース割当管理部１１８は、未使用のリソースに着目する（Ｓ４０１）。未使用のリソースとは、リソース情報記憶テーブル１１６を参照し、リソース使用状況が空白のリソースである。今回は、「ｂ−０１」、「ｄｄ−０１」、および、「ｚｚ−９９」という３つのリソースに着目する。
【００２７】
リソース割当管理部１１８は、分岐条件「未使用のリソースがない」を満たすか否か判定し（Ｓ４０２）、満たす場合（Ｓ４０２，Ｙｅｓ）は処理を終了し、満たさない場合（Ｓ４０２，Ｎｏ）はＳ４０３を実行する。なお、Ｓ４０２，Ｙｅｓとなるときには、選択できるリソースが存在しないことを意味する。
【００２８】
リソース割当管理部１１８は、未使用のリソースのコストパフォーマンスを求める（Ｓ４０３）。具体的には、処理能力記憶テーブル１１７から、着目したリソースのスペックＩＤに対応する行を検索し、業務アプリケーションａの最大リクエスト処理件数を求め、リソース情報記憶テーブル１１６に記録されているリソースの利用コストで除算する。例えば、リソースＩＤ「ｂ−０１」は、そのスペックＩＤが「１」であるので、業務アプリケーションａを単位時間あたり「６００」件実行でき、利用コストが「１５０」である。よって、リソースＩＤ「ｂ−０１」のコストパフォーマンスは、６００／１５０＝４となる（表４参照）。
【表４】
0004594877.tif 000005
【００２９】
リソース割当管理部１１８は、次の未使用のリソースに着目し、そのコストパフォーマンスを求める（Ｓ４０４）。リソース情報記憶テーブル１１６を参照することにより、次の未使用のリソースを検索する。例えば、「ｂ−０１」の次に存在する未使用のリソースは、「ｄｄ−０１」である。
【００３０】
リソース割当管理部１１８は、分岐条件「次の未使用のリソースがない？」を満たすか否か判定し（Ｓ４０５）、満たす場合（Ｓ４０５，Ｙｅｓ）はＳ４０６を実行し、満たさない場合（Ｓ４０５，Ｎｏ）はＳ４０３を実行する。分岐条件を満たすときには、全ての未使用リソースのコストパフォーマンスが求められる。
【００３１】
リソース割当管理部１１８は、コストパフォーマンスが大きいリソースを業務アプリケーションａ用に選択する（Ｓ４０６）。このとき、当該業務アプリケーションに選択するリソースの利用コストに制限コストがある場合には、利用コストが制限コスト内に収まるかどうかもリソースの選択要素とする。
【００３２】
図３は、業務アプリケーションｂを例に、コストパフォーマンスが未知のリソースを含む未使用リソースの中からリソースを選択する際の処理フロー例を示した図である。処理能力記憶テーブル１１７は、業務アプリケーションごとの最大リクエスト処理件数を記録している。業務アプリケーションｂの列に、単位時間あたりの最大リクエスト処理件数が未知のスペック（スペックＩＤ「４」、表３参照）が存在するため、まずスペックＩＤ「４」となるリソースＩＤ「ｂ−０２」（表２参照）のコストパフォーマンスを予想する必要がある。
【００３３】
リソース割当管理部１１８は、業務アプリケーションｂの最大リクエスト処理件数が記録されているスペック情報の組み合わせを２行選択する（Ｓ５０１）。今回はスペックＩＤ「１」およびスペックＩＤ「３」が選択されたものとする。
【００３４】
リソース割当管理部１１８は、選択した両者のスペック情報と処理能力を比較し、最大リクエスト処理件数に影響を与えるスペック情報の種類を判断する（Ｓ５０２）。業務アプリケーションｂの処理件数は、スペックＩＤ「１」が「７５０」件であり、スペックＩＤ「３」の「４００」件よりも優れている。スペックＩＤ「１」およびスペックＩＤ「３」に対応するスペック情報を比較すると、スペックＩＤ「１」がスペックＩＤ「３」よりも優れているのは、ディスク転送速度だけである。よって、業務アプリケーションｂを動作させた場合の処理能力は、ディスク転送速度に依存すると判断できる。
【００３５】
リソース割当管理部１１８は、業務アプリケーションｂを動作させた場合の最大リクエスト処理件数が記録されていないスペック情報の組み合わせについて、処理能力を推定し、コストパフォーマンスを予想する（Ｓ５０３）。スペックＩＤ「４」は、最大リクエスト処理件数に影響を与えるディスク転送速度がスペックＩＤ「１」と等しく、ＣＰＵ周波数やメモリ量もスペックＩＤ「１」を上回る。よって、スペックＩＤ「４」は、スペックＩＤ「１」と同等以上の最大リクエスト処理件数が得られると推定する。仮に、スペックＩＤ「４」の最大リクエスト処理件数をスペックＩＤ「１」と同じ「７５０」件としたときには、スペックＩＤ「４」を有するリソースＩＤ「ｂ−０２」のコストパフォーマンスは、７５０／２２０≒３．４１となる。
【００３６】
リソース割当管理部１１８は、予想値を含むコストパフォーマンスを比較して、コストパフォーマンスが大きいリソースを業務アプリケーションｂに選択する（Ｓ５０４）。なお、以上のスペックの推定を行うためには、業務アプリケーションｂに関する処理件数が２つ以上処理能力記憶テーブル１１７に記憶されている必要である。そうでないときには、業務アプリケーションｂを動作させた場合の処理能力が、どのスペック情報に大きく依存するのかが判断できない。そのような場合には、業務アプリケーションｂを動作させた場合の処理能力が記録されていないリソースを業務アプリケーションｂに選択し、最大リクエスト処理件数を求める。
【００３７】
図４は、業務アプリケーションｃを例に、他の業務との間でリソースを交換する際の処理フロー例を示した図である。図４では、業務アプリケーションｃを動作させた場合のコストパフォーマンスが大きいリソースを探して選択することを説明する。なお、業務アプリケーションｃが使用中のリソースの中で、コストパフォーマンスが小さいリソースを、よりコストパフォーマンスが大きいリソースへと交換することも同様に実現できる。ここで、リソースＡとリソースＢとの交換とは、所定のアプリケーションについて、選択中のリソースＡと、非選択中のリソースＢとに着目し、リソースＡを選択から非選択とするとともに、リソースＢを非選択から選択とすることを指す。
【００３８】
つまり、図４の処理は、当該業務アプリケーションを動作させるリソースを選択する際に、コストパフォーマンスが大きいリソースと同一のスペック情報を持つリソース（目的のリソース）が全て他の業務で使用中であった場合、目的のリソースを使用している他の業務アプリケーションにとって、目的のリソースよりもコストパフォーマンスが大きいリソースが存在する場合は、他の業務アプリケーションが使用している目的のリソースを他のリソースと交換して、目的のリソースを当該業務アプリケーションで利用することを特徴とする。
【００３９】
リソース割当管理部１１８は、業務アプリケーションｃを動作させた場合のコストパフォーマンスが大きいリソースに着目する（Ｓ６０１）。今回は、リソースＩＤがｃｃ−０５であるリソースに着目する。そのリソースは、業務アプリケーションａに使用されている（表５参照）。
【表５】
0004594877.tif 000006
【００４０】
リソース割当管理部１１８は、着目したリソースを使用している業務アプリケーションａに着目する（Ｓ６０２）。
【００４１】
リソース割当管理部１１８は、未使用のリソースの中から、業務アプリケーションａを動作させた場合のコストパフォーマンスおよび最大リクエスト処理件数が着目したリソースより大きいリソースを検索する（Ｓ６０３）。今回は、リソースＩＤ「ｄｄ−０１」が検索できた。
【００４２】
リソース割当管理部１１８は、分岐条件「リソースが検索できた」を満たすか否か判定し（Ｓ６０４）、満たす場合（Ｓ６０４，Ｙｅｓ）はＳ６０５を実行し、満たさない場合（Ｓ６０４，Ｎｏ）は処理を終了する。
【００４３】
リソース割当管理部１１８は、業務アプリケーションａに検索したリソースを選択した後、着目したリソースを非選択する（Ｓ６０５）。つまり、業務アプリケーションａが使用するリソースをリソースＩＤ「ｃｃ−０５」からリソースＩＤ「ｄｄ−０１」に交換する。
【００４４】
リソース割当管理部１１８は、業務アプリケーションｃに着目したリソースを選択した後、業務アプリケーションｃが動作していたコストパフォーマンスが小さいリソースを非選択する（Ｓ６０６）。つまり、業務アプリケーションｃが使用するリソースＩＤを「ｂ−０１」から「ｃｃ−０５」に交換する（表６参照）。
【表６】
0004594877.tif 000007
【００４５】
このように全体で使用するリソースのコストパフォーマンスを最大化する処理を、定期的に各業務アプリケーションに対して実施することで、リソースが有効に活用されるようになる。
【００４６】
図５は、時間とともに変動するリソースの利用コストに対応するため、定期的あるいはオペレータの指示を契機にコストパフォーマンスを最大化する処理の処理フロー例である。この処理は、定期的あるいはオペレータの指示を契機に動作する。
【００４７】
図５の処理は、リソースの利用コストが、時間とともに変化するため、定期的あるいはオペレータの指示を契機に、その時点のリソースの利用コストにより当該業務アプリケーションを動作させた場合のコストパフォーマンスを再計算し、現在使用中のリソースよりコストパフォーマンスが大きい空きリソースが存在する場合には、リソースを交換することを特徴とする。
【００４８】
リソース割当管理部１１８は、当該業務アプリケーションで現在使用しているリソースのコストパフォーマンスを再計算する（Ｓ７０１）。例えば、業務アプリケーションａに着目すると、リソースＩＤ「ａ−０１」、および、「ｃｃ−０５」のコストパフォーマンスをそれぞれ計算する（表７参照）。
【表７】
0004594877.tif 000008
【００４９】
リソース割当管理部１１８は、未使用のリソースで当該業務アプリケーションを動作させた場合のコストパフォーマンスを計算する（Ｓ７０２）。例えば、リソースＩＤ「ｂ−０１」、「ｄｄ−０１」、および、「ｚｚ−９９」のコストパフォーマンスをそれぞれ計算する（表７参照）。
【００５０】
リソース割当管理部１１８は、分岐条件「現在使用しているリソースよりコストパフォーマンスが大きい未使用リソースがある」を満たすか否か判定し（Ｓ７０３）、満たす場合（Ｓ７０３，Ｙｅｓ）はＳ７０４を実行し、満たさない場合（Ｓ７０３，Ｎｏ）は処理を終了する。例えば、リソースＩＤ「ａ−０１」のコストパフォーマンス「１．５」よりも、リソースＩＤ「ｂ−０１」のコストパフォーマンス「４」の方が大きい。
【００５１】
リソース割当管理部１１８は、現在使用しているコストパフォーマンスが小さいリソースを、コストパフォーマンスが大きい未使用リソースと交換する（Ｓ７０４）。例えば、業務アプリケーションａが使用するリソースＩＤを、「ａ−０１」から「ｂ−０１」に交換する（表８参照）。
【表８】
0004594877.tif 000009
【００５２】
以上説明した本発明の一実施形態は、業務アプリケーションで使用しているリソースをコストパフォーマンスという観点で管理する。
【００５３】
そのため本実施形態では、ある性能特性（スペック情報の組み合わせ）を持つリソースで業務アプリケーションを動作させた際の最大リクエスト処理件数の実測値を、業務アプリケーションの種類毎に記録し、当該最大リクエスト件数をリソースの利用コストで除算することで、当該リソース上で当該業務アプリケーションを動作させた場合のコストパフォーマンスを求める。
【００５４】
そして、ある業務アプリケーションに割当てるリソースを選択する際には、コストパフォーマンスが大きいリソースを選択するようにする。
【００５５】
一方、ある性能特性を持ったリソースには当該業務アプリケーションを動作させた実績がなく、最大リクエスト処理件数が未知であった場合には、実測値のあるリソースの性能特性を元に、当該業務アプリケーションを動作させた場合のコストパフォーマンスを予想して、コストパフォーマンスが大きいリソースを選択するようにする。
【図面の簡単な説明】
【００５６】
【図１】本発明の一実施形態に関するリソース割当管理装置を示す構成図である。
【図２】本発明の一実施形態に関するリソースを選択する際の処理を示すフローチャートである。
【図３】本発明の一実施形態に関するコストパフォーマンスが未知のリソースを含む未使用リソースの中からリソースを選択する際の処理を示すフローチャートである。
【図４】本発明の一実施形態に関する他の業務との間でリソースを交換する際の処理を示すフローチャートである。
【図５】本発明の一実施形態に関する時間とともに変動するリソースの利用コストに対応するため、定期的あるいはオペレータの指示を契機に実行されるコストパフォーマンスの最大化処理を示すフローチャートである。
【符号の説明】
【００５７】
１０１  利用者クライアント
１０２  ネットワーク
１０３  ルータ
１０４  負荷分散装置
１０５  業務処理サーバ
１１１  リソース割当管理装置
１１２  メモリ
１１３  ＣＰＵ
１１４  通信管理
１１５  バス
１１６  リソース情報記憶テーブル
１１７  処理能力記憶テーブル
１１８  リソース割当管理部
１１９  ネットワークアダプタ
１２０  ＬＡＮ
【図１】
0004594877.tif 000010
【図２】
0004594877.tif 000011
【図３】
0004594877.tif 000012
【図４】
0004594877.tif 000013
【図５】
0004594877.tif 000014