(57)【要約】【課題】  論理的にパーティション化された環境においてプロセッサを再割り振りする方法、システム及びプログラム製品を提供する。【解決手段】  本発明はパフォーマンス向上プログラム（ＰＥＰ）及び再割り振りプログラム（ＲＰ）を含む。ＰＥＰは、アドミニストレータがいくつものパラメータを指定すること及び提供者候補及び受領者候補を識別することを可能にする。ＲＰは、プロセッサに対するパフォーマンス・データをコンパイルし、合成パラメータを計算する。提供者候補プールにおける各プロセッサに対して、ＲＰは合成パラメータを提供者負荷閾値に比較することによってプロセッサが提供者であるかどうかを決定する。受領者候補プールにおける各プロセッサに対して、ＲＰは合成パラメータを受領者負荷閾値に比較することによってプロセッサが受領者であるかどうかを決定する。次に、ＲＰは、提供者からのプロセッサを受領者に割り振る。ＲＰは、移動ウィンドウ又は離散ウィンドウ・サンプリング・システムに基づいてワークロード統計をモニタ及び更新する。【選択図】  図４
2004334853.tif 000002
【特許請求の範囲】
【請求項１】
パフォーマンス・パラメータを選択するステップと、
再割り振りプログラムを稼動するステップと
を含み、
前記再割り振りプログラムが、前記パフォーマンス・パラメータに基づいて提供者から受領者に少なくとも１つのプロセッサを再割り振りする方法。
【請求項２】
取り込みインターバルを選択するステップと、
各前記取り込みインターバルにおいてプロセッサ・データを収集するステップと
を更に含む、請求項１に記載の方法。
【請求項３】
サンプリング・インターバルを選択するステップと、
前記サンプリング・インターバルにわたってプロセッサ・データを収集するステップと
を更に含む、請求項１に記載の方法。
【請求項４】
提供者負荷閾値を定義するステップと、
受領者負荷閾値を定義するステップと、
前記提供者負荷閾値及び前記受領者負荷閾値に基づいて前記提供者から前記受領者に前記プロセッサを再割り振りするステップと
を更に含む、請求項１に記載の方法。
【請求項５】
提供者候補を指定するステップと、
受領者候補を指定するステップと
を更に含み、
前記提供者候補は前記プロセッサを前記受領者候補に提供するに適格であり、
前記受領者候補は前記プロセッサを前記提供者候補から受領するに適格である、
請求項１に記載の方法。
【請求項６】
調整レベルを入力するステップと、
前記調整レベルの間、前記プロセッサの再割り振りを中断するステップと、
を更に含む、請求項１に記載の方法。
【請求項７】
前記再割り振りを継続すべきかどうかを決定するステップと、
前記決定に応答して、前記再割り振りプログラムを稼動するステップと
を更に含む、請求項１に記載の方法。
【請求項８】
プロセッサに対する合成パラメータを計算するステップと、
前記合成パラメータに基づいて、再割り振りが必要であるかどうかを決定するステップと、
再割り振りが必要であるという決定に応答して、前記プロセッサを再割り振りするステップと
を含む、方法。
【請求項９】
サンプリング・インターバルにわたって前記プロセッサに対する複数のパフォーマンス・パラメータ・データを収集するステップと、
前記データを使用して前記プロセッサに対する合成パラメータを計算するためにステップと
を更に含む、請求項８に記載の方法。
【請求項１０】
前記合成パラメータが受領者負荷閾値よりも大きいかどうかを決定するステップと、
前記合成パラメータが前記受領者負荷閾値よりも大きいという決定に応答して、前記プロセッサを受領者として指定するステップと
を更に含む、請求項８に記載の方法。
【請求項１１】
前記合成パラメータが提供者負荷閾値よりも小さいかどうかを決定するステップと、
前記合成パラメータが提供者負荷閾値よりも小さいという決定に応答して、前記プロセッサを提供者として指定するステップと
を更に含む、請求項８に記載の方法。
【請求項１２】
サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するステップと、
前記サンプリング・ウィンドウが移動ウィンドウであるという決定に応答して、最も古いデータ・サンプルを廃棄し、最も新しいデータ・サンプルを加えるステップと
を更に含む、請求項８に記載の方法。
【請求項１３】
サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するステップと、
前記サンプリング・ウィンドウが離散ウィンドウであるという決定に応答して、データ・サンプルをすべて廃棄し、新しいデータ・サンプルを収集するステップと
更に含む、請求項８に記載の方法。
【請求項１４】
第１システムから第２システムにプロセッサを再割り振りするための方法であって、
提供者負荷閾値を指定するステップと、
受領者負荷閾値を指定するステップと、
プロセッサに対する合成パラメータを計算するステップと、
前記合成パラメータが提供者負荷閾値よりも小さいかどうかを決定するステップと、
前記合成パラメータが前記提供者負荷閾値よりも小さいという決定に応答して、前記プロセッサを提供者として指定するステップと、
前記合成パラメータが受領者負荷閾値よりも大きいかどうかを決定するステップと、
前記合成パラメータが受領者負荷閾値よりも大きいという決定に応答して、前記プロセッサを受領者として指定するステップと、
前記提供者及び受領者に基づいて、再割り振りが必要であるかどうかを決定するステップと、
前記再割り振りが必要であるという決定に応答して、前記提供者を前記受領者に再割り振りするステップと
を含む、方法。
【請求項１５】
パフォーマンス・パラメータを選択するステップと、
前記パフォーマンス・パラメータに基づいて、前記プロセッサのパフォーマンスを測定するステップと
を更に含む、請求項１４に記載の方法。
【請求項１６】
取り込みインターバルを選択するステップと、
各前記取り込みインターバルにおいてプロセッサ・データを収集するステップと
を更に含む、請求項１４に記載の方法。
【請求項１７】
サンプリング・インターバルを選択するステップと、
前記サンプリング・インターバルにわたってプロセッサ・データを収集するステップと
を更に含む、請求項１４に記載の方法。
【請求項１８】
提供者候補を指定するステップと、
受領者候補を指定するステップと
を更に含み、
前記提供者候補は前記プロセッサを前記受領者候補に提供するに適格であり、
前記受領者候補は前記プロセッサを前記提供者候補から受領するに適格である、
請求項１４に記載の方法。
【請求項１９】
調整レベルを入力するステップと、
前記調整レベルの間、前記プロセッサの再割り振りを中断するステップと
を更に含む、請求項１４に記載の方法。
【請求項２０】
再割り振りが継続すべきかどうかを決定するステップと、
前記決定に応答して、再割り振りプログラムを稼動するステップと、
を更に含む、請求項１４に記載の方法。
【請求項２１】
サンプリング・インターバルにわたって前記プロセッサに対する複数のパフォーマンス・パラメータ・データを収集するステップと、
前記データを使用して前記プロセッサに対する前記合成パラメータを計算するステップと
を更に含む、請求項１４に記載の方法。
【請求項２２】
サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するステップと、
前記サンプリング・ウィンドウが移動ウィンドウであるという決定に応答して、最も古いデータ・サンプルを廃棄し、最も新しいデータ・サンプルを加えるステップと
を更に含む、請求項１４に記載の方法。
【請求項２３】
サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するステップと、
前記サンプリング・ウィンドウが離散ウィンドウであるという決定に応答して、データ・サンプルをすべて廃棄し、新しいデータ・サンプルを収集するステップと
更に含む、請求項１４に記載の方法。
【請求項２４】
コンピュータ上で操作可能なプログラム製品であって、
コンピュータ使用可能媒体を含み、
前記コンピュータ使用可能媒体は、パフォーマンス・パラメータを選択するための命令と、再割り振りプログラムを稼動するための命令とを含み、
前記再割り振りプログラムは、前記パフォーマンス・パラメータに基づいて少なくとも１つのプロセッサを提供者から受領者に再割り振りする、
プログラム製品。
【請求項２５】
取り込みインターバルを選択するための命令と、
各前記取り込みインターバルにおいてプロセッサ・データを収集するための命令と
を更に含む、請求項２４に記載のプログラム製品。
【請求項２６】
サンプリング・インターバルを選択するための命令と、
前記サンプリング・インターバルにわたってプロセッサ・データを収集するための命令と
を更に含む、請求項２４に記載のプログラム製品。
【請求項２７】
提供者負荷閾値を定義するための命令と、
受領者負荷閾値を定義するための命令と、
前記提供者負荷閾値及び前記受領者負荷閾値に基づいて、前記プロセッサを前記提供者から前記受領者に再割り振りするための命令と
を更に含む、請求項２４に記載のプログラム製品。
【請求項２８】
提供者候補を指定するための命令と、
受領者候補を指定するための命令と
を更に含み、
前記提供者候補は前記プロセッサを前記受領者候補に提供するに適格であり、
前記受領者候補は前記プロセッサを前記提供者候補から受領するに適格である、
請求項２４に記載のプログラム製品。
【請求項２９】
調整レベルを入力するための命令と、
前記調整レベルの間、前記プロセッサの再割り振りを中断するための命令と
を更に含む、請求項２４に記載のプログラム製品。
【請求項３０】
再割り振りが継続すべきかどうかを決定するための命令を更に含み、
前記決定に応答して、前記再割り振りプログラムを稼動する、請求項２４に記載のプログラム製品。
【請求項３１】
コンピュータ上で操作可能なプログラム製品であって、
コンピュータ使用可能媒体を含み、
前記コンピュータ使用可能媒体は、プロセッサに対する合成パラメータを計算するための命令と、前記合成パラメータに基づいて、再割り振りが必要であるかどうかを決定するための命令と
を含み、
前記再割り振りが必要であるという決定に応答して、前記プロセッサを再割り振りする、プログラム製品。
【請求項３２】
サンプリング・インターバルにわたって前記プロセッサに対する複数のパフォーマンス・パラメータ・データを収集するための命令と、
前記データを使用して前記プロセッサに対する前記合成パラメータを計算するための命令と
を更に含む、請求項３１に記載のプログラム製品。
【請求項３３】
前記合成パラメータが受領者負荷閾値よりも大きいかどうかを決定するための命令を含み、
前記合成パラメータが受領者負荷閾値よりも大きいという決定に応答して、前記プロセッサを受領者として指定する、請求項３１に記載のプログラム製品。
【請求項３４】
前記合成パラメータが提供者負荷閾値よりも小さいかどうかを決定するための命令を更に含み、
前記合成パラメータが提供者負荷閾値よりも小さいという決定に応答して、前記プロセッサを提供者として指定する、請求項３１に記載のプログラム製品。
【請求項３５】
サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するための命令を更に含み、
前記サンプリング・ウィンドウが移動ウィンドウであるという決定に応答して、最も古いデータ・サンプルを廃棄し、最も新しいデータ・サンプルを加える、請求項３１に記載のプログラム製品。
【請求項３６】
サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するための命令を更に含み、
前記サンプリング・ウィンドウが離散ウィンドウであるという決定に応答して、データ・サンプルをすべて廃棄し、新しいデータ・サンプルを収集する、請求項３１に記載のプログラム製品。
【請求項３７】
プロセッサを第１システムから第２システムに再割り振りするためのコンピュータ上で操作可能なプログラム製品であって、
コンピュータ使用可能な媒体を含み、
前記コンピュータ使用可能な媒体は、
提供者負荷閾値を指定するための命令と、
受領者負荷閾値を指定するための命令と、
プロセッサに対する合成パラメータを計算するための命令と、
前記合成パラメータが提供者負荷閾値よりも小さいかどうかを決定するための命令と、
前記合成パラメータが受領者負荷閾値よりも大きいかどうかを決定するための命令と、
前記提供者及び受領者に基づいて再割り振りが必要であるかどうかを決定するための命令と
を含み、
前記合成パラメータが前記提供者負荷閾値よりも小さいという決定に応答して、前記プロセッサを提供者として指定し、
前記合成パラメータが前記受領者負荷閾値よりも大きいという決定に応答して、前記プロセッサを受領者として指定し、
再割り振りが必要であるという決定に応答して、前記提供者を前記受領者に再割り振りする、
プログラム製品。
【請求項３８】
パフォーマンス・パラメータを選択するための命令と、
前記パフォーマンス・パラメータに基づいて前記プロセッサの前記パフォーマンスを測定するための命令と
を更に含む、請求項３７に記載のプログラム製品。
【請求項３９】
取り込みインターバルを選択するための命令と、
各前記取り込みインターバルにおいてプロセッサ・データを収集するための命令と
を更に含む、請求項３７に記載のプログラム製品。
【請求項４０】
サンプリング・インターバルを選択するための命令と、
前記サンプリング・インターバルにわたってプロセッサ・データを収集するための命令と
を更に含む、請求項３７に記載のプログラム製品。
【請求項４１】
提供者候補を指定するための命令と、
受領者候補を指定するための命令と
を更に含み、
前記提供者候補が前記プロセッサを前記受領者候補に提供するに適格であり、
前記受領者候補が前記プロセッサを前記提供者候補から受領するに適格である、
請求項３７に記載のプログラム製品。
【請求項４２】
調整レベルを入力するための命令と、
前記調整レベルの間、前記プロセッサの再割り振りを中断するための命令と、
を更に含む、請求項３７に記載のプログラム製品。
【請求項４３】
再割り振りが継続すべきかどうかを決定するための命令を更に含み、
前記決定に応答して前記再割り振りプログラムを稼動する、請求項３７に記載のプログラム製品。
【請求項４４】
サンプリング・インターバルにわたって前記プロセッサに対する複数のパフォーマンス・パラメータ・データを収集するための命令と、
前記データを使用して前記プロセッサに対する前記合成パラメータを計算するための命令と
を更に含む、請求項３７に記載のプログラム製品。
【請求項４５】
サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するための命令を含み、
前記サンプリング・ウィンドウが移動ウィンドウであるという決定に応答して、最も古いデータ・サンプルを廃棄し、最も新しいデータ・サンプルを加える、請求項３７に記載のプログラム製品。
【請求項４６】
サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するための命令を含み、
前記サンプリング・ウィンドウが離散ウィンドウであるという決定に応答して、データ・サンプルをすべて廃棄し、新しいデータ・サンプルを収集する、請求項３７に記載のプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して云えば、コンピュータ・システムの効率を高めるための方法に関し、詳しく云えば、仮想システム間でプロセッサを再割り振りするためのコンピュータ・プログラムに関するものである。
【背景技術】
【０００２】
コンピュータ・システムは、特定のタスクを遂行するために協働するプロセッサのようなコンピュータ・コンポーネントの集合体であり、この分野ではよく知られている。コンピュータ・システムは、サーバのような単一のコンピュータの形で、又はコンピュータ・ネットワークのような複数のコンピュータの形で設置可能である。システム・アドミニストレータ（以後、アドミニストレータという）は、コンピュータ・システムをセットアップし、管理する人である。コンピュータ・システムのパフォーマンスを高めるためにアドミニストレータによって使用されるツールの１つが物理的パーティション化（partitioning）である。アドミニストレータは、仮想システムと呼ばれる小型のパーティション化されたシステムの形成を助けるようシステム内のバス及び事前定義された物理的モジュールを専用化することによって、被管理システム（managedsystem）を物理的にパーティション化する。被管理システムにおける各仮想システムは、エンド・ユーザには完全に分離したシステムのように見える。更に、仮想システムは、管理上の柔軟性及びアプリケーション・パフォーマンスを改良する。
【０００３】
システム・パフォーマンスを高めるためにアドミニストレータにより使用されるもう１つの方法は、論理的パーティション化である。論理的パーティション化は、被管理システムにおいて論理的パーティションを形成するプロセスである。論理的パーティション化は、論理的にパーティション化されたシステムには物理的に分離したバス、メモリ、又はプロセッサが存在しないという点で物理的パーティション化とは異なる。その代わり、仮想システムはシステム・ソフトウェアによってのみ分離される。論理的パーティション化によって形成された各個々の仮想システムは、物理的にパーティション化されたシステムと同様に、エンド・ユーザには完全に分離したシステムのように見える。論理的なパーティション化の１つの利点は、任意のプロセッサ、メモリ、又はアダプタが容易に仮想システムに追加され、又は仮想システムから除去され得るように、仮想システムにおいてより細かい細分化を可能にすることである。論理的パーティション化は、一般に、被管理システム以外のハードウェア管理コンソールによって制御される。ハードウェア管理コンソールは、仮想システムへの被管理システムの分割を制御し、必要な場合には、種々の仮想システム間におけるリソースの再割り振りを制御する。
【０００４】
最近、アドミニストレータは、被管理システムにおけるシステム・ハードウェア・リソースを、柔軟性の増大と共に、移動させることができるようになった。被管理システムのリブートを必要とすることなく再割り振りが生じるときには、その論理的パーティション化は、動的な論理的パーティション化として知られている。動的な再割り振りの従来の方法は、システム・アドミニストレータが再割り振りの必要性を認識すること、及びリソースを手操作で再割り振りすることを必要とする。例えば、８個の中央処理ユニット（ＣＰＵ）を有する第１論理的パーティション及び８個のＣＰＵを有する第２論理的パーティションを含むシステムにおいて、システム・アドミニストレータは、ピーク処理期間中、第１論理的パーティションが１００％のＣＰＵ使用率で稼動し、第２論理的パーティションが２０％使用率で稼動していることを気付くことがあろう。ＣＰＵ使用率における不均衡に気付くと、アドミニストレータは、ピーク処理期間中、システム・パフォーマンスを改良するために１つ又はそれ以上のプロセッサを第２論理的パーティションから第１論理的パーティションに手操作で移動することが可能である。従って、動的な論理的パーティション化の環境には、リソースの制御及び移動を自動化するためのシステム及び方法に対する要求が存在する。
【０００５】
再割り振りプロセスにおける自動化の要求は従来技術によって対処されていた。「動的バッファ再割り振り（Dynamic Buffer Reallocation）」と題した米国特許第４,６０３,３８２号は、ストレージ装置内のデータ・ストレージ・セグメントを動的に再割り振りするための方法を開示している。この米国特許は、データ・ストレージ装置の特性をモニタし、バッファ・セグメントが事前定義の閾値を越えるとき、そのバッファ・セグメントを再割り振りする。「キャッシュ内に専用パーティション及び共用パーティションを有するコンピュータ・システム（ComputerSystem with Private and Shared Partitions in Cache）」と題した米国特許第５,８７５,４６４号は、タスクの割り振りをモニタするパーティション化されたキャッシュ・メモリ・バッファを開示している。この米国特許のメモリ・バッファは、必要なときにタスクを再割り振りする。米国特許第５,９７８,５８３号は、アプリケーションの実行の過程で当該アプリケーションを再割り振りする方法を開示している。この米国特許において開示された方法は、アプリケーションをモニタし、種々の基準に基づいて必要なときにアプリケーションを再配分する。「クラスタ・コンピューティング環境におけるリソースの柔軟性ある動的パーティション化（FlexibleDynamic Partitioning of Resources in a Cluster Computing Environment）」と題した米国特許第６,３６６,９４５号は、コンピュータ・ネットワークの動的パーティション化のための方法を開示している。この米国特許の方法は、仮想ネットワークにおけるリソースをモニタし、必要なときにネットワーク間でリソースを移動させる。しかし、この米国特許は、それが被管理ネットワークの動的な論理的パーティション化のための方法を開示してないという点で限定される。従って、米国特許第４,６０３,３８２号、同５,８７５,４６４号、同５,９７８,５８３号、及び同６,３６６,９４５号において必要とされることは、非管理システムの動的な論理的パーティション化のための方法及びシステムである。更に、仮想システムにおけるコンピュータ間でリソースを再割り振りするための方法及びシステムに対する要求が存在する。
【特許文献１】米国特許第４,６０３,３８２号
【特許文献２】米国特許第５,８７５,４６４号
【特許文献３】米国特許第５,９７８,５８３号
【特許文献４】米国特許第６,３６６,９４５号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記の要求に適合する本発明は、論理的にパーティション化された環境においてプロセッサを再割り振りするための方法、システム及びプログラム製品を提供する。
【課題を解決するための手段】
【０００７】
本発明のソフトウェア実施例は、パフォーマンス向上プログラム（PerformanceEnhancement Program；ＰＥＰ）及び再割り振りプログラム（Reallocation Program；ＲＰ）を含む。ＰＥＰは、アドミニストレータがパフォーマンス・パラメータ、取り込み（capture）インターバル、サンプリング・インターバル、提供者候補プール、受領者候補プール、提供者負荷閾値、及び受領者負荷閾値を指定することを可能にする。ＲＰは、プロセッサに対するパフォーマンス・データをコンパイルし、合成パラメータを計算する。提供者候補プールにおける各プロセッサに対して、ＲＰは、当該プロセッサが提供者であるかどうかを決定するために合成パラメータを提供者負荷閾値に比較する。受領者候補プールにおける各プロセッサに対して、ＲＰは、当該プロセッサが受領者であるかどうかを決定するために合成パラメータを受領者負荷閾値に比較する。次に、ＲＰは、プロセッサ再割り振りが必要であるかどうかを決定する。再割り振りが必要である場合、ＲＰは、プロセッサを提供者から受領者に割り振る。ＲＰは、移動ウィンドウ・サンプリング・システム又は離散ウィンドウ・サンプリング・システムに基づいてワークロード統計をモニタ及び更新し続ける。本発明のパーティション・システムはプロセッサを再割り振りするためのリブートを必要としない。
【発明を実施するための最良の形態】
【０００８】
本明細書で使用される「コンピュータ」という用語は、プロセッサ、メモリ、及びオペレーティング・システムを有し、ユーザ又は他のコンピュータと対話することができることを意味し、デスクトップ・コンピュータ、ノートブック・コンピュータ、パーソナル・ディジタル・アシスタント（ＰＤＡ）、サーバ、ハンドヘルド・コンピュータ、及び同様の装置を何の制限もなく含む。
【０００９】
本明細書で使用される「被管理システム」という用語は、特定のタスクを達成するために協働するプロセッサのようなハードウェア・コンポーネントの集合体を意味する。それらのハードウェア・コンポーネントは、単一のコンピュータ又は複数のネットワーク接続されたコンピュータに設置可能である。
【００１０】
本明細書で使用される「プロセッサ」という用語は、コンピュータの中央処理ユニットを意味する。
【００１１】
本明細書で使用される「パフォーマンス・パラメータ」という用語は、プロセッサ上のワークロードを測定するために使用される１つ又はそれ以上のパラメータを意味する。パフォーマンス・パラメータは、ラン・キュー（run queue）、システム・タイム、及び（又は）ユーザ・タイムを含む。当業者には、他のパフォーマンス・パラメータが知られている。パフォーマンス・パラメータは、いくつもパフォーマンス・パラメータの結合体を含むことも可能である。
【００１２】
本明細書で使用される「ラン・キュー」という用語は、列をなしてプロセッサを待っている多数のアクティビティ又はアプリケーションを意味する。
【００１３】
本明細書で使用される「システム・タイム」という用語は、存在するプロセッサがシステム・アクティビティ又はアプリケーションの遂行に携わる時間のパーセンテージを意味する。
【００１４】
本明細書で使用される「ユーザ・タイム」という用語は、プロセッサがユーザ・タスク又はアプリケーションに携わる時間のパーセンテージを意味する。
【００１５】
本明細書で使用される「提供者候補」という用語は、他のシステムにプロセッサを提供するための適格者としてユーザによって指定されるシステムを意味する。全提供者候補のグループが提供者候補プールと呼ばれる。システムの合成パラメータが提供者負荷閾値よりも小さい場合、提供者候補が提供者となるであろう。
【００１６】
本明細書で使用される「提供者」という用語は、提供者負荷閾値よりも小さい合成パラメータを有するシステムを意味する。全提供者のグループが提供者プールと呼ばれる。
【００１７】
本明細書で使用される「受領者候補」という用語は、他のシステムからプロセッサを受けるための適格者としてユーザによって指定されるシステムを意味する。全受領者候補のグループが受領者候補プールと呼ばれる。システムの合成パラメータが受領者負荷閾値よりも大きい場合、受領者候補が受領者となるであろう。
【００１８】
本明細書で使用される「受領者」という用語は、受領者負荷閾値よりも大きい合成パラメータを有するシステムを意味する。全受領者のグループが受領者プールと呼ばれる。
【００１９】
本明細書で使用される「提供者負荷閾値」という用語は、特定のパフォーマンス・パラメータ・レベルを意味し、それ以下のレベルで提供者がプロセッサを受領者に供給することが可能である。
【００２０】
本明細書で使用される「受領者負荷閾値」という用語は、特定のパフォーマンス・パラメータ・レベルを意味し、それ以上のレベルで、受領者がプロセッサを提供者から受領することが可能である。
【００２１】
本明細書で使用される「調整（conditioning）インターバル」という用語は、プロセッサ再割り振りが生じない期間を意味する。この期間中、サンプリング統計が収集可能であるか又は収集可能でないが、調整インターバルの終了までこれらの統計に関してアクションが取られることはない。
【００２２】
本明細書で使用される「取り込みインターバル」という用語は、種々のシステムに対するプロセッサ・パフォーマンスに関する統計が収集されるインターバルを意味する。取り込みインターバルは、サンプリング・インターバルよりも短いか又はそれに等しい任意のインターバルである。
【００２３】
本明細書で使用される「サンプリング・インターバル」という用語は、サンプル統計が取り込みされる時間のウィンドウを意味する。サンプリング・インターバルは、取り込みインターバルに等しいか又はそれよりも大きい。例えば、統計は、５分のサンプリング・インターバルに対して５秒ごとに取り込みされる。その場合、サンプリング・インターバルの終了時に、６０個の統計的サンプルが得られるであろう。サンプリング・インターバルは、移動ウィンドウ又は離散ウィンドウとして実装可能である。
【００２４】
本明細書で使用される「移動ウィンドウ」という用語は、サンプルの集合体に加えられる新たな各パフォーマンス・パラメータに対して、以前にサンプリング・インターバル内にあった最も古いパフォーマンス・パラメータ値が考慮に入れられないことを意味する。離散ウィンドウに対向する移動ウィンドウを使用する利点は、プロセッサ・リソースが必要とされるときに及びプロセッサ・リソースが必要とされる場所にプロセッサ・リソースを供給するという大きな責務を与えることである。通常、移動ウィンドウの使用は、取られる各サンプルに対して１回だけ合成パラメータの計算を必要とする。
【００２５】
本明細書で使用される「離散ウィンドウ」という用語は、サンプリング・ウィンドウが定期的にリセットされることを意味し、それらのサンプルは、個別の非オーバラップ時間間隔のものであると考えられる。移動ウィンドウに比べて離散ウィンドウを使用する利点は、合成パラメータがサンプリング・インターバル毎に１回計算されるだけであるので、離散ウィンドウの方が少ない処理リソースしか必要としないということである。
【００２６】
本明細書で使用される「合成パラメータ」という用語は、サンプリング・インターバルにわたって累積されたプロセッサ・データのアベレージ（average）を意味する。合成パラメータを計算するために使用されるアベレージは、平均値（mean）、中央値（median）、最頻値（mode）、又は水準値（norm）であってもよい。スムージング基準（smoothingcriteria）は、合成パラメータを決定するために任意選択的に使用可能である。スムージングの一例は、サンプリング・インターバル中に収集されたデータのうちの高い値及び低い値を排除することであろう。
【００２７】
本明細書で使用される「制御エンティティ」という用語は、被管理システムの内部又は外部にあって、プロセッサの再割り振りを管理する計算装置を意味する。ＵＮＩＸ（Ｒ）環境では、これは、ハードウェア管理コンソール（Hardware Management Console）として知られている。
【００２８】
図１は、本発明と関連したコンピュータ・ネットワーク９０を図解したものである。コンピュータ・ネットワーク９０は、ネットワーク９６に電気的に結合されたローカル・マシン９５を含む。ローカル・マシン９５は、ネットワーク９６を介してリモート・マシン９４及びリモート・マシン９３に電気的に結合される。ローカル・マシン９５は、ネットワーク９６を介してサーバ９１及びデータベース９２にも電気的に結合される。ネットワーク９６は、ローカル・エリア・ネットワーク（ＬＡＮ）のような簡易化されたネットワーク接続であってもよく、或いは、広域ネットワーク（ＷＡＮ）又はインターネットのような更に大きいネットワークであってもよい。更に、図１に示されたコンピュータ・ネットワーク９０は、本発明を含み且つ体系上の制限を意味しない可能なオペレーティング・ネットワークを表すものとして考えられる。
【００２９】
プロセッサ、メモリ、及び入出力装置の接続及び方向付け（orientation）を含むコンピュータの内部構成は当業者には周知である。本発明は、コンピュータ・プログラムに組み込み可能な方法論でもある。図２を参照すると、本発明の方法論がパフォーマンス向上プログラム（ＰＥＰ）２００によってソフトウェアとして実装される。ＰＥＰ２００は、再割り振りプログラム（ＲＰ）３００を含む。本願において開示されるＰＥＰ２００及びＲＰ３００は、図１に示されたいずれのコンピュータのメモリにもストア可能である。代替えとして、ＰＥＰ２００及びＲＰ３００は、取り外し可能ディスク又はＣＤ−ＲＯＭのような外部ストレージ装置にもストア可能である。メモリ１００は、図１のコンピュータの１つにおけるメモリを表す。メモリ１００は、プロセッサ・データ１０２も含む。本発明は、メモリ１００を介してプロセッサ・データ１０２とインターフェースし得る。本発明の一部として、メモリ１００はＰＥＰ２００及び（又は）ＲＰ３００と共に構成可能である。
【００３０】
別の実施例では、ＰＥＰ２００及びＲＰ３００は、他のコンピュータのメモリにストアされてもよい。他のコンピュータのメモリにＰＥＰ２００及び（又は）ＲＰ３００をストアするということは、プロセッサ・ワークロードが単一プロセッサの代わりに複数のプロセッサにまたがって分散されることを可能にする。種々のメモリにまたがるＰＥＰ２００及び（又は）ＲＰ３００の更なる構成は当業者には周知である。
【００３１】
図３を参照すると、ＰＥＰ２００のロジックのフローチャートが示される。ＰＥＰ２００は、ユーザがパフォーマンス向上の基準を指定することを可能にするプログラムである。本明細書において示されるユーザは、例えば、システム・アドミニストレータである。ＰＥＰ２００が始動し（ステップ２０２）、ユーザが少なくとも１つのパフォーマンス・パラメータを選択する（ステップ２０４）。パフォーマンス・パラメータは、プロセッサ上のワークロードを測定するためにＲＰ３００によって使用される。そこで、ユーザが取り込みインターバル及びサンプリング・インターバルを定義する（ステップ２０６）。取り込みインターバル及びサンプリング・インターバルは、プロセッサ再割り振りのためのプロセッサ・データを生成するためにＲＰ３００によって使用される。次に、ユーザが提供者候補プールを指定する（ステップ２０８）。提供者候補プールを指定するとき、ユーザは、提供者になるのに適格なプロセッサを選択する。提供者候補は、一般に、他のコンピュータ又はシステムに比べて重要性が相対的に低いパフォーマンスを有するコンピュータ又はシステムである。提供者候補は、テスト・コンピュータ又はシステム、或いは開発コンピュータ又はシステムであってもよく、或いは、受領者候補の重要度（criticality）に比べて二次的な重要度のアプリケーションであってもよい。ユーザが或るプロセッサを特定的に排除することを望まない場合、一般に、すべてのプロセッサが潜在的な提供者として選択されるであろう。そこで、ユーザが受領者候補プールを指定する（ステップ２１０）。受領者候補プールを指定するとき、ユーザは受領者になるのに適格なプロセッサを選択する。受領者候補は、相対的に高い優先順位又は重要性を有するコンピュータ又はシステムである。一般に、ユーザが或るプロセッサを特定的に排除することを望まない場合、一般に、すべてのプロセッサが潜在的な受領者として選択されるであろう。
【００３２】
次に、ユーザが提供者負荷閾値を定義する（ステップ２１２）。提供者負荷閾値は、いつ提供者候補が提供者になるかを決定するためにＲＰ３００によって使用される。重く負荷された提供者は、それの閾値が非常に高くセットされない場合、プロセッサを提供しないであろう。負荷閾値は、低い負荷（即ち、相対的に高いパフォーマンス）を有する提供者だけがプロセッサを提供し得るように、システム・パフォーマンスが低下するにつれて増加する。閾値は、どの程度の柔軟性がユーザによって望まれようとも提供するようにセット可能である。例えば、パフォーマンス・パラメータがラン・キューである場合、パフォーマンス・パラメータ限界はラン・キューにおいて３つの待機アイテムにセット可能である。従って、プロセッサがラン・キューにおいて３つよりも少ないアイテムを有するとき、プロセッサは潜在的な提供者として識別されるであろう。
【００３３】
次に、ユーザが受領者負荷閾値を定義する（ステップ２１４）。受領者負荷閾値は、いつ受領者候補が受領者になるかを決定するためにＲＰ３００によって使用される。軽く負荷された受領者は、それの閾値が非常に低くセットされない場合、プロセッサを受け取らないであろう。受領者システムにおける負荷が増加するにつれて、受領者システムのパフォーマンスは低下し、従って、ゆっくり稼動する受領者候補をプロセッサ追加に対して準備させる。例えば、パフォーマンス・パラメータがラン・キューである場合、パフォーマンス・パラメータ限界がラン・キューにおける４個の待機アイテムにおいてセット可能である。従って、プロセッサがラン・キューにおいて４個よりも多くのアイテムを有するとき、そのプロセッサは潜在的受領者として識別されるであろう。
【００３４】
次に、ＰＥＰ２００が調整レベルに入る（ステップ２１６）。その調整レベルの間、提供者と受領者との間のプロセッサ再割り振りが一時的に中断される。調整期間中、ＰＥＰ２００が提供者プールにおけるプロセッサ及び受領者プールにおけるプロセッサに対してワークロード統計を任意選択的にコンパイルする（ステップ２１８）。ワークロード統計がコンパイルされる場合、ワークロード統計におけるデータとサンプリング・インターバルにおけるデータとの間に何らかのオーバラップが存在することがある。そこで、ＰＥＰ２００がＲＰ３００を稼動させる（ステップ２２０）。次にＰＥＰが、プロセッサ再割り振りを継続すべきかどうかの決定を行う（ステップ２２２）。ユーザがプロセッサ再割り振りを継続することを望んでいる場合、ＰＥＰ２００はステップ２１６に戻る。ユーザがプロセッサ再割り振りを継続することを望まない場合、ＰＥＰ２００は終了する（ステップ２２４）。
【００３５】
図４を参照すると、ＲＰ３００のロジックのフローチャートが示される。ＲＰ３００は、プロセッサを再割り振りするプログラムである。ＲＰ３００が、ＰＥＰ２００によってプロンプト指示されるときに始動する（ステップ３０２）。ＲＰ３００が取り込みインターバルにおいてプロセッサ・データのサンプルを収集し（ステップ３０４）、そのプロセッサ・データをキャッシュ・メモリ又はハード・ディスクに保存する。例えば、パフォーマンス・パラメータがラン・キューであり、取り込みインターバルは５秒であり且つサンプリング・インターバルは５分である場合、ＲＰ３００は、合計５分の間、毎５秒の終了時に、各プロセッサに対するラン・キューにおいて待機しているアイテムの数を記録する。サンプリング・インターバルが経過した後、ＲＰ３００が合成パラメータを計算する（ステップ３０６）。ＲＰ３００は、プロセッサ・データを平均することによって合成パラメータを計算する。
【００３６】
次に、ＲＰ３００が受領者候補を分析し、合成パラメータが受領者負荷閾値よりも大きいかどうかの決定を行う（ステップ３０８）。合成パラメータが受領者負荷閾値よりも大きくない場合、ＲＰ３００はステップ３１２に進む。合成パラメータが受領者負荷閾値よりも大きい場合、ＲＰ３００はそのプロセッサを受領者として指定し（ステップ３１０）、ステップ３１２に進む。そこで、ＲＰ３００が受領者候補を分析し、合成パラメータが提供者負荷閾値よりも小さいかどうかの決定を行う（ステップ３１２）。合成パラメータが提供者負荷閾値よりも小さくない場合、ＲＰ３００はステップ３１６に進む。合成パラメータが提供者負荷閾値よりも小さい場合、ＲＰ３００はそのプロセッサを提供者として指定し（ステップ３１４）、ステップ３１６に進む。そこで、ＲＰ３００は、プロセッサ再割り振りが必要であるどうかの決定を行う（ステップ３１６）。再割り振りが必要であるかどうかを決定するために、ＲＰ３００は合成パラメータを制御エンティティに任意選択的に送ることが可能である。少なくとも１つの提供者及び少なくとも１つの受領者が存在する場合、再割り振りが必要であろう。再割り振りが必要でない場合、ＲＰ３００はステップ３２０に進む。再割り振りが必要である場合、ＲＰ３００は、当業者にとって周知の方法に従って提供者プロセッサを受領者プロセッサに再割り振りする（ステップ３１８）。受領者プロセッサに提供者プロセッサを割り振るための数多くの方法を当業者は知っているであろう。プロセッサが最割り振りされるとき、受領者プロセッサに対してキューされたタスク又はアプリケーションが提供者プロセッサに移動するであろう。１つのプロセッサから他のプロセッサにタスク又はアプリケーションを移動させる方法は当業者には周知である。そこで、ＲＰ３００はステップ３２０に進む。
【００３７】
次に、ステップ３２０において、ＲＰ３００は、サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかの決定を行う（ステップ３２０）。サンプリング・ウィンドウが移動ウィンドウである場合、ＲＰ３００は最も古いデータ・サンプルを廃棄し、最も古いデータ・サンプルを最も新しいデータ・サンプルでもって置換する（ステップ３２２）。そこで、ＲＰ３００が終了する（ステップ３２６）。ステップ３２０においてサンプリング・ウィンドウが離散ウィンドウである場合、ＲＰ３００は、すべてのデータ・サンプルを廃棄し、新しいデータ・サンプルを収集する（ステップ３２４）。そこで、ＲＰ３００は終了する（ステップ３２６）。
【００３８】
ＰＥＰ２００及びＲＰ３００は、複数のプロセッサを有するサーバのような単一のコンピュータである被管理システム上に実装可能である。図５を参照すると、サーバ４００は、他のコンピュータ・コンポーネントに電気的に結合された６個のプロセッサを含む。当業者は他のコンピュータ・コンポーネントの構成を知っているであろう。そのような他のコンピュータ・コンポーネントは、例えば、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、デバイス、デバイス・コントローラ、ハード・ディスク・ドライブ、フロッピ・ディスク・ドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤドライブ、システム接続機構、システム・コントローラ、Ｉ／Ｏポート、モニタ、ユーザ入力装置等であってもよい。
【００３９】
サーバ４００のプロセッサは、論理的パーティション化によって第１仮想システム４０２及び第２仮想システム４０４に分けられる。第１仮想システム４０２のプロセッサの少なくとも１つが受領者負荷閾値を超え、第２仮想システム４０４のプロセッサの少なくとも１つが提供者負荷閾値よりも小さい場合、第２仮想システム４０４はプロセッサを第１仮想システム４０２に提供するに適格であろう。プロセッサ４０６のようなプロセッサを第１仮想システム４０２に移動することによって、プロセッサ４０６は第１仮想システム４０２に提供され得る。
【００４０】
図６を参照すると、サーバ４００が図５において示されたものから変更されている。図６では、プロセッサ４０６が本発明のＰＥＰ２００によって第２仮想システム４０４から第１仮想システム４０２に移動している。
【００４１】
本発明はコンピュータに対するアプリケーションに限定されない。ＰＥＰ２００及び（又は）ＲＰ３００が、個別のコンピュータのネットワークである被管理システムにおいて実装可能である。図７を参照すると、被管理ネットワーク５００が論理的パーティション化によって第１仮想ネットワーク５０２及び第２仮想ネットワーク５０４に分けられる。第１仮想ネットワーク５０２のコンピュータの少なくとも１つが受領者負荷閾値を超え、第２仮想ネットワーク５０４のコンピュータの少なくとも１つが提供者負荷閾値よりも小さい場合、第２仮想ネットワーク５０４はコンピュータを、従って、プロセッサを第１仮想ネットワーク５０２に提供するに適格であろう。コンピュータ５０６のようなコンピュータを第１仮想ネットワーク５０２に移動することによって、コンピュータ５０６のプロセッサが第１仮想ネットワーク５０２に提供され得る。
【００４２】
図８を参照すると、被管理ネットワーク５００が図７に示されたものから変更されている。図８では、コンピュータ５０６が、本発明のＰＥＰ２００によって第２仮想ネットワーク５０４から第１仮想ネットワーク５０２に移動している。
【００４３】
上記の説明に関連して、サイズ、材料、形状、形式、オペレーションの機能及び態様、アセンブリ、並びに、用途の変更を含むように本発明の諸部分に対する最適な寸法上の関係は当業者にとって容易に明らかであると思われるし、図面に示され及び明細書に記載された関係と同等のすべての関係が本発明によって包含されることを意図されていることは理解されるべきである。本発明の新規な精神は、本願に含まれたステップの幾つかを再順序付けること又は削除することによっても実施可能である。本発明の精神は、「特許請求の範囲」に記載されたの適正な構成による以外の任意の方法によって限定されることを意味するものではない。
【００４４】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４５】
（１）パフォーマンス・パラメータを選択するステップと、
再割り振りプログラムを稼動するステップと
を含み、
前記再割り振りプログラムが、前記パフォーマンス・パラメータに基づいて提供者から受領者に少なくとも１つのプロセッサを再割り振りする方法。
（２）取り込みインターバルを選択するステップと、
各前記取り込みインターバルにおいてプロセッサ・データを収集するステップと
を更に含む、上記（１）に記載の方法。
（３）サンプリング・インターバルを選択するステップと、
前記サンプリング・インターバルにわたってプロセッサ・データを収集するステップと
を更に含む、上記（１）に記載の方法。
（４）提供者負荷閾値を定義するステップと、
受領者負荷閾値を定義するステップと、
前記提供者負荷閾値及び前記受領者負荷閾値に基づいて前記提供者から前記受領者に前記プロセッサを再割り振りするステップと
を更に含む、上記（１）に記載の方法。
（５）提供者候補を指定するステップと、
受領者候補を指定するステップと
を更に含み、
前記提供者候補は前記プロセッサを前記受領者候補に提供するに適格であり、
前記受領者候補は前記プロセッサを前記提供者候補から受領するに適格である、
上記（１）に記載の方法。
（６）調整レベルを入力するステップと、
前記調整レベルの間、前記プロセッサの再割り振りを中断するステップと、
を更に含む、上記（１）に記載の方法。
（７）前記再割り振りを継続すべきかどうかを決定するステップと、
前記決定に応答して、前記再割り振りプログラムを稼動するステップと
を更に含む、上記（１）に記載の方法。
（８）プロセッサに対する合成パラメータを計算するステップと、
前記合成パラメータに基づいて、再割り振りが必要であるかどうかを決定するステップと、
再割り振りが必要であるという決定に応答して、前記プロセッサを再割り振りするステップと
を含む、方法。
（９）サンプリング・インターバルにわたって前記プロセッサに対する複数のパフォーマンス・パラメータ・データを収集するステップと、
前記データを使用して前記プロセッサに対する合成パラメータを計算するためにステップと
を更に含む、上記（８）に記載の方法。
（１０）前記合成パラメータが受領者負荷閾値よりも大きいかどうかを決定するステップと、
前記合成パラメータが前記受領者負荷閾値よりも大きいという決定に応答して、前記プロセッサを受領者として指定するステップと
を更に含む、上記（８）に記載の方法。
（１１）前記合成パラメータが提供者負荷閾値よりも小さいかどうかを決定するステップと、
前記合成パラメータが提供者負荷閾値よりも小さいという決定に応答して、前記プロセッサを提供者として指定するステップと
を更に含む、上記（８）に記載の方法。
（１２）サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するステップと、
前記サンプリング・ウィンドウが移動ウィンドウであるという決定に応答して、最も古いデータ・サンプルを廃棄し、最も新しいデータ・サンプルを加えるステップと
を更に含む、上記（８）に記載の方法。
（１３）サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するステップと、
前記サンプリング・ウィンドウが離散ウィンドウであるという決定に応答して、データ・サンプルをすべて廃棄し、新しいデータ・サンプルを収集するステップと
更に含む、上記（８）に記載の方法。
（１４）第１システムから第２システムにプロセッサを再割り振りするための方法であって、
提供者負荷閾値を指定するステップと、
受領者負荷閾値を指定するステップと、
プロセッサに対する合成パラメータを計算するステップと、
前記合成パラメータが提供者負荷閾値よりも小さいかどうかを決定するステップと、
前記合成パラメータが前記提供者負荷閾値よりも小さいという決定に応答して、前記プロセッサを提供者として指定するステップと、
前記合成パラメータが受領者負荷閾値よりも大きいかどうかを決定するステップと、
前記合成パラメータが受領者負荷閾値よりも大きいという決定に応答して、前記プロセッサを受領者として指定するステップと、
前記提供者及び受領者に基づいて、再割り振りが必要であるかどうかを決定するステップと、
前記再割り振りが必要であるという決定に応答して、前記提供者を前記受領者に再割り振りするステップと
を含む、方法。
（１５）パフォーマンス・パラメータを選択するステップと、
前記パフォーマンス・パラメータに基づいて、前記プロセッサのパフォーマンスを測定するステップと
を更に含む、上記（１４）に記載の方法。
（１６）取り込みインターバルを選択するステップと、
各前記取り込みインターバルにおいてプロセッサ・データを収集するステップと
を更に含む、上記（１４）に記載の方法。
（１７）サンプリング・インターバルを選択するステップと、
前記サンプリング・インターバルにわたってプロセッサ・データを収集するステップと
を更に含む、上記（１４）に記載の方法。
（１８）提供者候補を指定するステップと、
受領者候補を指定するステップと
を更に含み、
前記提供者候補は前記プロセッサを前記受領者候補に提供するに適格であり、
前記受領者候補は前記プロセッサを前記提供者候補から受領するに適格である、
上記（１４）に記載の方法。
（１９）調整レベルを入力するステップと、
前記調整レベルの間、前記プロセッサの再割り振りを中断するステップと
を更に含む、上記（１４）に記載の方法。
（２０）再割り振りが継続すべきかどうかを決定するステップと、
前記決定に応答して、再割り振りプログラムを稼動するステップと、
を更に含む、上記（１４）に記載の方法。
（２１）サンプリング・インターバルにわたって前記プロセッサに対する複数のパフォーマンス・パラメータ・データを収集するステップと、
前記データを使用して前記プロセッサに対する前記合成パラメータを計算するステップと
を更に含む、上記（１４）に記載の方法。
（２２）サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するステップと、
前記サンプリング・ウィンドウが移動ウィンドウであるという決定に応答して、最も古いデータ・サンプルを廃棄し、最も新しいデータ・サンプルを加えるステップと
を更に含む、上記（１４）に記載の方法。
（２３）サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するステップと、
前記サンプリング・ウィンドウが離散ウィンドウであるという決定に応答して、データ・サンプルをすべて廃棄し、新しいデータ・サンプルを収集するステップと
更に含む、上記（１４）に記載の方法。
（２４）コンピュータ上で操作可能なプログラム製品であって、
コンピュータ使用可能媒体を含み、
前記コンピュータ使用可能媒体は、パフォーマンス・パラメータを選択するための命令と、再割り振りプログラムを稼動するための命令とを含み、
前記再割り振りプログラムは、前記パフォーマンス・パラメータに基づいて少なくとも１つのプロセッサを提供者から受領者に再割り振りする、
プログラム製品。
（２５）取り込みインターバルを選択するための命令と、
各前記取り込みインターバルにおいてプロセッサ・データを収集するための命令と
を更に含む、上記（２４）に記載のプログラム製品。
（２６）サンプリング・インターバルを選択するための命令と、
前記サンプリング・インターバルにわたってプロセッサ・データを収集するための命令と
を更に含む、上記（２４）に記載のプログラム製品。
（２７）提供者負荷閾値を定義するための命令と、
受領者負荷閾値を定義するための命令と、
前記提供者負荷閾値及び前記受領者負荷閾値に基づいて、前記プロセッサを前記提供者から前記受領者に再割り振りするための命令と
を更に含む、上記（２４）に記載のプログラム製品。
（２８）提供者候補を指定するための命令と、
受領者候補を指定するための命令と
を更に含み、
前記提供者候補は前記プロセッサを前記受領者候補に提供するに適格であり、
前記受領者候補は前記プロセッサを前記提供者候補から受領するに適格である、
上記（２４）に記載のプログラム製品。
（２９）調整レベルを入力するための命令と、
前記調整レベルの間、前記プロセッサの再割り振りを中断するための命令と
を更に含む、上記（２４）に記載のプログラム製品。
（３０）再割り振りが継続すべきかどうかを決定するための命令を更に含み、
前記決定に応答して、前記再割り振りプログラムを稼動する、上記（２４）に記載のプログラム製品。
（３１）コンピュータ上で操作可能なプログラム製品であって、
コンピュータ使用可能媒体を含み、
前記コンピュータ使用可能媒体は、プロセッサに対する合成パラメータを計算するための命令と、前記合成パラメータに基づいて、再割り振りが必要であるかどうかを決定するための命令と
を含み、
前記再割り振りが必要であるという決定に応答して、前記プロセッサを再割り振りする、プログラム製品。
（３２）サンプリング・インターバルにわたって前記プロセッサに対する複数のパフォーマンス・パラメータ・データを収集するための命令と、
前記データを使用して前記プロセッサに対する前記合成パラメータを計算するための命令と
を更に含む、上記（３１）に記載のプログラム製品。
（３３）前記合成パラメータが受領者負荷閾値よりも大きいかどうかを決定するための命令を含み、
前記合成パラメータが受領者負荷閾値よりも大きいという決定に応答して、前記プロセッサを受領者として指定する、上記（３１）に記載のプログラム製品。
（３４）前記合成パラメータが提供者負荷閾値よりも小さいかどうかを決定するための命令を更に含み、
前記合成パラメータが提供者負荷閾値よりも小さいという決定に応答して、前記プロセッサを提供者として指定する、上記（３１）に記載のプログラム製品。
（３５）サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するための命令を更に含み、
前記サンプリング・ウィンドウが移動ウィンドウであるという決定に応答して、最も古いデータ・サンプルを廃棄し、最も新しいデータ・サンプルを加える、上記（３１）に記載のプログラム製品。
（３６）サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するための命令を更に含み、
前記サンプリング・ウィンドウが離散ウィンドウであるという決定に応答して、データ・サンプルをすべて廃棄し、新しいデータ・サンプルを収集する、上記（３１）に記載のプログラム製品。
（３７）プロセッサを第１システムから第２システムに再割り振りするためのコンピュータ上で操作可能なプログラム製品であって、
コンピュータ使用可能な媒体を含み、
前記コンピュータ使用可能な媒体は、
提供者負荷閾値を指定するための命令と、
受領者負荷閾値を指定するための命令と、
プロセッサに対する合成パラメータを計算するための命令と、
前記合成パラメータが提供者負荷閾値よりも小さいかどうかを決定するための命令と、
前記合成パラメータが受領者負荷閾値よりも大きいかどうかを決定するための命令と、
前記提供者及び受領者に基づいて再割り振りが必要であるかどうかを決定するための命令と
を含み、
前記合成パラメータが前記提供者負荷閾値よりも小さいという決定に応答して、前記プロセッサを提供者として指定し、
前記合成パラメータが前記受領者負荷閾値よりも大きいという決定に応答して、前記プロセッサを受領者として指定し、
再割り振りが必要であるという決定に応答して、前記提供者を前記受領者に再割り振りする、
プログラム製品。
（３８）パフォーマンス・パラメータを選択するための命令と、
前記パフォーマンス・パラメータに基づいて前記プロセッサの前記パフォーマンスを測定するための命令と
を更に含む、上記（３７）に記載のプログラム製品。
（３９）取り込みインターバルを選択するための命令と、
各前記取り込みインターバルにおいてプロセッサ・データを収集するための命令と
を更に含む、上記（３７）に記載のプログラム製品。
（４０）サンプリング・インターバルを選択するための命令と、
前記サンプリング・インターバルにわたってプロセッサ・データを収集するための命令と
を更に含む、上記（３７）に記載のプログラム製品。
（４１）提供者候補を指定するための命令と、
受領者候補を指定するための命令と
を更に含み、
前記提供者候補が前記プロセッサを前記受領者候補に提供するに適格であり、
前記受領者候補が前記プロセッサを前記提供者候補から受領するに適格である、
上記（３７）に記載のプログラム製品。
（４２）調整レベルを入力するための命令と、
前記調整レベルの間、前記プロセッサの再割り振りを中断するための命令と、
を更に含む、上記（３７）に記載のプログラム製品。
（４３）再割り振りが継続すべきかどうかを決定するための命令を更に含み、
前記決定に応答して前記再割り振りプログラムを稼動する、上記（３７）に記載のプログラム製品。
（４４）サンプリング・インターバルにわたって前記プロセッサに対する複数のパフォーマンス・パラメータ・データを収集するための命令と、
前記データを使用して前記プロセッサに対する前記合成パラメータを計算するための命令と
を更に含む、上記（３７）に記載のプログラム製品。
（４５）サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するための命令を含み、
前記サンプリング・ウィンドウが移動ウィンドウであるという決定に応答して、最も古いデータ・サンプルを廃棄し、最も新しいデータ・サンプルを加える、上記（３７）に記載のプログラム製品。
（４６）サンプリング・ウィンドウが移動ウィンドウであるか又は離散ウィンドウであるかを決定するための命令を含み、
前記サンプリング・ウィンドウが離散ウィンドウであるという決定に応答して、データ・サンプルをすべて廃棄し、新しいデータ・サンプルを収集する、上記（３７）に記載のプログラム製品。
【図面の簡単な説明】
【００４６】
【図１】本発明を実施するために使用されるコンピュータ・ネットワークを示す図である。
【図２】本発明を実施するために使用されるメモリを示す図である。
【図３】本発明のパフォーマンス向上プログラム（ＰＥＰ）を示す図である。
【図４】本発明の再割り振りプログラム（ＲＰ）を示す図である。
【図５】本発明を適用する前の単一コンピュータにおける論理的にパーティション化されたシステムを示す図である。
【図６】本発明を適用した後の単一コンピュータにおける論理的にパーティション化されたシステムを示す図である。
【図７】本発明を適用する前の論理的にパーティション化された仮想システムを示す図である。
【図８】本発明を適用した後の論理的にパーティション化された仮想システムを示す図である。
【図１】
2004334853.tif 000003
【図２】
2004334853.tif 000004
【図３】
2004334853.tif 000005
【図４】
2004334853.tif 000006
【図５】
2004334853.tif 000007
【図６】
2004334853.tif 000008
【図７】
2004334853.tif 000009
【図８】
2004334853.tif 000010