サブ割り当てとは、1 つまたは複数のグループ化されたリソース割り当てを含むリソース割り当ての階層のことです。

サブ割り当てを使用すると、1 つの CPU リソース割り当てを 1 つまたは複数のリソース割り当てに分割し、それぞれに独自の CPU 割り当てを指定することができます。これらのサブ割り当ては、最上位のリソース割り当ての下の階層としてグループ化されます。親のリソース割り当てに割り当てられた CPU の割合は、各サブ割り当ての CPU 割り当てに指定された比率に従って、サブ割り当て間で分配されます。

Windows システム リソース マネージャーでは、管理ポリシー適用の際、サブ割り当ての階層全体が評価されます。このとき、階層の最後にあるサブ割り当てが最初に適用され、親のリソース割り当ての方向に 1 つずつ階層をたどって残りの割り当てが適用されます。

リソース割り当てとそのサブ割り当ての唯一の関連性は、親のリソース割り当てによって割り当てられた CPU 帯域幅を共有していることです。一致条件によってこれらの割り当てに対応付けられるプロセスは、それぞれ異なります。

サブ割り当てを作成する

サブ割り当ては既存のリソース割り当て内に作成されます。これらはリソース割り当てのポリシーの一部です。

サブ割り当てを作成できるのは、親のリソース割り当ての管理規則が [標準] に設定されている場合だけです。

各サブ割り当ては、異なるプロセス一致条件を使用して構成する必要があります。サブ割り当て階層内で同じプロセス一致条件が複数回使用されている場合、プロセスは最初に一致したリソース割り当てを使用して管理されます。

この手順を実行するには、ローカルの Administrators グループのメンバーシップ、またはそれと同等のメンバーシップが最低限必要です。

既存のリソース割り当て内にサブ割り当てを作成するには
  1. Windows システム リソース マネージャーを開きます。Windows システム リソース マネージャーを開くには、[スタート] ボタン、[管理ツール]、[Windows システム リソース マネージャー] の順にクリックします。

  2. [コンピューターに接続] ダイアログ ボックスで、[このコンピューター] を選択して [接続] をクリックします。

  3. コンソール ツリーで、[リソース割り当てのポリシー] を展開し、サブ割り当ての作成先となるリソース割り当てを含む、リソース割り当てのポリシー名を右クリックして、[プロパティ] をクリックします。

  4. [リソース] タブの [次のリソースを割り当てます] で、サブ割り当ての作成先となるリソース割り当ての名前を右クリックし、[編集] をクリックします。

  5. [詳細設定] タブの [リソースのサブ割り当て] をクリックします。

  6. [リソースのサブ割り当て] ダイアログ ボックスで、[追加] をクリックします。

  7. リソース割り当てを作成する手順に従います。作成手順については、「新しいリソース割り当てのポリシーを作成する」に記載されている手順を参照してください。完了したら、[OK] をクリックします。

  8. サブ割り当てはいくつでも作成できます。

    • [リソースのサブ割り当て] を再度クリックすると、親のリソース割り当ての下にさらにサブ割り当てを作成できます。

    • サブ割り当ての下にサブ割り当てを作成するには、[リソースのサブ割り当て] をクリックし、追加のサブ割り当ての親となるサブ割り当てをクリックした後、[編集] をクリックして、手順 3 以降の操作を行います。

  9. サブ割り当ての作成が終了したら、親のリソース割り当ての [プロパティ] ページで [OK] をクリックします。

サブ割り当ての例

複数のサーバー機能間でリソースのサブ割り当てを行う

サブ割り当てを使用する状況の一例として、単一のサーバーで複数の機能を実行している場合を考えます。ここで、各機能は同程度に重要で、各機能を完了するために複数のアプリケーションを実行しているとします。

この場合、単一のリソース割り当てに複数の子サブ割り当てを構成し、各サブ割り当てに独自の相対割り当てを指定できます。この方法で、階層を作成できます。

次の表に、リソース割り当てのポリシー内で簡単なサブ割り当てを使用してリソースを分割する方法を示します。この例では、ある機能を実行するプロセスのグループ間でリソースを割り当てる方法について説明します。割り当て方法としては、使用可能な CPU 帯域幅の合計のうち 50% をこの機能用に確保し、残りの 50% をその他のプロセス用とします。

ここでは、各割り当てまたはサブ割り当てを、作成する順に示しています。

割り当てまたはサブ割り当て プロパティ

リソース割り当て ra_A

  • 使用可能な CPU の 50%

  • プロセス一致条件 pmc_A に適用

親のリソース割り当てです。サブ割り当てによってさらに分割されます。親のリソース割り当ては最後に適用されます。したがって、サブ割り当てで消費されないリソースが、pmc_A に一致するプロセスに対して使用可能になります。

サブ割り当て sub_B

  • ra_A によって割り当てられた CPU の 20%

  • プロセス一致条件 pmc_B に適用

ra_A の最初のサブ割り当てです。pmc_Bに一致するプロセスでは、CPU 帯域幅の合計の最大 10% (ra_A で使用可能な 50% のうちの 20%) を使用できます。

サブ割り当て sub_C

  • ra_A によって割り当てられた CPU の 30%

  • プロセス一致条件 pmc_C に適用

ra_A の 2 番目のサブ割り当てです。pmc_C に一致するプロセスでは、CPU 帯域幅の合計の最大 15% (ra_A で使用可能な 50% のうちの 30%) を使用できます。

リソース割り当て ra_D

  • 使用可能な CPU の 50%

  • "その他" プロセス一致条件に適用

階層内で ra_A と同じレベルのリソース割り当てです。別のプロセス一致条件に一致しないプロセスでは、使用可能な CPU 帯域幅の合計の最大 50% を消費できます。

この例のサブ割り当ては、合計すると親のリソース割り当ての 50% になります。したがって、pmc_A に一致するプロセスでは、最小で CPU 帯域幅の合計の 25%、つまり ra_A で使用可能な 50% のうちの 50% を使用できます。

サブ割り当てを使用してプロセスに優先順位を付ける

サブ割り当てを使用する状況の別の例として、サーバーで実行している複数の機能に、重要度に応じて優先順位を付ける場合を考えます。サブ割り当てで使用されていないリソースは親のリソース割り当てで使用可能になるため、この組み込みロジックを活用すると、サブ割り当てを使用してプロセスに優先順位を付けることができます。

プロセスに優先順位を付けるには、最後に適用するリソース割り当て (親のリソース割り当て) から最初に適用するリソース割り当て (最後のサブ割り当て) の順に、サブ割り当てを入れ子にして作成します。それぞれの割り当てには CPU の 99% を指定します。

各リソース割り当てとサブ割り当てには使用可能な CPU の 99% が与えられますが、ここでの目的は、CPU 使用率を制限することではなくプロセスが CPU 帯域幅にアクセスする順番を定義することなので、問題はありません。

次の表に、サブ割り当てを使用してプロセスに優先順位を付ける方法を示します。ここでは、各割り当てまたはサブ割り当てを、作成する順に示しています。

割り当てまたはサブ割り当て プロパティ

リソース割り当て LowestPriority

  • 使用可能な CPU の 99%

  • プロセス一致条件 LeastImportant に一致

親のリソース割り当てです。サブ割り当てによってさらに分割されます。親のリソース割り当ては最後に適用されます。したがって、サブ割り当てで消費されないリソースが、LeastImportant に一致するプロセスに対して使用可能になります。

サブ割り当て MediumPriority

  • LowestPriority のサブ割り当て

  • LowestPriority によって割り当てられた CPU の 99%

  • プロセス一致条件 AvgImportant に一致

LowestPriority の唯一のサブ割り当てです。HighestPriority の後で、LowestPriority より先に適用されます。MediumPriority によって消費されないリソースが、LowestPriority で使用可能になります。

サブ割り当て HighestPriority

  • MediumPriority のサブ割り当て

  • MediumPriority によって割り当てられた CPU の 99%

  • プロセス一致条件 MostImportant に一致

MediumPriority の唯一のサブ割り当てです。最後のサブ割り当てであるため、最初に適用されます。HighestPriority によって消費されないリソースが、MediumPriority で使用可能になります。

この例では、プロセスで使用できる CPU 帯域幅は固定の帯域幅に制限されません。代わりに、最後のサブ割り当てが適用されるプロセスでは消費可能な最大限の CPU 帯域幅を使用でき、残った CPU 帯域幅は、他の競合するプロセス間で階層をたどって分配されます。

その他の参照情報


目次