Windows システム リソース マネージャーでは、プロセスの優先順位を調整することでプロセッサ リソースが管理されます。この方法により、使用可能な CPU 帯域幅の最小割合が、プロセス一致条件で定義されるグループの処理用に確保されます。リソース管理は、CPU 使用率の合計が 70% 以下の場合は強制されません。

Windows システム リソース マネージャーを使ってプロセッサのアフィニティを定義することもできます。つまり、条件に一致したプロセスを、マルチプロセッサ コンピューター上の単一のプロセッサまたはプロセッサのグループと関連付けることができます。

重要

コア オペレーティング システム プロセスは、Windows システム リソース マネージャー サービスを含め一切管理されません。また、プロセスをユーザー定義の除外一覧に追加することにより、手動で管理から除外できます。除外されていないプロセス、または管理対象プロセス グループのメンバーでないプロセスは、割り当て後に残るリソースを共有する必要があります。管理ポリシーとして Weighted_Remote_Sessions が設定されていると、Windows システム リソース マネージャーの状態にかかわらずカーネルによるリソース割り当てが行われます。

プロセッサ管理の方法

Windows システム リソース マネージャーでは、パーセント CPU ターゲットまたはプロセッサのアフィニティ規則を使ってプロセッサ リソースを管理できます。

重要

アプリケーションに CPU 使用率管理またはプロセッサのアフィニティ管理の機能がある場合は、アプリケーションにネイティブのリソース管理を使用し、そのアプリケーションをユーザー定義の除外一覧に追加します。

パーセント CPU ターゲット

プロセッサ リソースを割り当てる一番簡単な方法は、プロセス一致条件で定義されるプロセスのグループごとにパーセント CPU ターゲットを割り当てることです。このターゲットとは、プロセス グループに対して最低限保証される使用可能な CPU 帯域幅の割合です。

割り当てに使用できるリソースは、コア オペレーティング システムのプロセスや手動で除外されたプロセスに使用されていないリソースです。

Windows システム リソース マネージャーでは、CPU 帯域幅使用率を制限するのではなく使用可能な最小の CPU 帯域幅を保証する方法が採用されるため、管理対象プロセス グループでは実際に最小割り当て分より多くの CPU が使用されることもあります。最小割り当て分を使用していない管理対象プロセス グループの、余っている帯域幅は、リソースをさらに多く必要とするプロセス グループに再割り当てされます。

管理規則

CPU の制約を使ってリソース割り当てのポリシーを作成する際には、適用する管理規則も選択できます。これらの管理規則は組み込みのリソース割り当てのポリシーと類似しています。ただし管理規則を、リソース割り当てのポリシーの一部である単一のリソース割り当てに適用した場合、割り当てられた CPU が、条件に一致したすべてのプロセス間で分割され、リソースが割り当てられます。

管理規則には次のものがあります。

標準 (既定)

Windows システム リソース マネージャーでは、割り当てられた CPU を、条件に一致したプロセス間でどのように分割するかを制御しません。この管理規則を選択した場合は、追加のプロセス一致条件を使用して、一致したプロセスにリソースをサブ割り当てできます。詳細については、後述のサブ割り当てのセクションを参照してください。

たとえば、条件に一致した 1 つのプロセスによって、割り当てられた CPU 帯域幅がすべて消費されることがあります。Windows システム リソース マネージャーではこの管理は行われないため、2 つ目のプロセスに影響が生じる可能性があります。

プロセス単位で均等

使用可能な CPU 帯域幅は、条件に一致したプロセスの間で均等に分割されます。この管理規則を選択した場合、サブ割り当てはできません。

たとえば、条件に一致した 2 つのプロセスによって、割り当てられた CPU 帯域幅が 100% 消費される場合、Windows システム リソース マネージャーは CPU 使用率 50% を超えるプロセスの優先順位を下げます。

ユーザー単位で均等

使用可能な CPU 帯域幅は、各ユーザーが実行する、条件に一致したプロセスのグループに均等に割り当てられます。この管理規則を選択した場合、サブ割り当てはできません。

たとえば、2 人のユーザーが実行している複数のアプリケーションによって、割り当てられた CPU 帯域幅が 100% 消費される場合、Windows システム リソース マネージャーは、CPU 使用率 50% を超えるユーザーが実行しているプロセスの優先順位を下げます。

セッション単位で均等

使用可能な CPU 帯域幅は、RD セッション ホスト サーバーの各リモート デスクトップ サービス セッションで実行されている、条件に一致したプロセスに均等に割り当てられます。この管理規則を選択した場合、サブ割り当てはできません。

たとえば、RD セッション ホスト サーバーに接続している 2 人のユーザーが、割り当てられた CPU 帯域幅を 100% 消費する場合、Windows システム リソース マネージャーは、CPU 使用率 50% を超えるリモート デスクトップ サービス セッションで実行されているプロセスの優先順位を下げます。

サブ割り当て

パーセント CPU ターゲットの割り当ては、さらにサブ割り当てに分割できます。サブ割り当てによって割り当てられるリソースは、親のリソース割り当てで割り当てられるリソースに対する割合として計算されます。このサブ割り当てで使用されるプロセス一致条件は、親のリソース割り当てのプロセス一致条件とは異なるものです。

サブ割り当ては既定のリソース割り当てのポリシーよりも優先されます。詳細については、「リソースのサブ割り当てを行う」を参照してください。

既定の管理 : プロセス単位で均等

単一のプロセス グループに含まれるプロセス間でリソースを管理する際の既定のポリシーは、組み込みのポリシー Equal_Per_Process です。このポリシーの内容は次のとおりです。

  • 使用可能な CPU 帯域幅は、プロセス一致条件で識別されたプロセスの間で均等に分割されます。

  • ランナウェイ プロセス保護は既定で有効です。

  • 追加構成を行わずに Windows システム リソース マネージャーを起動した場合、管理対象サーバーで実行されている管理可能なすべてのプロセスにこのポリシーが適用されます。

この既定のポリシーは、Windows システム リソース マネージャーのプロパティを編集することで変更できます。カレンダーが無効であれば [現在のリソース割り当てのポリシー] を有効にし、カレンダーが有効であれば [カレンダー既定ポリシー] を無効にします。

プロセッサのアフィニティ

CPU ターゲットの割合指定に加えて、条件に一致したプロセスをマルチプロセッサ システムの特定のプロセッサとリンクすることができます。この方法は、少数のプロセス一致条件でサーバーのリソースを分割する場合には効果的ですが、多数のプロセス一致条件とプロセッサのアフィニティを使用する場合には注意が必要です。Windows システム リソース マネージャーでは、アフィニティが設定されたプロセスに対する使用可能なリソースの計算において、単一のプロセッサの状態のみが考慮されます。したがって、システムの負荷が高くなっているときには、プロセッサ リソースが過度に割り当てられる可能性があります。

場合によっては、使用可能な CPU 帯域幅が予想より少ないこともあります。この場合、条件に一致したプロセスに割り当てられる CPU 帯域幅が少なくなり、応答が予想より遅くなる可能性があります。これは次の状況で発生します。

  • プロセス グループのアフィニティ設定されたプロセッサの数が少なすぎる。

  • アフィニティ設定のないプロセスが、別のプロセス グループに使用制限が課されているプロセッサを使用している。

アフィニティ設定のあるプロセス間で割り当ての競合が起こっているかどうかをプロセス一致条件で確認できない。

Windows システム リソース マネージャーによる CPU のアフィニティ管理は、SQL Server の複数インスタンスの管理には推奨されません。代わりに、SQL Server のプロセッサのアフィニティ設定を使用してください。

その他の参照情報


目次