跳过导航链接
退出打印视图
| Oracle Solaris Cluster 系统管理指南 Oracle Solaris Cluster 3.3 3/13 (简体中文)

搜索范围:

- 本文档
- 整个文档库

## 配置 CPU 控制

本节包括以下过程：

- 如何在全局群集上的投票节点中控制 CPU 使用情况

- 如何使用默认处理器集控制全局群集非投票节点中的 CPU 使用率

- 如何使用专用处理器集控制全局群集非投票节点中的 CPU 使用率

## 如何在全局群集上的投票节点中控制 CPU 使用情况

执行此过程可为将在全局群集投票节点中执行的资源组分配 CPU 份额。

如果某个资源组分配有 CPU 份额，则当 Oracle Solaris Cluster 软件在全局群集投票节点中启动该资源组的资源时，将执行以下任务：

- 根据指定的 CPU 份额数，增加分配给该投票节点的 CPU 份额数 (`zone.`cpu-shares)（如果尚未这样做）。

- 在该投票节点中创建一个名为 `SCSLM_`resourcegroup_name 的项目（如果尚未这样做）。此项目特定于该资源组，并分配有指定数目的 CPU 份额 (`project.`cpu-shares)。

- 启动 `SCSLM_` resourcegroup_name 项目中的资源。

有关配置 CPU 控制工具的更多信息，请参见 `rg_properties`(5) 手册页。

1. 将系统的默认调度程序设置为公平份额调度器 (Fair Share Scheduler, FSS)。

       # dispadmin -d FSS

   下次重新引导时，FSS 将成为默认调度程序。要使此配置立即生效，请使用 `priocntl` 命令。

       # priocntl -s -C FSS

   组合使用 `priocntl` 命令和 `dispadmin` 命令可确保 FSS 立即成为默认调度器，并在重新引导后也保持不变。有关设置调度类的更多信息，请参见 `dispadmin`(1M) 和 `priocntl`(1) 手册页。

   注 - 如果 FSS 不是默认调度程序，您分配的 CPU 份额将不会生效。

2. 在每个要使用 CPU 控制的节点上，配置全局群集投票节点的份额数以及默认处理器集中可用 CPU 的最小数目。

   设置这些参数有助于保护在投票节点中运行的进程，使其免于与在非投票节点中运行的进程争用 CPU。如果没有给 `globalzoneshares` 和 `defaultpsetmin` 属性赋值，这些属性将采用各自的默认值。

       # clnode set [-p globalzoneshares=integer] \
       [-p defaultpsetmin=integer] \
       node

   `-p` `defaultpsetmin=` defaultpsetmininteger

     设置默认处理器集中可用的最小 CPU 数。默认值为 1。

   `-p` `globalzoneshares=` integer

     设置分配给投票节点的份额数。默认值为 1。

   node

     指定要设置其属性的节点。

   设置这些属性即是设置投票节点的属性。如果没有设置这些属性，则无法在非投票节点中获得 `RG_SLM_PSET_TYPE` 属性的益处。

3. 验证是否正确设置了这些属性。

       # clnode show node

   对于您指定的节点，`clnode` 命令可显示属性集以及为这些属性设置的值。如果未使用 `clnode` 设置 CPU 控制属性，这些属性将采用默认值。

4. 配置 CPU 控制工具。

       # clresourcegroup create -p RG_SLM_TYPE=automated \
        [-p RG_SLM_CPU_SHARES=value] resource_group_name

   `-p` `RG_SLM_TYPE=automated`

     允许您控制 CPU 使用情况，并自动执行一些步骤以在 Oracle Solaris OS 中配置系统资源管理。

   `-p` `RG_SLM_CPU_SHARES=` value

     指定分配给资源组特定项目的 CPU 份额数（即 `project.cpu-shares`），并确定分配给投票节点的 CPU 份额数（即 `zone.cpu-shares`）。

   resource_group_name

     指定资源组的名称。

   在此过程中，未设置 `RG_SLM_PSET_TYPE` 属性。在投票节点中，该属性采用 `default` 值。

   这步操作将创建一个资源组。此外，您还可使用 `clresourcegroup set` 命令修改现有资源组。

5. 激活配置更改。

       # clresourcegroup online -eM resource_group_name

   resource_group_name

     指定资源组的名称。

   注 - 请不要删除或修改 `SCSLM_`resource_group_name 项目。您可以手动将更多资源控制添加到项目中，例如，通过配置 `project.max-lwps` 属性。有关更多信息，请参见 `projmod`(1M) 手册页。

## 如何使用默认处理器集控制全局群集非投票节点中的 CPU 使用率

如果要为全局群集非投票节点中的资源组分配 CPU 份额，但不要创建专用处理器集，则可执行以下过程。

如果某个资源组分配有 CPU 份额，则当 Oracle Solaris Cluster 软件在全局群集非投票节点中启动该资源组的资源时，将执行以下任务：

- 创建一个名为 `SCSLM_`resource_group_name 的池（如果尚未创建）。

- 将 `SCSLM_pool_`zone_name 池与默认处理器集相关联。

- 将非投票节点动态绑定到 `SCSLM_pool` zone_name 池。

- 根据指定的 CPU 份额数，增加分配给该投票节点的 CPU 份额数 (`zone.cpu-shares`)（如果尚未这样做）。

- 在该非投票节点中创建一个名为 `SCSLM_`resourcegroup_name 的项目（如果尚未这样做）。此项目特定于该资源组，并分配有指定数目的 CPU 份额 (project.cpu-shares)。

- 启动 `SCSLM_` resourcegroup_name 项目中的资源。

有关配置 CPU 控制工具的更多信息，请参见 `rg_properties`(5) 手册页。

1. 将系统的默认调度程序设置为公平份额调度器 (Fair Share Scheduler, FSS)。

       # dispadmin -d FSS

   下次重新引导时，FSS 将成为默认调度程序。要使此配置立即生效，请使用 `priocntl` 命令：

       # priocntl -s -C FSS

   组合使用 `priocntl` 命令和 `dispadmin` 命令可确保 FSS 立即成为默认调度，并在重新引导后也保持不变。有关设置调度类的更多信息，请参见 `dispadmin`(1M) 和 `priocntl`(1) 手册页。

   注 - 如果 FSS 不是默认调度程序，您分配的 CPU 份额将不会生效。

2. 在每个要使用 CPU 控制的节点上，配置全局群集投票节点的份额数以及默认处理器集中可用 CPU 的最小数目。

   设置这些参数有助于保护在投票节点中运行的进程，使其免于与在全局群集非投票节点中运行的进程争用 CPU。如果没有给 `globalzoneshares` 和 `defaultpsetmin` 属性赋值，这些属性将采用各自的默认值。

       # clnode set [-p globalzoneshares=integer] \
       [-p defaultpsetmin=integer] \
       node

   `-p` `globalzoneshares=` integer

     设置分配给投票节点的份额数。默认值为 1。

   `-p` `defaultpsetmin=` defaultpsetmininteger

     设置默认处理器集中可用的最小 CPU 数。默认值为 1。

   node

     标识要设置其属性的节点。

   设置这些属性即是设置投票节点的属性。

3. 验证是否正确设置了这些属性：

       # clnode show node

   对于您指定的节点，`clnode` 命令可显示属性集以及为这些属性设置的值。如果未使用 `clnode` 设置 CPU 控制属性，这些属性将采用默认值。

4. 配置 CPU 控制工具。

       # clresourcegroup create -p RG_SLM_TYPE=automated \
        [-p RG_SLM_CPU_SHARES=value] resource_group_name

   `-p` `RG_SLM_TYPE=automated`

     允许您控制 CPU 使用情况，并自动执行一些步骤以在 Oracle Solaris OS 中配置系统资源管理。

   `-p` `RG_SLM_CPU_SHARES=` value

     指定分配给资源组特定项目的 CPU 份额数（即 `project.cpu-shares`），并确定分配给全局群集非投票节点的 CPU 份额数（即 `zone.cpu_shares`）。

   resource_group_name

     指定资源组的名称。

   这步操作将创建一个资源组。此外，您还可使用 `clresourcegroup set` 命令修改现有资源组。

   如果区域配置中包含默认池之外的其他池，或区域动态绑定到默认池之外的其他池，则您无法在非投票节点中将 `RG_SLM_TYPE` 设置为 `automated`。有关区域配置和池绑定的信息，请分别参见 `zonecfg`(1M) 和 `poolbind`(1M) 手册页。按如下方式查看区域配置：

       # zonecfg -z zone_name info pool

   注 - `HAStoragePlus` 或 `LogicalHostname` 之类的资源配置为在非投票节点中启动，但当 `GLOBAL_ZONE` 属性设置为 `TRUE` 时，资源在投票节点中启动。即使将 `RG_SLM_TYPE` 属性设置为 `automated`，此资源也不会从 CPU 份额配置中获益，对其的处理与在 `RG_SLM_TYPE` 设置为手动时的资源组中相同。

   在此过程中，不需要设置 `RG_SLM_PSET_TYPE` 属性。Oracle Solaris Cluster 将使用默认的处理器集。

5. 激活配置更改。

       # clresourcegroup online -eM resource_group_name

   resource_group_name

     指定资源组的名称。

   如果将 `RG_SLM_PSET_TYPE` 设置为 `default`，Oracle Solaris Cluster 会创建一个池 `SCSLM_pool_`zone_name，但不会创建处理器集。在这种情况下，`SCSLM_pool_`zone_name 与默认的处理器集关联。

   如果在非投票节点中不再为了获取 CPU 控制而对联机资源组进行配置，则非投票节点的 CPU 份额值将采用区域配置中 `zone.cpu-shares` 的值。该参数的默认值为 `1`。有关区域配置的更多信息，请参见 `zonecfg`(1M) 手册页。

   注 - 请不要删除或修改 `SCSLM_`resource_group_name 项目。您可以手动将更多资源控制添加到项目中，例如，通过配置 `project.max-lwps` 属性。有关更多信息，请参见 `projmod`(1M) 手册页。

## 如何使用专用处理器集控制全局群集非投票节点中的 CPU 使用率

如果您希望资源组在专用处理器集中执行，请执行以下过程。

如果某个资源组配置为在专用处理器集中执行，则当 Oracle Solaris Cluster 软件在全局群集非投票节点中启动该资源组的资源时，将执行以下任务：

- 创建一个名为 `SCSLM_pool_`zone_name 的池（如果尚未创建）。

- 创建专用处理器集。可通过使用 `RG_SLM_CPU_SHARES` 和 `RG_SLM_PSET_MIN` 属性来决定处理器集的大小。

- 将 `SCSLM_pool_`zone_name 池与创建的处理器集相关联。

- 将非投票节点动态绑定到 `SCSLM_pool_` zone_name 池。

- 根据指定的 CPU 份额数，增加分配给该投票节点的 CPU 份额数（如果尚未这样做）。

- 在该非投票节点中创建一个名为 `SCSLM_`resourcegroup_name 的项目（如果尚未这样做）。此项目特定于该资源组，并分配有指定数目的 CPU 份额 (`project.cpu-shares`)。

- 启动 `SCSLM_` resourcegroup_name 项目中的资源。

1. 将系统的调度程序设置为公平份额调度器 (Fair Share Scheduler, FSS)。

       # dispadmin -d FSS

   下次重新引导时，FSS 将成为默认调度程序。要使此配置立即生效，请使用 `priocntl` 命令。

       # priocntl -s -C FSS

   组合使用 `priocntl` 命令和 `dispadmin` 命令可确保 FSS 立即成为默认调度，并在重新引导后也保持不变。有关设置调度类的更多信息，请参见 `dispadmin`(1M) 和 `priocntl`(1) 手册页。

   注 - 如果 FSS 不是默认调度程序，您分配的 CPU 份额将不会生效。

2. 在每个要使用 CPU 控制的节点上，配置全局群集投票节点的份额数以及默认处理器集中可用 CPU 的最小数目。

   设置这些参数有助于保护在投票节点中运行的进程，使其免于与在非投票节点中运行的进程争用 CPU。如果没有给 `globalzoneshares` 和 `defaultpsetmin` 属性赋值，这些属性将采用各自的默认值。

       # clnode set  [-p globalzoneshares=integer] \
       [-p defaultpsetmin=integer] \
       node

   `-p` `defaultpsetmin=` defaultpsetmininteger

     设置默认处理器集中可用的最小 CPU 数。默认值为 1。

   `-p` `globalzoneshares=` integer

     设置分配给投票节点的份额数。默认值为 1。

   node

     标识要设置其属性的节点。

   设置这些属性即是设置投票节点的属性。

3. 验证是否正确设置了这些属性：

       # clnode show node

   对于您指定的节点，`clnode` 命令可显示属性集以及为这些属性设置的值。如果未使用 `clnode` 设置 CPU 控制属性，这些属性将采用默认值。

4. 配置 CPU 控制工具。

       # clresourcegroup create -p RG_SLM_TYPE=automated \
        [-p RG_SLM_CPU_SHARES=value] \
       -p -y RG_SLM_PSET_TYPE=value \
       [-p RG_SLM_PSET_MIN=value] resource_group_name

   `-p` `RG_SLM_TYPE=automated`

     允许您控制 CPU 使用情况，并自动执行一些步骤以在 Oracle Solaris OS 中配置系统资源管理。

   `-p` `RG_SLM_CPU_SHARES=` value

     指定分配给资源组特定项目的 CPU 份额数（即 `project.cpu-shares`），并确定分配给非投票节点的 CPU 份额数（即 `zone.cpu-shares`），以及处理器集中的最大处理器数。

   `-p` `RG_SLM_PSET_TYPE=` value

     允许创建专用处理器集。要使用专用处理器集，请将此属性设置为 `strong` 或 `weak`。值 `strong` 和 `weak` 是互斥的。也就是说，不能将同一区域中的资源组配置为部分为 `strong`，部分为 `weak`。

   `-p` `RG_SLM_PSET_MIN=` value

     确定处理器集中的最小处理器数。

   resource_group_name

     指定资源组的名称。

   这步操作将创建一个资源组。此外，您还可使用 `clresourcegroup set` 命令修改现有资源组。

   如果区域配置中包含默认池之外的其他池，或区域动态绑定到默认池之外的其他池，则您无法在非投票节点中将 `RG_SLM_TYPE` 设置为 `automated`。有关区域配置和池绑定的信息，请分别参见 `zonecfg`(1M) 和 `poolbind`(1M) 手册页。按如下方式查看区域配置：

       # zonecfg -z zone_name info pool

   注 - `HAStoragePlus` 或 `LogicalHostname` 之类的资源配置为在非投票节点中启动，但当 `GLOBAL_ZONE` 属性设置为 `TRUE` 时，资源在投票节点中启动。即使将 `RG_SLM_TYPE` 属性设置为 `automated`，此资源也不会从 CPU 份额配置和专用处理器集配置中获益，对其的处理与在 `RG_SLM_TYPE` 设置为手动时的资源组中相同。

5. 激活配置更改。

       # clresourcegroup online -eM resource_group_name

   resource_group_name

     指定资源组的名称。

   注 - 请不要删除或修改 `SCSLM_`resource_group_name 项目。您可以手动将更多资源控制添加到项目中，例如，通过配置 `project.max-lwps` 属性。有关更多信息，请参见 `projmod`(1M) 手册页。

   在资源组联机时对 `RG_SLM_CPU_SHARES` 和 `RG_SLM_PSET_MIN` 进行的更改将动态应用。但是，如果 `RG_SLM_PSET_TYPE` 设置为 `strong`，则当没有足够的 CPU 可用于适应更改时，不会应用为 `RG_SLM_PSET_MIN` 请求的更改。此时，屏幕显示一条警告消息。在下一次切换时，如果没有足够的 CPU 可用来确认您为 `RG_SLM_PSET_MIN` 配置的值，则可能会因 CPU 不足而发生错误。

   如果在非投票节点中不再为了获取 CPU 控制而对联机资源组进行配置，则非投票节点的 CPU 份额值将采用 `zone.cpu-shares` 的值。该参数的默认值为 `1`。

版权所有 © 2013, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |