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

搜索范围:

- 本文档
- 整个文档库

## 配置 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 -M 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` 设置为 manual 的资源组中的资源。

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

5. 激活配置更改。

       # clresourcegroup online -M 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` 设置为 manual 的资源组中的资源。

5. 激活配置更改。
   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`。

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