JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分Oracle Solaris 资源管理

1.  资源管理介绍

2.  项目和任务(概述)

3.  管理项目和任务

4.  扩展记帐(概述)

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

6.  资源控制(概述)

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

8.  公平份额调度器(概述)

9.  管理公平份额调度器(任务)

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

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

12.  资源池(概述)

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

管理资源池(任务列表)

启用和禁用池功能

如何使用 svcadm 启用资源池服务

如何使用 svcadm 禁用资源池服务

如何使用 svcadm 启用动态资源池服务

如何使用 svcadm 禁用动态资源池服务

如何使用 pooladm 启用资源池

如何使用 pooladm 禁用资源池

配置池

如何创建静态配置

如何修改配置

如何将池与调度类关联

如何设置配置约束

如何定义配置目标

如何设置 poold 日志级别

如何通过 poolcfg 使用命令文件

传送资源

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

激活和删除池配置

如何激活池配置

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

如何删除池配置

设置池属性并绑定到池

如何将进程绑定到池

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

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

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

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

显示缺省的 poolstat 输出

按特定间隔生成多个报告

报告资源集统计信息

14.  资源管理配置示例

第 2 部分Oracle Solaris Zones

15.  Oracle Solaris Zones 介绍

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

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

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

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

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

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

22.  关于区域迁移和 zonep2vchk 工具

23.  迁移 Oracle Solaris 系统和迁移非全局区域(任务)

24.  关于安装了区域的 Oracle Solaris 11 系统上的自动安装和软件包

25.  Oracle Solaris Zones 管理(概述)

26.  管理 Oracle Solaris Zones(任务)

27.  配置和管理不可编辑的区域

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

第 3 部分Oracle Solaris 10 Zones

29.  Oracle Solaris 10 Zones 介绍

30.  评估 Oracle Solaris 10 系统和创建归档文件

31.  (可选)将 Oracle Solaris 10 native 非全局区域迁移到 Oracle Solaris 10 Zones

32.  配置 solaris10 标记区域

33.  安装 solaris10 标记区域

34.  引导区域、登录和区域迁移

词汇表

索引

配置池

如何创建静态配置

-/usr/sbin/pooladm 使用 s 选项可以创建与当前动态配置相匹配的静态配置文件,从而在每次重新引导时都能保留更改。如果没有指定其他文件名,则使用缺省位置 /etc/pooladm.conf

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


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


开始之前

在系统上启用池。

  1. 成为管理员。
  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. 成为管理员。
  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. 成为管理员。
  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. 成为管理员。
  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. 成为管理员。
  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")'one line
  4. 禁用 pset_batch 处理器集的 locality 目标。
    # poolcfg -c 'modify pset pset_batch (string pset.poold.objectives="locality none")'one line
  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. 成为管理员。
  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. 成为管理员。
  3. 执行命令:
    # /usr/sbin/poolcfg -f poolcmds.txt