(57)【特許請求の範囲】
【請求項１】
複数のプロセッサ、複数のアプリケーション・モジュール、及び、負荷レベル管理システムを備える処理システムにおいて実行される、リソースを管理する方法であって、当該複数のアプリケーション・モジュールが、対応するプロセッサに割り当てられ、当該プロセッサが、当該負荷レベル管理システムによって制御されるものである、当該方法であって、
前記プロセッサが、参照利用レベルを受け取るステップと、
複数のアプリケーション・モジュールを処理システムのリソース上で実行するステップと、
前記負荷レベル管理システムが、前記リソースの処理能力を、前記複数のアプリケーション・モジュールに、前記複数のアプリケーション・モジュールに関連付けられた複数の優先度レベルに基づいて割り当てて、前記リソースの負荷レベルが前記参照利用レベルと等しくなるようにするステップと、
記プロセッサが、前記複数のアプリケーション・モジュールのうち第１のアプリケーション・モジュールから、より多くの前記リソースの前記処理能力に対する要求を受け取るステップと、
前記第２のアプリケーション・モジュールに関連付けられた第２の優先度レベルよりも前記第１のアプリケーション・モジュールに関連付けられた第１の優先度レベルが大きいという判断に基づいて、前記リソースの前記処理能力の一部を前記複数のアプリケーション・モジュールのうち第２のアプリケーション・モジュールから前記第１のアプリケーション・モジュールに、委譲するステップと
を具え、
前記委譲するステップが、
前記負荷管理システムの制御の下で前記プロセッサが、前記リソースの前記処理能力の全てを、前記第２のアプリケーション・モジュールから、前記第１のアプリケーション・モジュールに転送して、前記第２のアプリケーション・モジュールをオフラインにするサブステップと、
前記負荷管理システムが、前記リソースの処理能力に対する、前記第１のアプリケーション・モジュールから受信される要求の受信される比率が減少しているかを判断するサブステップと、
前記負荷管理システムの制御の下で前記プロセッサが、前記第２のアプリケーション・モジュールに、前記リソースの処理能力に対する、前記第１のアプリケーション・モジュールから受信される要求の受信される前記比率が減少している、という判断に応じて、実行を再開するように指令する、前記第２のアプリケーション・モジュールへの命令を提供するサブステップと、
を具え、
前記負荷レベルが、アイドルプロセスの比率、空きメモリ量、又は、データのスループットのいずれかによって測定されることを特徴とする方法。
【請求項２】
前記受け取るステップは、前記リソースを含む複数のリソースに関連付けられた前記参照利用レベルを受け取るステップを含むことを特徴とする請求項１記載の方法。
【請求項３】
前記リソースの処理能力を、前記複数のアプリケーション・モジュールに、前記複数のアプリケーション・モジュールに関連付けられた複数の優先度レベルに基づいて割り当てるステップは、前記リソースの前記処理能力の全てを前記複数のアプリケーション・モジュールの第１のアプリケーション・モジュールに、前記第１のアプリケーション・モジュールに関連付けられた第１の優先度レベルに基づいて割り当てるステップを含むことを特徴とする請求項１記載の方法。
【請求項４】
前記負荷管理システムの制御の下で前記プロセッサが、前記複数のアプリケーション・モジュールのうち少なくとも１つのアプリケーション・モジュールに関連付けられた修正優先度レベルを受け取るステップと、
前記負荷管理システムの制御の下で前記プロセッサが、前記リソースの前記処理能力を、前記複数のアプリケーション・モジュールに、前記修正優先度レベルに基づいて再割当てし、前記リソースの負荷レベルが前記参照利用レベルと等しくなるようにするステップと
をさらに具えたことを特徴とする請求項１記載の方法。
【請求項５】
前記負荷管理システムの制御の下で前記プロセッサが、修正参照利用レベルを受け取るステップと、
前記負荷管理システムの制御の下で前記プロセッサが、前記リソースの前記処理能力を、前記複数のアプリケーション・モジュールに、前記複数のアプリケーション・モジュールに関連付けられた前記複数の優先度レベルに基づいて再割当てし、前記リソースの負荷レベルが前記修正参照利用レベルと等しくなるようにするステップと、
をさらに具えたことを特徴とする請求項１記載の方法。
【請求項６】
修正参照利用識別子を受け取るステップが所定のスケジュールに従って実施されることを特徴とする請求項５記載の方法。
【請求項７】
前記リソースの処理能力を、前記複数のアプリケーション・モジュールに、前記複数のアプリケーション・モジュールに関連付けられた複数の優先度レベルに基づいて割り当てるステップは、前記リソースの前記処理能力を、前記複数のアプリケーション・モジュールに、前記複数のアプリケーション・モジュールに関連付けられた前記複数の優先度レベルに基づいて割り当てて、前記リソースの平均負荷レベルが前記参照利用レベルと等しくなるようにするステップを含むことを特徴とする請求項１記載の方法。
【請求項８】
コンピュータ読取可能な記憶媒体であって、当該媒体上に、プロセッサベースのシステムに、リソースを管理させることを可能とするためのコンピュータプログラムロジックが記録された媒体であって、当該媒体が、
前記プロセッサベースのシステムに、複数のアプリケーション・モジュールをリソース上で実行させることを可能とするための、第１のプログラムロジックモジュールと、
前記プロセッサベースのシステムに、前記複数のアプリケーション・モジュールに関連する、複数の優先度レベルに基づいて、前記リソースについてのプロセッサの能力を、前記複数のアプリケーション・モジュールの中で割り当てさせて、前記リソースの負荷レベルが参照利用レベルと等しくなるようにさせることを可能とするための、第２のプログラムロジックモジュールと、
前記プロセッサベースのシステムに、前記複数の優先度レベルに基づいて、前記複数のアプリケーション・モジュールの他のアプリケーション・モジュールに関して、前記複数のアプリケーション・モジュールの各々の動作の優先度付けをさせるための、第３のプログラムロジックモジュールと、
前記プロセッサベースのシステムに、前記第２のアプリケーション・モジュールに関連する第２の優先度レベルが、前記第１のアプリケーション・モジュールに関連する第１の優先度レベルに比して、より大きいという判断に基づいて、前記第２のアプリケーション・モジュールからの、前記リソースの、より多くの処理能力を求める要求に応じて、前記リソースの前記処理能力の一部を、前記複数のアプリケーション・モジュールの前記第１のアプリケーション・モジュールから、前記複数のアプリケーション・モジュールの第２のアプリケーション・モジュールに委譲可能とさせるための、第４のプログラムロジックモジュールと、
前記プロセッサベースのシステムが、前記第２のアプリケーション・モジュールからの、前記リソースの、より多くの前記処理能力を求めるという、前記要求に応じて、前記リソースの前記処理能力の全てを、前記第１のアプリケーション・モジュールから、前記第２のアプリケーション・モジュールに転送して、前記第２のアプリケーション・モジュールをオフラインとすることを可能とさせるためのロジックと、
前記プロセッサベースのシステムに、前記リソースの処理能力に対する、前記第１のアプリケーション・モジュールから受信される要求の受信される前記比率が減少している、という判断をさせるためのロジックと、
前記リソースの処理能力に対する、前記第１のアプリケーション・モジュールから受信される要求の受信される前記比率が減少している、という判断に応じて、前記プロセッサベースのシステムに、前記第２のアプリケーション・モジュールに、前記第２のアプリケーション・モジュールが実行を再開するように指示する命令を与えることを可能とさせるためのロジックと、
を具え、
前記負荷レベルが、アイドルプロセスの比率、空きメモリ量、又は、データのスループットのいずれかによって測定されることを特徴とするコンピュータ読取可能な記憶媒体。
【請求項９】
前記複数のアプリケーション・モジュールに関連する、前記複数の優先度レベルに基づいて、前記プロセッサベースのシステムに、前記リソースの前記処理能力を、前記複数のアプリケーション・モジュールの中に再割当させて、前記リソースの負荷レベルが前記参照利用レベルと等しくなるようにすることを可能にするための、第５のプログラムロジックモジュール、
を更に具える、請求項８に記載のコンピュータ読取可能な記憶媒体。
【請求項１０】
前記プロセッサベースのシステムに、ユーザインターフェース要素を提供して、前記複数の優先度レベルの選択を可能とさせるための、第５のプログラムロジックモジュールを更に具える、請求項８に記載のコンピュータ読取可能な記憶媒体。
【請求項１１】
前記プロセッサベースのシステムに、ユーザインターフェース要素を提供させて、前記参照利用レベルの選択を可能とさせるための第５のプログラムロジックモジュールを更に具える、請求項８に記載のコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にシステムの負荷レベルの管理に関し、特にコンピュータ・システムのリソースを管理するためのシステムおよび方法に関する。
【背景技術】
【０００２】
コンピュータ・システム、例えば企業のデータ・センタにはしばしば、実行されるアプリケーションを有する複数のサーバが存在する。サーバは比較的低い効率で動作するのが一般的である。例えば、一部のサーバの負荷は１０〜３０％であることがある。仮想マシンをサーバに割り当てることで仮想化を用いて効率を改善しうるが、割り当てられた仮想マシン（複数可）がビジーでない場合は各サーバの負荷は依然として１０〜３０％でありうる。さらに、アプリケーションの要求は時間とともに変化し、これがサーバの負荷変動の原因となる。
【０００３】
サーバを比較的高い効率で運用することがしばしば望ましいが、サーバを比較的低い効率で実行してアプリケーションによる要求の潜在的な増加に適応させることが有益であることもある。サーバの効率をあまりに高く設定すると、サーバが増加したアプリケーションの要求に適応できないおそれがある。例えば、かかる増加した要求に適応できないことが、アプリケーションが行った幾つかの要求にサーバが応答しなくなる原因となるおそれがある。他方、サーバの効率をあまりに低く設定すると、増加したアプリケーションの要求に適応するのに必要な効率よりも低い効率でサーバが動作するおそれがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
サーバの負荷レベルを管理するための１つの提案されている技法は、アプリケーションの要求を別のサーバに転送して、要求の転送元であるサーバの負荷を軽減するものである。しかし、この提案された技法では、大量の時間と労力が必要となるおそれがある。例えば、アプリケーションの要求に適応するために利用できる十分なリソースを有するサーバを見つけるために検索が必要となる可能性がある。かかるサーバが見つかると、要求を転送するためのプロセスが使用される可能性がある。
【課題を解決するための手段】
【０００５】
本明細書では、コンピュータ・システムのリソースを管理するためのシステム、方法、およびコンピュータ・プログラム製品を説明する。複数のモジュール（例えば、仮想マシン、ＳＱＬサーバ・インスタンス、または他のアプリケーション）を複数のコンピュータ・システムのリソース（例えば、プロセッサ、サーバ、等）に割り当てることができる。各モジュールには優先度レベルが割り当てられる。さらに、指定の利用レベルがコンピュータ・システムの各リソースに割り当てられる。各リソースは１つまたは複数のモジュールをサポートし、対応する割り当てられた優先度レベルに従って、サポートされるモジュールの動作に優先度を付与する。さらに、各リソースは、サポートされるモジュールの動作全体を指定の利用レベルに保つ。
【０００６】
例示的な方法では、利用識別子が受け取られる。利用識別子とは、処理システムのリソースに関連付けられた参照利用レベルを示すものである。各リソースは、負荷レベルを参照利用レベルとほぼ等しくなるように保つように管理される。各リソースの処理能力を、当該リソース上で実行されるアプリケーション・モジュールに、参照利用レベルと当該アプリケーション・モジュールに関連付けられた優先度レベルとに基づいて割り当てる。
【０００７】
別の例示的な方法では、参照利用レベルが処理システムのリソースによって受け取られる。アプリケーション・モジュールはリソース上で実行される。リソースの処理能力を、アプリケーション・モジュールに、当該アプリケーション・モジュールに関連付けられた優先度レベルに基づいて割り当てて、リソースの負荷レベルが参照利用レベルとほぼ等しくなるようにする。
【０００８】
コンピュータ・プログラム製品も記載されている。コンピュータ・プログラム製品は、プロセッサ・ベースのシステムがリソースを管理できるようにするためのコンピュータ・プログラム・ロジックを記録したコンピュータ読取可能媒体を備える。コンピュータ・プログラム製品は第１のプログラム・ロジック・モジュールと第２のプログラム・ロジック・モジュールを備える。第１のプログラム・ロジック・モジュールは、プロセッサ・ベースのシステムがアプリケーション・モジュールをリソース上で実行できるようにするためのものである。第２のプログラム・ロジック・モジュールは、プロセッサ・ベースのシステムがリソースの処理能力をアプリケーション・モジュールに、当該アプリケーション・モジュールに関連付けられた優先度レベルに基づいて割り当てて、リソースの負荷レベルが参照利用レベルとほぼ等しくなるようにするためのものである。
【０００９】
本要約は、選択した概念を簡潔な形で導入するために与えたものである。その概念は後の発明を実施するための形態でさらに説明する。本要約は特許請求の主題の主要な特徴または本質的な特徴を特定しようとするものではなく、特許請求の主題の範囲を限定するために使用しようとするものでもない。さらに、本発明は発明の詳細な説明および／または本明細書の他のセクションに記載した具体的な実施形態には限定されないことに留意されたい。かかる実施形態は例示の目的のためにのみ本明細書で提示されているものである。さらなる実施形態は、本明細書に含まれる教示をもとにすれば当業者には明らかであろう。
【００１０】
添付の図面は、本明細書に取り込まれて本明細書の一部を成し、本発明を例示し、発明の詳細な説明とともに本明細書の原理を説明し当業者が本発明を製作し利用できるようにする役割を果たす。
【図面の簡単な説明】
【００１１】
【図１】本発明の１実施形態に従う例示的な処理システムのブロック図である。
【図２】本発明の１実施形態に従う、処理システムを管理するための方法の流れ図である。
【図３】本発明の１実施形態に従う、図１に示す負荷レベル管理システムの例示的な実装形態のブロック図である。
【図４】本発明の１実施形態に従う、リソースを管理するための方法の流れ図である。
【図５】本発明の１実施形態に従う、図１に示すリソースの例示的な実装形態のブロック図である。
【図６】本発明の１実施形態に従って管理される、負荷レベルを有する複数のリソースを示す図である。
【図７】本発明の実施形態を実装できるコンピュータの例示的な実装形態を示す図である。
【発明を実施するための形態】
【００１２】
本発明の特徴と利点は、図面と関連させて検討すると、以下で説明する発明を実施するための形態からさらに明らかになろう。図面全体を通じて、同一の参照番号により対応する要素を特定する。図面においては、同一の参照番号は一般に同一の要素、機能的に類似した要素、および／または構造的に類似した要素を示す。要素が最初に現れる図面を、対応する参照番号の左端の数字（複数可）によって示す。
【００１３】
Ｉ．導入
以下の詳細な説明は、本発明の例示的な諸実施形態を示す添付図面に言及する。しかし、本発明の範囲はこれらの実施形態に限定されることはなく、添付の特許請求の範囲により定義される。したがって、添付図面に示したもの以外の実施形態、例えば図示した実施形態を修正した版も、依然として本発明によって包含することができる。
【００１４】
本明細書における「１実施形態」、「実施形態」、「例示的な実施形態」、等への言及は、記載した実施形態が特定の機能、構造、または特徴を含みうるが全ての実施形態が当該特定の機能、構造、または特徴を必ずしも含まなくともよいことを示す。さらに、かかる語句は必ずしも同一の実施形態を指し示すものではない。さらに、特定の機能、構造、または特徴を或る実施形態と関連して説明するときは、明示的に記載されているかいないかに関わらず、かかる機能、構造、または特徴を他の実施形態を関連して実装することが当業者の知識の範囲内にあると考えられている。
【００１５】
ＩＩ．優先度ベースのシステム負荷レベル管理の例示的な実施形態
本発明の実施形態では、コンピュータ・システムのリソースを管理することができる。モジュール（例えば、仮想マシン、ＳＱＬサーバ・インスタンス、または他のアプリケーション）が複数のコンピュータ・システムのリソース（例えば、プロセッサ、サーバ、等）に割り当てられる。各モジュールには優先度レベルが割り当てられる。優先度レベルとは当該モジュールの他のモジュールに対する優先度を示すものである。さらに、指定の利用レベルがコンピュータ・システムの各リソースに割り当てられる。各リソースは１つまたは複数のモジュールをサポートし、対応する割り当てられた優先度レベルに従って、サポートされるモジュールの動作に優先度を付与する。さらに、各リソースは、サポートされるモジュールの動作を指定の利用レベルに保つ。このようにして、リソースのより効率的な利用を実現することができる。
【００１６】
図１は、１実施形態に従う例示的な処理システム１００のブロック図である。処理システム１００は負荷レベル管理システム１０２、複数のリソース１１０ａ〜１１０ｒ、および管理（アドミン）システム１１２を備える。各リソース１１０は１つまたは複数のアプリケーションをサポートする。例えば、第１のリソース１１０ａがアプリケーション・モジュール１０４ａ〜１０４ｍをサポートし、第２のリソース１１０ｂがアプリケーション・モジュール１０６ａ〜１０６ｎをサポートする、等である。
【００１７】
管理システム１１２は、利用識別子１１４を負荷レベル管理システム１０２に提供するように構成されている。利用識別子１１４は処理システム１００のリソース１１０に対する参照利用識別子である。例えば、負荷レベル管理システム１０２は利用識別子１１４を使用して、処理システム１００のリソース１１０に関連付けられた参照利用レベルを決定することができる。参照利用レベルは、例えば、リソース１１０の各々に対する目標負荷レベルに対応してもよい。
【００１８】
１つまたは複数の優先度識別子を負荷レベル管理システム１０２に提供するように管理システム１１２をさらに構成するか、または、優先度識別子（複数可）を他の方法で提供してもよい。優先度識別子は、特定のアプリケーション・モジュールの他のモジュールに対する優先度を示す、アプリケーション・モジュール１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎのうち１つに対する優先度の表示である。例えば、管理システム１１２は、管理システム１１２のユーザが管理システム１１２でウェブ・ブラウザ１１６または他のユーザ・インタフェースを介してそれぞれの利用レベルおよび／または優先度レベルを選択したことに応答して、利用識別子１１４および／または優先度識別子を提供してもよい。負荷レベル管理システム１０２は、さらに処理するために優先度識別子を１つまたは複数のリソース１１０に転送してもよい。
【００１９】
負荷レベル管理システム１０２は、各リソースの負荷レベルが参照利用レベルとほぼ等しくなるようにリソース１１０を管理するように構成される。例えば、負荷レベル管理システム１０２を、各リソース１１０から受け取った負荷レベル識別子に基づいて各リソース１１０の瞬間的なまたは平均的な負荷レベルを決定するように構成してもよい。負荷レベル管理システム１０２は、リソース１１０の瞬間的なまたは平均的な負荷レベルを参照利用レベルと比較してリソース１１０の負荷レベルが上昇するか低下するかを判定して、リソース１１０の負荷レベルが参照利用レベルとほぼ等しくなるようにすることができる。別の実施形態では、負荷レベル管理システム１０２が参照利用レベルを各リソース１１０に提供し、各リソース１１０はその負荷レベルが参照利用レベルとほぼ等しくなるように保つように構成される。
【００２０】
アプリケーション・モジュール１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、等は、当該アプリケーション・モジュールが関連付けられた各リソース１１０ａ〜１１０ｒの処理能力を消費する動作を行うように構成される。例えば、アプリケーション・モジュール１０４ａ〜１０４ｍが第１のリソース１１０ａの処理能力を消費し、アプリケーション・モジュール１０６ａ〜１０６ｎが第２のリソース１１０ｂの処理能力を消費する、等である。アプリケーション・モジュール１０４の例にはソフトウェア・アプリケーション、仮想マシン、ＳＱＬサーバ・インスタンス、等が含まれるがこれらに限らない。
【００２１】
リソース１１０ａ〜１１０ｒは、各アプリケーション・モジュール１０４ａ〜１０４ｍ、１０６ｎ、等が行う動作を容易にするための処理能力を提供するように構成される。リソース１１０の例にはサーバ、プロセッサ、マルチ・プロセッサ、等が含まれるがこれらに限らない。
【００２２】
第１の例示的な実施形態では、アプリケーション・モジュール１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、等は仮想マシンとして実装され、リソース１１０ａ〜１１０ｒはプロセッサとして実装される。例えば、プロセッサは、自身の処理能力を各仮想マシンの優先度に基づいて仮想マシンに割り当てて、プロセッサの負荷レベルが当該プロセッサに関連付けられた参照利用レベルとほぼ等しくなるようにすることができる。
【００２３】
第２の例示的な実施形態では、アプリケーション・モジュール１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、等はＳＱＬサーバ・インスタンスとして実装され、リソース１１０ａ〜１１０ｒはサーバとして実装される。例えば、サーバは、自身の処理能力を各ＳＱＬサーバ・インスタンスの優先度に基づいてＳＱＬサーバ・インスタンスを割り当てて、サーバの負荷レベルが当該サーバに関連付けられた参照利用レベルとほぼ等しくなるようにすることができる。
【００２４】
これらの例示的な実施形態は例示の目的のために与えたものであり、限定であるとは意図していない。当業者には、アプリケーション・モジュール１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、等を任意の適切な種類のモジュールとして実装してもよいことは理解されよう。さらに、リソース１１０ａ〜１１０ｒが、各アプリケーション・モジュール１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、等が行う動作を容易にするための処理能力を提供できる任意の適切な種類のリソースであってもよいことも理解されよう。
【００２５】
図２は、１実施形態に従う、処理システムを管理するための方法の流れ図２００を示す。流れ図２００を、例えば図１に示す負荷レベル管理システム１０２によって実施してもよい。例示の目的のため、実施形態に従って、流れ図２００を図３に示す負荷レベル管理システム１０２’と関連させて説明する。負荷レベル管理システム１０２’は負荷レベル管理システム１０２の１例である。図３に示すように、負荷レベル管理システム１０２’はインタフェース・モジュール３０２と管理モジュール３０４とを備える。他の構造および操作の実施形態は、流れ図２００に関する説明をもとにすれば当業者には明らかであろう。流れ図２００を以下で説明する。
【００２６】
図２に示すように、流れ図２００の方法はステップ２０２から開始する。ステップ２０２で、処理システムの複数のリソースに関連付けられた参照利用レベルを示す利用識別子を受け取る。例えば、インタフェース・モジュール３０２が利用識別子を受け取ってもよい。１実施形態では、管理システム１１２が、参照利用レベルを選択できるようにするためのユーザ・インタフェース要素を提供するように構成される。インタフェース・モジュール３０２は、ユーザが当該ユーザ・インタフェース要素を介して参照利用レベルを選択したことに応答して、利用識別子１１４を受け取ることができる。
【００２７】
１実施形態によれば、管理システム１１２を、アプリケーション・モジュール１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、等に関連付けられた１つまたは複数の優先度レベルを選択できるようにするためのユーザ・インタフェース要素を提供するように構成してもよい。インタフェース・モジュール３０２は、ユーザが当該ユーザ・インタフェース要素を介して優先度レベルを選択したことに応答して、各優先度レベルに対応する優先度識別子を受け取ることができる。上述のユーザ・インタフェース要素の各々は、テキスト・ベースのインタフェース要素、グラフィカル・インタフェース要素（例えば、ポップ・アップ、ドロップ・ダウン、またはそれと等価なメニュー）、または他のユーザ・インタフェース要素であってもよい。
【００２８】
ステップ２０４で、処理システムのリソースを、各リソースの負荷レベルを参照利用レベルとほぼ等しくなるように保つように管理する。例えば、管理モジュール３０４が処理システムのリソースを管理してもよい。本例によれば、管理モジュール３０４が維持識別子３０６ａ〜３０６ｒを処理システム１００の各リソース１１０ａ〜１１０ｒに提供することができる。維持識別子３０６ａ〜３０６ｒはリソース１１０に対する負荷レベルの維持を示すものである。例えば、各リソース１１０は各維持識別子３０６を使用してリソース１１０の負荷レベルが上昇するか低下するかを判定して、リソース１１０の負荷レベルが参照利用レベルとほぼ等しくなるように保つことができる。例えば、現在の負荷レベルを参照利用レベルが示す負荷レベルと比較して、決定した現在の負荷レベルと参照利用レベルの差分がどのようなものであってもその差分に従って負荷レベルを調整するように各リソース１１０を構成することができる。
【００２９】
例示的な実装形態では、処理システムのリソースを、各リソースの平均的な負荷レベルが参照利用レベルとほぼ等しくなるように保つように管理してもよい。例えば、負荷レベルを１秒、数秒、数分、数時間の何分の１か、等で平均してもよい。
【００３０】
各リソースの処理能力を、当該リソース上で実行される複数のアプリケーション・モジュールに、参照利用レベルと当該アプリケーション・モジュールに関連付けられた優先度レベルとに基づいて割り当てる。例えば、第１のリソースの処理能力を、当該第１のリソース上で実行される第１の複数のアプリケーション・モジュールに割り当てることができ、第２のリソースの処理能力を、当該第２のリソース上で実行される第２の複数のアプリケーション・モジュールに割り当てることができる、等である。例えば、相対的に高い優先度を有するアプリケーション・モジュールに、相対的に低い優先度を有するアプリケーション・モジュールよりも多くリソースの処理能力を割り当てることができる。別の例では、相対的に低い優先度を有するアプリケーション・モジュールに、相対的に高い優先度を有するアプリケーション・モジュールよりも少なくリソースの処理能力を割り当てることができる。
【００３１】
図４は、１実施形態に従う、リソースを管理するための方法の流れ図４００を示す。流れ図４００を、例えば、図１に示すリソース１１０ａ〜１１０ｒのうち何れかによって実施してもよい。例示の目的のため、実施形態に従って、流れ図４００を図５に示すリソース１１０’と関連させて説明する。リソース１１０’はリソース１１０の１例である。図５に示すように、リソース１１０’は受信モジュール５０２、実行モジュール５０４、割当てモジュール５０６を備える。他の構造および操作の実施形態は、流れ図４００に関する説明をもとにすれば当業者には明らかであろう。流れ図４００を以下で説明する。
【００３２】
図４に示すように、流れ図４００の方法はステップ４０２から開始する。ステップ４０２で、参照利用レベルを受け取る。例えば、受信モジュール５０２が維持識別子３０６または他の識別子を介して利用レベルを受け取ってもよい。
【００３３】
ステップ４０４で、複数のアプリケーション・モジュールが処理システムのリソース上で実行される。例えば、実行モジュール５０４が当該複数のアプリケーション・モジュールを当該リソース上で実行してもよい。当該リソースは例えばリソース１１０’であってもよい。
【００３４】
ステップ４０６で、リソースの処理能力を、複数のアプリケーション・モジュールに、当該複数のアプリケーション・モジュールに関連付けられた複数の優先度レベルに基づいて割り当てて、リソースの負荷レベルが参照利用レベルとほぼ等しくなるようにする。例えば、割当てモジュール５０６がリソースの処理能力を複数のアプリケーション・モジュールに割り当ててもよい。割当てモジュール５０６が維持識別子３０６を受信モジュール５０２から受け取ることができる。例えば、割当てモジュール５０６が維持識別子３０６を使用して、リソースの負荷レベルが参照利用レベルとほぼ等しくなるようにするために複数のアプリケーション・モジュールに割り当てるべきリソースの総処理能力量を決定することができる。
【００３５】
割当てモジュール５０６は複数の優先度レベルを使用して、各アプリケーション・モジュールに割り当てるべき、決定した総処理能力量の一部を決定することができる。例えば、割当てモジュール５０６は、当該決定した総処理能力量の第１の部分を第１のアプリケーション・モジュールに、当該第１のアプリケーション・モジュールに関連付けられた第１の優先度レベルに基づいて割り当てることができ、当該決定した総処理能力量の第２の部分を第２のアプリケーション・モジュールに、当該第２のアプリケーション・モジュールに関連付けられた第２の優先度レベルに基づいて割り当てることができる、等である。
【００３６】
１実施形態では、受信モジュール５０２は、リソース上で実行されるモジュールの優先度レベルを示す優先度識別子を受け取ることができる。優先度識別子を、例えば、負荷レベル管理システム１０２から受け取った維持識別子３０６内で示してもよい。受信モジュール５０２は、さらに処理するために優先度識別子または当該優先度識別子が示す優先度レベルを割当てモジュール５０６に転送してもよい。あるいは、各モジュール５０２に前もって各優先度レベルを割り当てておいてもよい。
【００３７】
割当てモジュール５０６は、リソース１１０’の処理能力を第１の優先度レベルを有する第１のアプリケーション・モジュールから、第１の優先度レベルよりも高い第２の優先度レベルを有する第２のアプリケーション・モジュールに移して、第２のアプリケーション・モジュールがリソース１１０’の処理能力の可用性を促進することができる。例示的な実装形態では、割当てモジュール５０６を、第２のアプリケーション・モジュールから要求５０８を受け取った際に、第１の優先度レベルを超える第２の優先度レベルに基づいて処理能力を第１のアプリケーション・モジュールから第２のアプリケーション・モジュールに自動的に移すように構成することができる。例えば、割当てモジュール５０６が第１のアプリケーション・モジュールの負荷レベルをほぼゼロに設定して処理能力の可用性を促進してもよい。
【００３８】
各アプリケーション・モジュールの優先度と参照利用レベルを任意の時点で変更してもよい。例えば、図３を参照すると、負荷レベル管理システム１０２’のインタフェース・モジュール３０２が、それぞれの少なくとも１つのアプリケーション・モジュールの少なくとも１つの修正優先度レベルを示す修正優先度識別子を受け取ることができる。負荷レベル管理システム１０２’の管理モジュール３０４は、少なくとも１つの修正優先度レベルの表示を維持識別子３０６を介してリソース１１０’の受信モジュール５０２に提供することができる。リソース１１０’の割当てモジュール５０６は少なくとも１つの修正優先度レベルに基づいてリソースの処理能力を複数のアプリケーション・モジュールに再割当てすることができる。
【００３９】
別の例では、負荷レベル管理システム１０２’のインタフェース・モジュール３０２が、リソース１１０’に関連付けられた修正参照利用レベルを示す修正利用識別子を受け取ってもよい。負荷レベル管理システム１０２’の管理モジュール３０４は、修正利用レベルの表示を維持識別子３０６を介してリソース１１０’の受信モジュール５０２に提供することができる。リソース１１０’の割当てモジュール５０６は、修正参照利用レベルに基づいてリソースの処理能力を複数のアプリケーション・モジュールに再割当てすることができる。各アプリケーション・モジュールに割り当てたリソースの一部を、変更された優先度レベル（複数可）および／または変更された利用レベルに応答して調整してもよい。
【００４０】
１態様では、例えば、ユーザがユーザ・インタフェース要素を介してオンザフライで参照利用レベルを修正したことに応答して、修正利用識別子を受け取ってもよい。別の態様では、所定のスケジュールに従って修正参照利用レベルを受け取ってもよい。例えば、参照利用レベルを、その日の第１の時点で相対的に低い利用レベルを示すように設定してもよい。参照利用レベルを、その日の第２の時点で相対的に高い利用レベルを示すように修正してもよい。したがって、割当てモジュール５０６は、リソース１１０’の処理能力を、第１の時点と第２の時点の間の期間中に複数のアプリケーション・モジュールに割り当てて、リソース１１０’の負荷レベルが当該比較的低い利用レベルとほぼ等しくなるようにすることができる。割当てモジュール５０６は、リソース１１０’の処理能力を、第２の時点の後の期間中に複数のアプリケーション・モジュールに割り当てて、リソース１１０’の負荷レベルが当該比較的高い利用レベルとほぼ等しくなるようにすることができる。
【００４１】
図６は、１実施形態に従って管理される、負荷レベルを有する複数のリソース６０２を示す図である。例示の目的のためリソース６０２はＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）であるとして示してあるが、これは限定を意図するものではない。例えば、リソース６０２ａ〜６０２ｄが共通ソケット内の各プロセッサ・コアを表してもよいが、本明細書に記載の実施形態の範囲はこの点に限定されない。リソースがプロセッサ、サーバ、等であってもよいことは理解されよう。図６に示すように、各リソース６０２は、参照利用レベル６０８とほぼ等しい負荷レベルを有するように管理される。例示の目的のため参照利用レベル６０８は６５％であるとして示されている。参照利用レベル６０８を０％から１００％の範囲で任意の適切なレベルに設定してもよい。
【００４２】
リソース６０２はアプリケーション・モジュール６０４を実行する。例示の目的のためアプリケーション・モジュール６０４が仮想マシンであるとして説明する。アプリケーション・モジュール６０４が仮想マシン、ＳＱＬサーバ・インスタンス、等であってもよいことは当業者には理解されよう。図６に示すように、アプリケーション・モジュール６０４ａと６０４ｂがリソース６０２ａ上で実行される。アプリケーション・モジュール６０４ｃと６０４ｄはリソース６０２ｂ上で実行される。アプリケーション・モジュール６０４ｅ、６０４ｆ、６０４ｇはリソース６０２ｃ上で実行される。アプリケーション・モジュール６０４ｈはリソース６０２ｄ上で実行される。各リソース６０２は任意数のアプリケーション・モジュール６０４を実行してもよい。例えば、リソース６０２は無数のモジュールを実行してもよい。
【００４３】
各アプリケーション・モジュール６０４には優先度レベル６１０が割り当てられる。優先度レベル６１０は、当該モジュールの他のモジュールに対する優先度を示すものである。例示の目的のため図６では優先度レベル６１０が数値であるとして示してあるが、優先度レベル６１０が任意の適切な規模に基づいてもよいことは理解されよう。例えば、優先度レベル６１０は１から指定数（例えば、１０、５０、１０，０００、等）の範囲内の数字であってもよい。別の例では、優先度レベル６１０は「高」、「中」、または「低」の値であってもよい。比較的高い優先度レベル６１０を有するアプリケーション・モジュール６０４を比較的高いビジネス上の影響を有するものと考え、一方で、比較的低い優先度レベル６１０を有するアプリケーション・モジュール６０４を比較的低いビジネス上の影響を有するものと考えてもよい。例えば、ビジネスに対して極めて重要なまたは時間的に制約のある動作を行うアプリケーション・モジュール６０４に比較的高い優先度６１０を割り当ててもよい。別の例では、極めて重要でもなく時間的に制約もない動作を行うアプリケーション・モジュール６０４に比較的低い優先度６１０を割り当ててもよい。
【００４４】
例えば、フロント・エンドのウェブ・サーバまたはオンライン広告を提供して企業に収入をもたらす広告サーバに比較的高い優先度レベル６１０を関連付けてもよい。バック・エンド・サービス、例えばログ配布、検索クローリング（ｓｅａｒｃｈ  ｃｒａｗｌｉｎｇ）、またはインターネット上の情報チェックを行うアプリケーション・モジュール６０４に比較的低い優先度レベル６１０を関連付けてもよい。例えば、何時間もまたはその日の終わりまで待機して上記バック・エンド・サービスを行っても、ビジネスにはさほど影響を及ぼさないであろう。
【００４５】
各リソース６０２は、当該リソース６０２上で実行されるアプリケーション・モジュール６０４の動作に、対応する割り当てられた優先度レベル６１０に従って優先度を付与する。例えば、リソース６０２ａがアプリケーション・モジュール６０４ａの動作に優先度レベル６１０ａに従って優先度を付与し、アプリケーション・モジュール６０４ｂの動作に優先度レベル６１０ｂに従って優先度を付与する、等である。高優先度のモジュール（複数可）６０４からの処理能力に対する要求が減ってくると、低優先度のモジュール６０４を動的にオンザフライで「起動」して、当該モジュール６０４が関連付けられているリソース６０２の処理能力を利用してその動作を実施することができる。１態様では、リソース６０２が、高優先度のモジュール（複数可）６０４からの処理能力に対する要求が減ってきているとリソース６０２が決定したことに応答して、低優先度のモジュール６０４を起動するための命令を、当該低優先度のモジュール６０４に提供することができる。リソース６０２は、処理能力に対する要求を高優先度のモジュール６０４から受け取った際に、リソース６０２の処理能力を高優先度のモジュール６０４に戻してもよい。実際、リソース６０２は低優先度のモジュール６０４をオフライン（すなわち、処理能力の割当てが０％）とみなして、高優先度のモジュール６０４が要求された処理能力を利用することを容易にすることができる。
【００４６】
アプリケーション・モジュール６０４への処理能力の割当てを、各リソース６０２の負荷レベルが参照利用レベル６０８とほぼ等しくなるように行う。割当て表示６１２は、各アプリケーション・モジュール６０４に割り当てられたリソースの処理能力の一部を示す。例えば、割当て表示６１２ａは、リソース６０２ａがリソース６０２ａの処理能力の１０％をアプリケーション・モジュール６０４ａに割り当てたことを示す。リソース６０２ａはこの処理能力を優先度レベル６１０ａに基づいてアプリケーション・モジュール６０４ａに割り当てる。優先度レベル６１０ａはアプリケーション・モジュール６０４ａに割り当てられる。割当て表示６１２ｂは、リソース６０２ａがリソース６０２ａの処理能力の５５％をアプリケーション・モジュール６０４ｂに割り当てたことを示す。リソース６０２ａはこの処理能力を優先度レベル６１０ｂに基づいてアプリケーション・モジュール６０４ｂに割り当てる。優先度レベル６１０ｂはアプリケーション・モジュール６０４ｂに割り当てられる。アプリケーション・モジュール６０４ａと６０４ｂに割り当てられたリソース６０２ａの処理能力は１０％＋５５％＝６５％であり、これは参照利用レベル６０８に等しい。
【００４７】
相対的に高い優先度レベル６１０を有するアプリケーション・モジュール６０４は、アプリケーション・モジュール６０４が実行されているリソース６０２の処理能力の比較的多くの割合を必ずしも消費しなくともよい。例えば、アプリケーション・モジュール６０４ｄと６０４ｇは、これらのアプリケーション・モジュールの各々が比較的高い優先度レベル６１０ｄ、６１０ｇに関連付けられているが、各リソース６０２ｂおよび６０２ｃの処理能力のうち比較的少量しか消費しないとして示されている。例えば、アプリケーション・モジュール６０４ｄは７，９５０という優先度レベル６１０ｄを有し、リソース６０２ｂの処理能力のうち２０％が割り当てられている。別の例では、アプリケーション・モジュール６０４ｇは８，３００という優先度レベル６１０ｇを有し、リソース６０２ｃの処理能力のうち２５％が割り当てられている。
【００４８】
処理能力を、高優先度のモジュール６０４が当該処理能力を要求したときに低優先度のモジュール６０４から高優先度のモジュール６０４に移すようにリソース６０２を構成してもよいことに留意されたい。例えば、リソース６０２は、本明細書で説明した実施形態に従って処理能力がアプリケーション・モジュール６０４ｄによって要求されたときに、リソースをアプリケーション・モジュール６０４ｃからアプリケーション・モジュール６０４ｄに移してもよい。別の例では、リソース６０２は、本明細書で説明した実施形態に従って処理能力がアプリケーション・モジュール６０４ｇによって要求されたときに、当該処理能力をアプリケーション・モジュール６０４ｅおよび６０４ｆのうち少なくとも１つからアプリケーション・モジュール６０４ｇに移してもよい。
【００４９】
図７は、諸実施形態を実装できるコンピュータ７００の例示的な実装形態を示す図である。図１に示す負荷レベル管理システム１０２、リソース１０４、管理システム１１２、または図６に示すリソース６０２のうち任意の１つまたは複数を、コンピュータ７００の１つまたは複数の機能および／または代替機能を含めて、コンピュータ７００と同様に実装することができる。コンピュータ７００は、例えば従来型のパーソナル・コンピュータ、モバイル・コンピュータ、もしくはワークステーションの形での汎用目的のコンピューティング装置であってもよく、または、コンピュータ７００は特殊目的のコンピューティング装置であってもよい。本明細書で提供するコンピュータ７００の説明は例示の目的で与えたものであり、限定であるとは意図していない。諸実施形態を別の種類のコンピュータ・システムで実装してもよく、これは当業者には周知であるはずである。
【００５０】
図７に示すように、コンピュータ７００は演算装置７０２、システム・メモリ７０４、およびシステム・メモリ７０４を含む様々なシステム・コンポーネントを処理装置７０２に接続するバス７０６を備える。バス７０６は任意の数種のバス構造のうち１つまたは複数を表す。当該バス構造には、メモリ・バスまたはメモリ・コントローラ、周辺バス、高速グラフィック・ポート、および様々なバス構造のうち任意のものを使用するプロセッサまたはローカル・バスが含まれる。システム・メモリ７０４にはＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）７０８およびＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）７１０が含まれる。ＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）７１２がＲＯＭ７０８に格納されている。
【００５１】
コンピュータ７００はまた、１つまたは複数の以下の装置、すなわち、ハードディスクを読み書きするためのハードディスク・ドライブ７１４、取外し可能磁気ディスク７１８を読み書きするための磁気ディスク・ドライブ７１６、ＣＤ  ＲＯＭ、ＤＶＤ  ＲＯＭ、または他の光媒体のような取外し可能光ディスク７２２を読み書きするための光ディスク・ドライブ７２０、を有する。ハードディスク・ドライブ７１４、磁気ディスク・ドライブ７１６、および光ディスク・ドライブ７２０はそれぞれ、ハードディスク・ドライブ・インタフェース７２４、磁気ディスク・ドライブ・インタフェース７２６、および光ドライブ・インタフェース７２８によってバス７０６に接続される。ドライブとその関連するコンピュータ読取可能媒体は、コンピュータに対するコンピュータ読取可能命令、データ構造、プログラム・モジュールおよび他のデータの不揮発性記憶装置を提供する。ハードディスク、取外し可能磁気ディスクおよび取外し可能光ディスクを説明したが、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、等のような他種のコンピュータ読取可能媒体を使用してデータを記憶することができる。
【００５２】
幾つかのプログラム・モジュールをハードディスク、磁気ディスク、光ディスク、ＲＯＭ、またはＲＡＭに格納してもよい。これらのプログラムには、オペレーティング・システム７３０、１つまたは複数のアプリケーション・プログラム７３２、他のプログラム・モジュール７３４、およびプログラム・データ７３６が含まれる。アプリケーション・プログラム７３２またはプログラム・モジュール７３４は、例えば、本明細書で説明した負荷レベル管理システム１０２、アプリケーション・モジュール１０４、１０６、１０８、等、管理システム１１２、インタフェース・モジュール３０２、管理モジュール３０４、受信モジュール５０２、実行モジュール５０４、割当てモジュール５０６、アプリケーション・モジュール６０４、流れ図２００（流れ図２００の任意のステップを含む）、および／または流れ図４００（流れ図４００の任意のステップを含む）を実装するためのコンピュータ・プログラム・ロジックを含んでもよい。
【００５３】
ユーザは、キーボード７３８およびポインティング・デバイス７４０のような入力装置を介してコンピュータ７００にコマンドと情報を入力することができる。他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲーム・パッド、パラボラ・アンテナ、スキャナ、等を含めてもよい。しばしばこれらおよび他の入力装置はバス７０６に接続されるシリアル・ポート・インタフェース７４２を介して処理装置７０２に接続されるが、他のインタフェース、例えばパラレル・ポート、ゲーム・ポート、またはＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）によって接続してもよい。
【００５４】
モニタ７４４または他種の表示装置も、ビデオ・アダプタ７４６のようなインタフェースを介してバス７０６に接続される。モニタに加えて、コンピュータ７００はスピーカおよびプリンタのような他の周辺出力装置（図示せず）を備えてもよい。
【００５５】
コンピュータ７００は、ネットワーク・インタフェースもしくはアダプタ７５０、モデム７５２、またはネットワーク上で通信を確立するための他の手段を介してネットワーク７４８（例えば、インターネット）に接続される。モデム７５２は、内部または外部にあってもよく、シリアル・ポート・インタフェース７４２を介してバス７０６に接続される。
【００５６】
本明細書で使用する場合、「コンピュータ・プログラム媒体」および「コンピュータ読取可能媒体」という用語は一般に、ハードディスク・ドライブ７１４に関連付けられたハードディスク、取外し可能磁気ディスク７１８、取外し可能光ディスク７２２のような媒体、ならびにフラッシュ・メモリ・カード、デジタル・ビデオ・ディスク、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、等のような他の媒体に言及するように用いられる。
【００５７】
上述したように、コンピュータ・プログラムおよびモジュール（アプリケーション・プログラム７３２および他のプログラム・モジュール７３４を含む）をハードディスク、磁気ディスク、光ディスク、ＲＯＭ、またはＲＡＭに格納することができる。かかるコンピュータ・プログラムを、ネットワーク・インタフェース７５０またはシリアル・ポート・インタフェース７４２を介して受け取ってもよい。かかるコンピュータ・プログラムは、アプリケーションによって実行またはロードされると、コンピュータ７００が本明細書で論じた本発明の実施形態の機能を実行できるようにする。したがって、かかるコンピュータ・プログラムはコンピュータ７００のコントローラに相当する。
【００５８】
諸実施形態はまた、任意のコンピュータ利用可能媒体上に格納されたソフトウェアを備えるコンピュータ・プログラム製品に関する。かかるソフトウェアは、１つまたは複数のデータ処理装置上で実行されると、データ処理装置（複数可）を本明細書で説明したように動作させる。本発明の諸実施形態は、現在または将来に既知である任意のコンピュータ利用可能またはコンピュータ読取可能な媒体を使用する。コンピュータ読取可能媒体の例には、ＲＡＭ、ハード・ドライブ、フロッピー・ディスク、ＣＤ  ＲＯＭ、ＤＶＤ  ＲＯＭ、ジップ・ディスク、テープ、磁気記憶装置、光記憶装置、ＭＥＭ、ナノ技術ベースの記憶装置、等が含まれるがこれらに限らない。
【００５９】
本明細書で説明した諸実施形態は、従来型の負荷レベル管理技法と比較すると、様々な利益を有する。例えば、諸実施形態では、リソース（例えば、プロセッサ、サーバ、等）の処理能力を、当該リソース上で実行されるアプリケーション・モジュール（例えば、仮想マシン、ＳＱＬサーバ・インスタンス、または他のアプリケーション）に、当該モジュールに関連付けられた優先度レベルに基づいて有利に割り当てて、システムに対する指定の負荷レベルを実現することができる。例えば、諸実施形態では、処理能力を割り当てて、リソースの負荷レベルが参照利用レベルとほぼ等しくなるようにすることができる。各リソースの負荷レベルを、共通の参照利用レベルまたは異なる各参照利用レベルに基づいて管理してもよい。
【００６０】
幾つかの実施形態によれば、変化するアプリケーション・モジュールの負荷レベルに適応するために、当該アプリケーション・モジュールを或るリソースから別のリソースに移動させる必要はない。そうではなく、リソースの処理能力を、当該リソース上で実行されるアプリケーション・モジュールに、当該アプリケーション・モジュールに関連付けられた優先度に基づいて割り当てて、各リソースの負荷レベルが参照利用レベルとほぼ等しくなるようにすることができる。
【００６１】
本明細書で説明した諸実施形態を、例示の目的のため処理システムのリソース上で実行されるアプリケーション・モジュールを参照して論じたが、限定であるとは意図していない。本明細書で説明した負荷レベル管理技法を他の様々な環境で適用可能であることは当業者には理解されよう。例えば、本技法を使用して、１つまたは複数の不揮発性記憶装置（例えば、ハード・ドライブまたはそのパーティション、メモリ装置、等）の入出力（Ｉ／Ｏ）機能を、複数のソフトウェアおよび／またはハードウェア装置に、当該装置に関連付けられた優先度レベルに基づいて割り当てて、各不揮発性記憶装置の負荷レベルが参照利用レベルとほぼ等しくなるようにすることができる。別の例では、本技法を使用して、複数のホスト（例えば、コンピュータ）と通信するリソースの負荷レベルを管理することができる。リソースの処理能力を複数のホストに、当該複数のホストに割り当てられた優先度に従って割り当てて、リソースの負荷レベルが参照利用レベルとほぼ等しくなるようにすることができる。
【００６２】
本発明の各実施形態について説明する。
【００６３】
実施形態１
リソースを管理する方法であって、
参照利用レベル（６０８）を受け取るステップと、
複数のアプリケーション・モジュール（１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、１０８ａ〜１０８ｐ、６０４ａ〜６０４ｈ）を処理システム（１００）のリソース（１１０ａ〜１１０ｒ、６０２ａ〜６０２ｄ）上で実行するステップと、
前記リソース（１１０ａ〜１１０ｒ、６０２ａ〜６０２ｄ）の処理能力を、前記複数のアプリケーション・モジュール（１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、１０８ａ〜１０８ｐ、６０４ａ〜６０４ｈ）に、前記複数のアプリケーション・モジュール（１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、１０８ａ〜１０８ｐ、６０４ａ〜６０４ｈ）に関連付けられた複数の優先度レベル（６１０ａ〜６１０ｈ）に基づいて割り当てて、前記リソースの負荷レベルが前記参照利用レベル（６０８）とほぼ等しくなるようにするステップと
を具えたことを特徴とする方法。
【００６４】
実施形態２
前記受け取るステップは、前記リソースを含む複数のリソースに関連付けられた前記参照利用レベルを受け取るステップを含むことを特徴とする実施形態１記載の方法。
【００６５】
実施形態３
前記複数のアプリケーション・モジュールのうち第１のアプリケーション・モジュールから、より多くの前記リソースの前記処理能力に対する要求を受け取るステップと、
前記リソースの前記処理能力の一部を前記複数のアプリケーション・モジュールのうち第２のアプリケーション・モジュールから前記第１のアプリケーション・モジュールに、前記第２のアプリケーション・モジュールに関連付けられた第２の優先度レベルよりも大きい前記第１のアプリケーション・モジュールに関連付けられた第１の優先度レベルに基づいて移すステップと
をさらに具えたことを特徴とする実施形態１の方法。
【００６６】
実施形態４
前記処理能力を割り当てるステップは、前記リソースの前記処理能力を前記複数のアプリケーション・モジュールの第１のアプリケーション・モジュールに、前記第１のアプリケーション・モジュールに関連付けられた第１の優先度レベルに基づいて殆ど割り当てないステップを含むことを特徴とする実施形態１の方法。
【００６７】
実施形態５
前記処理能力を割り当てるステップは、前記リソースの前記処理能力の殆ど全てを前記複数のアプリケーション・モジュールの第１のアプリケーション・モジュールに、前記第１のアプリケーション・モジュールに関連付けられた第１の優先度レベルに基づいて割り当てるステップを含むことを特徴とする実施形態１の方法。
【００６８】
実施形態６
前記複数のアプリケーション・モジュールのうち少なくとも１つのアプリケーション・モジュールに関連付けられた修正優先度レベルを受け取るステップと、
前記リソースの前記処理能力を、前記複数のアプリケーション・モジュールに、前記修正優先度レベルに基づいて再割当てし、前記リソースの負荷レベルが前記参照利用レベルとほぼ等しくなるようにするステップと
をさらに具えたことを特徴とする実施形態１の方法。
【００６９】
実施形態７
修正参照利用レベルを受け取るステップと、
前記リソースの前記処理能力を、前記複数のアプリケーション・モジュールに、前記複数のアプリケーション・モジュールに関連付けられた前記複数の優先度レベルに基づいて再割当てし、前記リソースの負荷レベルが前記修正参照利用レベルとほぼ等しくなるようにするステップと、
をさらに具えたことを特徴とする実施形態１記載の方法。
【００７０】
実施形態８
修正参照利用識別子を受け取るステップが所定のスケジュールに従って実施されることを特徴とする実施形態１の方法。
【００７１】
実施形態９
前記処理能力を割り当てるステップは、前記リソースの前記処理能力を、前記複数のアプリケーション・モジュールに、前記複数のアプリケーション・モジュールに関連付けられた前記複数の優先度レベルに基づいて割り当てて、前記リソースの平均負荷レベルが前記参照利用レベルとほぼ等しくなるようにするステップを含むことを特徴とする実施形態１の方法。
【００７２】
実施形態１０
実施形態１乃至９の何れかの方法ステップを実行するように配置したコンピュータ読取可能プログラム手段を含む制御ロジックを格納したコンピュータ読取可能媒体を具えたことを特徴とするコンピュータ・プログラム製品。
【００７３】
実施形態１１
プロセッサと、
前記プロセッサと通信し、前記プロセッサに実施形態１乃至９の方法ステップの何れかを実行するよう指示するための複数の処理命令を格納した、メモリと、
を具えたことを特徴とするコンピュータ・システム。
【００７４】
実施形態１２
複数のアプリケーション・モジュール（１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、１０８ａ〜１０８ｐ、６０４ａ〜６０４ｈ）を処理システム（１００）のリソース（１１０ａ〜１１０ｒ、６０２ａ〜６０２ｄ）上で実行するための手段（５０４）と、
前記リソース（１１０ａ〜１１０ｒ、６０２ａ〜６０２ｄ）の負荷レベルが参照利用レベル（６０８）とほぼ等しくなるように、前記リソース（１１０ａ〜１１０ｒ、６０２ａ〜６０２ｄ）の処理能力を、前記複数のアプリケーション・モジュール（１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、１０８ａ〜１０８ｐ、６０４ａ〜６０４ｈ）に、前記複数のアプリケーション・モジュール（１０４ａ〜１０４ｍ、１０６ａ〜１０６ｎ、１０８ａ〜１０８ｐ、６０４ａ〜６０４ｈ）に関連付けられた複数の優先度レベル（６１０ａ〜６１０ｈ）に基づいて割り当てるための手段（５０６）と
を具えたことを特徴とするシステム。
【００７５】
実施形態１３
前記参照利用レベルは、前記リソースを含む複数のリソースと関連付けられていることを特徴とする実施形態１２記載のシステム。
【００７６】
実施形態１４
前記リソースの前記処理能力の一部を前記複数のアプリケーション・モジュールの第１のアプリケーション・モジュールから前記複数のアプリケーション・モジュールの第２のアプリケーション・モジュールへと、より多くの前記リソースの前記処理能力に対する要求を前記第２のアプリケーション・モジュールから受け取ったことに応答して、前記第１のアプリケーション・モジュールに関連付けられた第１の優先度レベルよりも大きい前記第２のアプリケーション・モジュールに関連付けられた第２の優先度レベルに基づいて移すための手段をさらに具えたことを特徴とする実施形態１２のシステム。
【００７７】
実施形態１５
前記割り当てるための手段は、前記リソースの平均負荷レベルが前記参照利用レベルとほぼ等しくなるように構成されることを特徴とする実施形態１２のシステム。
【００７８】
ＩＩＩ．結論
本発明の様々な実施形態を以上で説明したが、これらは例としてのみ提示されたものであり、限定ではないことは理解されよう。本発明の趣旨と範囲を逸脱しない、形態と細部における様々な変更を当該実施形態において加えうることは当業者には明らかであろう。したがって、本発明の幅と範囲は上述した例示的な実施形態の何れによっても限定されるべきではなく、添付の特許請求の範囲とその均等物に従ってのみ定義されるべきである。
本願明細書中に記載された発明には、以下の各発明が含まれる。
［発明１］
リソースを管理する方法であって、
参照利用レベルを受け取るステップと、
複数のアプリケーション・モジュールを処理システムのリソース上で実行するステップと、
前記リソースの処理能力を、前記複数のアプリケーション・モジュールに、前記複数のアプリケーション・モジュールに関連付けられた複数の優先度レベルに基づいて割り当てて、前記リソースの負荷レベルが前記参照利用レベルとほぼ等しくなるようにするステップと
を具えたことを特徴とする方法。
［発明２］
前記受け取るステップは、前記リソースを含む複数のリソースに関連付けられた前記参照利用レベルを受け取るステップを含むことを特徴とする発明１記載の方法。
［発明３］
前記複数のアプリケーション・モジュールのうち第１のアプリケーション・モジュールから、より多くの前記リソースの前記処理能力に対する要求を受け取るステップと、
前記リソースの前記処理能力の一部を前記複数のアプリケーション・モジュールのうち第２のアプリケーション・モジュールから前記第１のアプリケーション・モジュールに、前記第２のアプリケーション・モジュールに関連付けられた第２の優先度レベルよりも大きい前記第１のアプリケーション・モジュールに関連付けられた第１の優先度レベルに基づいて移すステップと
をさらに具えたことを特徴とする発明１記載の方法。
［発明４］
前記処理能力を割り当てるステップは、前記リソースの前記処理能力を前記複数のアプリケーション・モジュールの第１のアプリケーション・モジュールに、前記第１のアプリケーション・モジュールに関連付けられた第１の優先度レベルに基づいて殆ど割り当てないステップを含むことを特徴とする発明１記載の方法。
［発明５］
前記処理能力を割り当てるステップは、前記リソースの前記処理能力の殆ど全てを前記複数のアプリケーション・モジュールの第１のアプリケーション・モジュールに、前記第１のアプリケーション・モジュールに関連付けられた第１の優先度レベルに基づいて割り当てるステップを含むことを特徴とする発明１記載の方法。
［発明６］
前記複数のアプリケーション・モジュールのうち少なくとも１つのアプリケーション・モジュールに関連付けられた修正優先度レベルを受け取るステップと、
前記リソースの前記処理能力を、前記複数のアプリケーション・モジュールに、前記修正優先度レベルに基づいて再割当てし、前記リソースの負荷レベルが前記参照利用レベルとほぼ等しくなるようにするステップと
をさらに具えたことを特徴とする発明１記載の方法。
［発明７］
修正参照利用レベルを受け取るステップと、
前記リソースの前記処理能力を、前記複数のアプリケーション・モジュールに、前記複数のアプリケーション・モジュールに関連付けられた前記複数の優先度レベルに基づいて再割当てし、前記リソースの負荷レベルが前記修正参照利用レベルとほぼ等しくなるようにするステップと、
をさらに具えたことを特徴とする発明１記載の方法。
［発明８］
修正参照利用識別子を受け取るステップが所定のスケジュールに従って実施されることを特徴とする発明１記載の方法。
［発明９］
前記処理能力を割り当てるステップは、前記リソースの前記処理能力を、前記複数のアプリケーション・モジュールに、前記複数のアプリケーション・モジュールに関連付けられた前記複数の優先度レベルに基づいて割り当てて、前記リソースの平均負荷レベルが前記参照利用レベルとほぼ等しくなるようにするステップを含むことを特徴とする発明１記載の方法。
［発明１０］
発明１乃至９の何れかの方法ステップを実行するように配置したコンピュータ読取可能プログラム手段を含む制御ロジックを格納したコンピュータ読取可能媒体を具えたことを特徴とするコンピュータ・プログラム。
［発明１１］
プロセッサと、
前記プロセッサと通信し、前記プロセッサに発明１乃至９の方法ステップの何れかを実行するよう指示するための複数の処理命令を格納した、メモリと、
を具えたことを特徴とするコンピュータ・システム。
［発明１２］
複数のアプリケーション・モジュールを処理システムのリソース上で実行するための手段と、
前記リソースの負荷レベルが参照利用レベルとほぼ等しくなるように、前記リソースの処理能力を、前記複数のアプリケーション・モジュールに、前記複数のアプリケーション・モジュールに関連付けられた複数の優先度レベルに基づいて割り当てるための手段と
を具えたことを特徴とするシステム。
［発明１３］
前記参照利用レベルは、前記リソースを含む複数のリソースと関連付けられていることを特徴とする発明１２記載のシステム。
［発明１４］
前記リソースの前記処理能力の一部を前記複数のアプリケーション・モジュールの第１のアプリケーション・モジュールから前記複数のアプリケーション・モジュールの第２のアプリケーション・モジュールへと、より多くの前記リソースの前記処理能力に対する要求を前記第２のアプリケーション・モジュールから受け取ったことに応答して、前記第１のアプリケーション・モジュールに関連付けられた第１の優先度レベルよりも大きい前記第２のアプリケーション・モジュールに関連付けられた第２の優先度レベルに基づいて移すための手段をさらに具えたことを特徴とする発明１２記載のシステム。
［発明１５］
前記割り当てるための手段は、前記リソースの平均負荷レベルが前記参照利用レベルとほぼ等しくなるように構成されることを特徴とする発明１２記載のシステム。
【図１】
0005680619.tif 000002
【図２】
0005680619.tif 000003
【図３】
0005680619.tif 000004
【図４】
0005680619.tif 000005
【図５】
0005680619.tif 000006
【図６】
0005680619.tif 000007
【図７】
0005680619.tif 000008