JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分资源管理

1.  Solaris 10 资源管理介绍

2.  项目和任务(概述)

3.  管理项目和任务

4.  扩展记帐(概述)

5.  管理扩展记帐(任务)

6.  资源控制(概述)

7.  管理资源控制(任务)

8.  公平共享调度程序(概述)

9.  管理公平共享调度程序(任务)

10.  使用资源上限设置守护进程控制物理内存(概述)

11.  管理资源上限设置守护进程(任务)

12.  资源池(概述)

13.  创建和管理资源池(任务)

管理动态资源池(任务列表)

启用和禁用池功能

Solaris 10 11/06 及更高版本:如何使用 svcadm 启用资源池服务

Solaris 10 11/06 及更高版本:如何使用 svcadm 禁用资源池服务

Solaris 10 11/06 及更高版本:如何使用 svcadm 启用动态资源池服务

Solaris 10 11/06 及更高版本:如何使用 svcadm 禁用动态资源池服务

如何使用 pooladm 启用资源池

如何使用 pooladm 禁用资源池

配置池

如何创建静态配置

如何修改配置

如何将池与调度类关联

如何设置配置约束

如何定义配置目标

如何设置 poold 日志级别

如何通过 poolcfg 使用命令文件

传送资源

如何在处理器集之间移动 CPU

激活和删除池配置

如何激活池配置

如何在提交配置之前验证配置

如何删除池配置

设置池属性并绑定到池

如何将进程绑定到池

如何将任务或项目绑定到池

如何设置项目的 project.pool 属性

如何使用 project 属性将进程绑定到其他池

使用 poolstat 报告与池相关的资源统计信息

显示缺省的 poolstat 输出

按特定间隔生成多个报告

报告资源集统计信息

14.  资源管理配置示例

15.  Solaris Management Console 中的资源控制功能

第 2 部分区域

16.  Solaris Zones 介绍

17.  非全局区域配置(概述)

18.  规划和配置非全局区域(任务)

19.  关于安装、停止、克隆和卸载非全局区域(概述)

20.  安装、引导、停止、卸载和克隆非全局区域(任务)

21.  非全局区域登录(概述)

22.  登录到非全局区域(任务)

23.  移动和迁移非全局区域(任务)

24.  Oracle Solaris 10 9/10:将物理 Oracle Solaris 系统迁移到区域中(任务)

25.  关于安装了区域的 Oracle Solaris 系统上的软件包和修补程序(概述)

26.  在安装了区域的 Oracle Solaris 系统上添加和删除软件包和修补程序(任务)

27.  Oracle Solaris Zones 管理(概述)

28.  Oracle Solaris Zones 管理(任务)

29.  升级安装了非全局区域的 Oracle Solaris 10 系统

30.  各种 Oracle Solaris Zones 问题的故障排除

第 3 部分lx 标记区域

31.  关于标记区域和 Linux 标记区域

32.  规划 lx 标记区域配置(概述)

33.  配置 lx 标记区域(任务)

34.  关于安装、引导、停止、克隆和卸载 lx 标记区域(概述)

35.  安装、引导、停止、卸载和克隆 lx 标记区域(任务)

36.  登录到 lx 标记区域(任务)

37.  移动和迁移 lx 标记区域(任务)

38.  在 lx 标记区域中管理和运行应用程序(任务)

词汇表

索引

配置池

如何创建静态配置

/usr/sbin/pooladm 使用 -s 选项可以创建与当前动态配置相匹配的静态配置文件。如果没有指定其他文件名,则使用缺省位置 /etc/pooladm.conf

使用带有 -c 选项的 pooladm 命令提交配置。然后,使用带有 -s 选项的 pooladm 命令更新静态配置,以便与动态配置的状态相匹配。


注 - 创建与动态配置相匹配的新配置时,应优先使用新功能 pooladm -s,再考虑使用以前的功能 poolcfg -c discover


开始之前

在系统上启用池。

  1. 成为超级用户,或者承担包括 "Process Management"(进程管理)配置文件的角色。

    系统管理员角色包含 "Process Management"(进程管理)配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的"使用 RBAC 和 Solaris 管理工具(任务列表)"

  2. 更新静态配置文件,以便与当前动态配置相匹配。
    # pooladm -s
  3. 查看可读形式的配置文件的内容。

    请注意,配置中包含系统创建的缺省元素。

    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
  4. 提交 /etc/pooladm.conf 中的配置。
    # pooladm -c
  5. (可选)要将动态配置复制到名为 /tmp/backup 的静态配置文件,请键入以下命令:
    # pooladm -s /tmp/backup

如何修改配置

要增强配置,请创建名为 pset_batch 的处理器集以及名为 pool_batch 的池。然后,使用关联连接池和处理器集。

请注意,必须用引号将包含空格的子命令参数括起来。

  1. 成为超级用户,或者承担包括 "Process Management"(进程管理)配置文件的角色。

    系统管理员角色包含 "Process Management"(进程管理)配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的"使用 RBAC 和 Solaris 管理工具(任务列表)"

  2. 创建处理器集 pset_batch
    # poolcfg -c 'create pset pset_batch (uint pset.min = 2; uint pset.max = 10)'
  3. 创建池 pool_batch
    # poolcfg -c 'create pool pool_batch'
  4. 使用关联连接池和处理器集。
    # poolcfg -c 'associate pool pool_batch (pset pset_batch)'
  5. 显示已编辑的配置。
    # poolcfg -c info
    system tester
            string  system.comment kernel state
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    pset pset_batch
    
            pset pset_batch
                    int pset.sys_id -2
                    string pset.units population
                    boolean pset.default true
                    uint pset.max 10
                    uint pset.min 2
                    string pset.comment
                    boolean pset.escapable false
                    uint pset.load 0
                    uint pset.size 0
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  6. 提交 /etc/pooladm.conf 中的配置。
    # pooladm -c
  7. (可选)要将动态配置复制到名为 /tmp/backup 的静态配置文件,请键入以下命令:
    # pooladm -s /tmp/backup

如何将池与调度类关联

您可以将池与调度类关联,以便所有绑定到该池的进程都可以使用此调度程序。为此,请将 pool.scheduler 属性设置为调度程序的名称。以下示例将池 pool_batch 与公平共享调度程序 (Fair Share Scheduler, FSS) 关联。

  1. 成为超级用户,或者承担包括 "Process Management"(进程管理)配置文件的角色。

    系统管理员角色包含 "Process Management"(进程管理)配置文件。有关如何创建该角色并将其指定给用户的信息,请参见《系统管理指南:安全性服务》中的“管理 RBAC(任务列表)”。

  2. 修改池 pool_batch 以便与 FSS 关联。
    # poolcfg -c 'modify pool pool_batch (string pool.scheduler="FSS")'
  3. 显示已编辑的配置。
    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    string pool.scheduler FSS
                    pset batch
    
            pset pset_batch
                    int pset.sys_id -2
                    string pset.units population
                    boolean pset.default true
                    uint pset.max 10
                    uint pset.min 2
                    string pset.comment
                    boolean pset.escapable false
                    uint pset.load 0
                    uint pset.size 0
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  4. 提交 /etc/pooladm.conf 中的配置:
    # pooladm -c
  5. (可选)要将动态配置复制到名为 /tmp/backup 的静态配置文件,请键入以下命令:
    # pooladm -s /tmp/backup

如何设置配置约束

约束通过删除一些可能会对配置进行的潜在更改来影响可能配置的范围。此过程显示如何设置 cpu.pinned 属性。

在以下示例中,cpuid 是一个整数。

  1. 成为超级用户,或者承担包括 "Process Management"(进程管理)配置文件的角色。

    系统管理员角色包含 "Process Management"(进程管理)配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的"使用 RBAC 和 Solaris 管理工具(任务列表)"

  2. 修改静态或动态配置中的 cpu.pinned 属性:
    • 修改引导时(静态)配置:
      # poolcfg -c 'modify cpu <cpuid> (boolean cpu.pinned = true)'
    • 不修改引导时配置而修改运行(动态)配置:
      # poolcfg -dc 'modify cpu <cpuid> (boolean cpu.pinned = true)'

如何定义配置目标

您可以为 poold 指定目标,以考虑何时执行更正操作。

在以下过程中,将设置 wt-load 目标,以便 poold 尝试将资源分配与资源利用率相匹配。禁用 locality 目标有助于实现此配置目标。

  1. 成为超级用户,或者承担包括 "Process Management"(进程管理)配置文件的角色。

    系统管理员角色包含 "Process Management"(进程管理)配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的"使用 RBAC 和 Solaris 管理工具(任务列表)"

  2. 修改系统 tester 以优先考虑 wt-load 目标。
    # poolcfg -c 'modify system tester (string system.poold.objectives="wt-load")'
  3. 禁用缺省处理器集的 locality 目标。
    # poolcfg -c 'modify pset pset_default (string pset.poold.objectives="locality none")'
  4. 禁用 pset_batch 处理器集的 locality 目标。
    # poolcfg -c 'modify pset pset_batch (string pset.poold.objectives="locality none")'
  5. 显示已编辑的配置。
    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
            string  system.poold.objectives wt-load
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
                    string  pset.poold.objectives locality none
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    string pool.scheduler FSS
                    pset batch
    
            pset pset_batch
                    int pset.sys_id -2
                    string pset.units population
                    boolean pset.default true
                    uint pset.max 10
                    uint pset.min 2
                    string pset.comment
                    boolean pset.escapable false
                    uint pset.load 0
                    uint pset.size 0
                    string  pset.poold.objectives locality none
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  6. 提交 /etc/pooladm.conf 中的配置。
    # pooladm -c
  7. (可选)要将动态配置复制到名为 /tmp/backup 的静态配置文件,请键入以下命令:
    # pooladm -s /tmp/backup

如何设置 poold 日志级别

要指定 poold 生成的日志信息的级别,请在 poold 配置中设置 system.poold.log-level 属性。poold 配置保存在 libpool 配置中。有关更多信息,请参见poold 日志信息以及 poolcfg(1M)libpool(3LIB) 手册页。

您还可以在命令行中使用 poold 命令,以指定 poold 生成的日志信息的级别。

  1. 成为超级用户,或者承担包括 "Process Management"(进程管理)配置文件的角色。

    系统管理员角色包含 "Process Management"(进程管理)配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的"使用 RBAC 和 Solaris 管理工具(任务列表)"

  2. 使用带有 -l 选项以及参数(如 INFO)的 poold 命令设置日志级别。
    # /usr/lib/pool/poold -l INFO

    有关可用参数的信息,请参见poold 日志信息。缺省日志级别为 NOTICE

如何通过 poolcfg 使用命令文件

带有 -f 选项的 poolcfg 命令可以从包含 -c 选项的 poolcfg 子命令参数的文本文件提取输入。此方法适用于要执行一组操作的情况。当处理多个命令时,仅在所有命令都成功的情况下才会更新配置。对于庞大或复杂的配置,此技术比调用每个子命令更有用。

请注意,在命令文件中,# 字符用作注释标记,表示其后面的内容为注释。

  1. 创建输入文件 poolcmds.txt
    $ cat > poolcmds.txt
    create system tester
    create pset pset_batch (uint pset.min = 2; uint pset.max = 10)
    create pool pool_batch
    associate pool pool_batch (pset pset_batch)
  2. 成为超级用户,或者承担包括 "Process Management"(进程管理)配置文件的角色。

    系统管理员角色包含 "Process Management"(进程管理)配置文件。有关如何创建该角色并将其指定给用户的信息,请参见《系统管理指南:安全性服务》中的“管理 RBAC”。

  3. 执行命令:
    # /usr/sbin/poolcfg -f poolcmds.txt