二次分配是由一个或多个分组资源分配组成的资源分配层次结构。

可以使用二次分配将 CPU 资源分配分成一个或多个资源分配,每个资源分配有其自己的 CPU 分配。这些二次分配是按层次结构在顶级资源分配下进行分组的,因而,分配给父级资源分配的 CPU 百分比,将按照在每个二次分配的 CPU 分配中指定的比例,在所有二次分配中分摊。

注意

Windows 系统资源管理器在应用管理策略时评估二次分配的整个层次结构。首先应用层次结构中的最后一个二次分配,然后在层次结构中依次向上应用其他分配,直至父级资源分配。

资源分配与其二次分配之间的唯一关系是共享父级资源分配分配的 CPU 带宽。与这些分配匹配的进程是不同的。

创建二次分配

在现有资源分配中创建二次分配,二次分配是资源分配策略的一部分。

注意

仅当父级资源分配的管理规则设置为“标准”时,才能创建二次分配。

注意

必须将每个二次分配配置为使用不同的进程匹配条件。如果在二次分配层次结构中多次使用同一个进程匹配条件,将通过第一次匹配的资源分配管理进程。

本地 Administrators 组中的成员身份或同等身份是完成此过程所需的最低要求。

若要在现有资源分配中创建二次分配,请执行下列操作:
  1. 打开“Windows 系统资源管理器”。要打开“Windows 系统资源管理器”,请单击「开始」,指向“管理工具”,然后单击“Windows 系统资源管理器”。

  2. 在“连接到计算机”对话框中,选择“这台计算机”,然后单击“连接”。

  3. 在控制台树中,展开“资源分配策略”,右键单击包含要在其中创建二次分配的资源分配的资源分配策略的名称,然后单击“属性”

  4. “资源”选项卡的“分配这些资源”下,单击要在其中创建二次分配的资源分配的名称,然后单击“编辑”

  5. “高级”选项卡上,单击“资源二次分配”

  6. “资源二次分配”对话框中,单击“添加”

  7. 按照相应步骤创建资源分配。有关分步操作说明,请参阅创建新的资源分配策略中的过程。完成后,请单击“确定”

  8. 可以根据需要创建任意数目的二次分配。

    • 可以通过再次单击“资源二次分配”,在父级资源分配下创建更多的二次分配。

    • 若要在二次分配下创建二次分配,依次单击“资源二次分配”、要进一步二次分配的二次分配、“编辑”,然后继续从此过程的步骤 3 开始执行操作。

  9. 完成了二次分配的创建后,在父级资源分配“属性”页上,单击“确定”

二次分配示例

在多项服务器功能之间二次分配资源

将使用二次分配的一种情况是拥有一台执行多项功能的服务器。每项功能同等重要,运行多个应用程序来完成每项功能。

可以为一个资源分配配置多个子二次分配,每个二次分配具有自己的相对分配。通过这种方式,可以创建层次结构。

下表提供如何在资源分配策略中使用简单的二次分配来分配资源的示例。此示例说明如何在执行某项功能的一组进程中分配资源,您希望为该进程组保留总可用 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 的第二个二次分配。匹配 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 利用率,而是定义进程访问 CPU 带宽的顺序,因此为每个资源分配和二次分配指定可用 CPU 的 99%。

下表提供了如何使用二次分配确定进程优先级的示例。每个分配或二次分配按照创建的顺序列出。

分配或二次分配 属性

资源分配 LowestPriority

  • 可用 CPU 的 99%

  • 匹配进程匹配条件 LeastImportant

通过二次分配进一步分配的父级资源分配。最后应用父级资源分配。因此,二次分配未使用的任何资源将可供匹配 LeastImportant 的进程使用。

二次分配 MediumPriority

  • LowestPriority 的二次分配

  • LowestPriority 分配的 CPU 的 99%

  • 匹配进程匹配条件 AvgImportant

LowestPriority 的唯一二次分配。该二次分配在 LowestPriority 之前以及 HighestPriority 之后应用。MediumPriority 未使用的任何资源将可供 LowestPriority 使用。

二次分配 HighestPriority

  • MediumPriority 的二次分配

  • MediumPriority 分配的 CPU 的 99%

  • 匹配进程匹配条件 MostImportant

MediumPriority 的唯一二次分配。该二次分配是最后一个二次分配,将首先应用。HighestPriority 未使用的任何资源将可供 MediumPriority 使用。

在该示例中,进程不被限制固定的 CPU 带宽量。最后一个二次分配应用于的进程可以获得可使用的任意 CPU 带宽量,其他 CPU 带宽按照在分配链上依次向上的顺序分配给其他争用进程。

其他参考


目录