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

文档信息

前言

第 1 部分Oracle Solaris 资源管理

1.  资源管理介绍

2.  项目和任务(概述)

3.  管理项目和任务

4.  扩展记帐(概述)

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

6.  资源控制(概述)

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

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

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

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

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

12.  资源池(概述)

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

14.  资源管理配置示例

第 2 部分Oracle Solaris Zones

15.  Oracle Solaris Zones 介绍

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

关于区域中的资源

在区域管理中使用权限配置文件和角色

安装前配置过程

区域组件

区域名称和路径

区域自动引导

只读根区域的 file-mac-profile 属性

admin 资源

dedicated-cpu 资源

capped-cpu 资源

调度类

物理内存控制和 capped-memory 资源

rootzpool 资源

自动添加 zpool 资源

区域网络接口

关于数据链路

共享 IP 非全局区域

专用 IP 非全局区域

非全局区域对可靠数据报套接字的支持

共享 IP 非全局区域和专用 IP 非全局区域之间的安全差异

同时使用共享 IP 和专用 IP 非全局区域

在区域中挂载的文件系统

文件系统挂载和更新

区域中的主机 ID

非全局区域中的 /dev 文件系统

非全局区域中的可删除 lofi 设备

非全局区域中的磁盘格式支持

可配置的特权

资源池关联

设置区域范围的资源控制

包含区域注释

使用 zonecfg 命令

zonecfg 模式

zonecfg 交互模式

zonecfg 命令文件模式

区域配置数据

资源类型和属性

资源类型属性

区域配置示例

Tecla 命令行编辑库

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

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

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

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

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

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

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

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

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.  引导区域、登录和区域迁移

词汇表

索引

区域组件

本节讨论可以配置的必需区域组件和可选的区域组件。只有区域名称和区域路径是必需的。区域配置数据中还提供了附加信息。

区域名称和路径

必须为区域选择名称和路径。区域必须位于 ZFS 数据集中。在安装或附加区域时,将自动创建 ZFS 数据集。如果无法创建 ZFS 数据集,也无法安装或附加区域。请注意,区域路径的父目录也必须是一个数据集。

区域自动引导

autoboot 属性设置决定了是否在引导全局区域时自动引导该区域。区域服务,svc:/system/zones:default 也必须启用。

只读根区域的 file-mac-profile 属性

solaris 区域中,file-mac-profile 用于配置只读根区域。

有关更多信息,请参见第 27 章

admin 资源

admin 设置允许您设置区域管理授权。定义授权的首选方法是通过 zonecfg 命令。

user

指定用户名。

auths

指定用户名授权。

solaris.zone.login

如果使用了 RBAC,则交互式登录需要 solaris.zone.login/ zonename 授权。将在区域中进行口令验证。

solaris.zone.manage

如果使用 RBAC,则对于非交互式登录或者要跳过口令验证,需要 solaris.zone.manage/ zonename 授权。

solaris.zone.clonefrom

如果使用 RBAC,则用于生成其他区域副本的子命令需要 solaris.zone.clonefrom/ source_zone 授权。

dedicated-cpu 资源

dedicated-cpu 资源可指定在非全局区域运行时应将系统处理器的某个子集专用于该非全局区域。在引导区域时,系统将动态创建一个临时池,以便在区域运行时使用。

根据 zonecfg 的指定,池设置将在迁移期间进行传播。

dedicated-cpu 资源可为 ncpus 以及 importance(可选的)设置限制。

ncpus

指定 CPU 数目或指定一个范围(如 2–4 个 CPU)。如果指定一个范围(因为需要动态资源池行为),则还应执行以下操作:

importance

如果使用 CPU 范围来获取动态行为,还要设置 importance 属性。importance 属性是可选的属性,用来定义池的相对重要性。仅当为 ncpus 指定了范围并且使用由 poold 管理的动态资源池时,才需要此属性。如果 poold 未运行,则会忽略 importance。如果 poold 正在运行并且未设置 importance,那么 importance 将缺省设置为 1。有关更多信息,请参见pool.importance 属性约束


注 - capped-cpu 资源与 dedicated-cpu 资源不兼容。cpu-shares rctl 与 dedicated-cpu 资源不兼容。


capped-cpu 资源

capped-cpu 资源对某一项目或区域可占用的 CPU 资源量设立绝对的细粒度限制。在与处理器集结合使用时,CPU 上限将限制某一处理器集内的 CPU 使用。capped-cpu 资源有一个 ncpus 属性,该属性是一个正小数,小数点右侧有两位。该属性与 CPU 的单位相对应。此资源不接受范围值,但接受小数。指定 ncpus 时,值为 1 表示某个 CPU 的 100%。值为 1.25 表示 125%,因为 100% 对应于系统中的一个 CPU。


注 - capped-cpu 资源与 dedicated-cpu 资源不兼容。


调度类

可以使用公平份额调度器 (fair share scheduler, FSS),根据区域的重要性控制可用 CPU 资源在区域之间的分配。这种重要性通过您为每个区域指定的 CPU 资源份额来表示。即使您没有使用 FSS 来管理区域之间的 CPU 资源分配,您也可以将区域的调度类设置为使用 FSS,以便您可为区域中的项目设置份额。

在显式设置 cpu-shares 属性时,公平份额调度器 (fair share scheduler, FSS) 将用作该区域的调度类。但是,在此情况下使用 FSS 的首选方法是通过 dispadmin 命令将 FSS 设置为系统缺省的调度类。这样,所有区域都将从获取系统 CPU 资源的公平份额中受益。如果未为区域设置 cpu-shares,区域将使用系统缺省的调度类。以下操作可为区域设置调度类:

请注意,您可以使用 priocntl(1) 手册页中所述的 priocntl,在不更改缺省调度类和不重新引导的情况下将正在运行的进程移至其他调度类。

物理内存控制和 capped-memory 资源

capped-memory 资源可为 physicalswaplocked 内存设置限制。每个限制均是可选的,但至少要设置一个限制。要使用 capped-memory 资源,必须在全局区域中安装 resource-cap 软件包。


注 - 应用程序通常不会锁定大量内存,但是如果已知道区域的应用程序会锁定内存,则您可能会决定设置锁定内存。如果区域信任是一个需要关注的问题,还可以考虑将锁定内存上限设为系统物理内存的百分之十,或区域物理内存上限的百分之十。


有关更多信息,请参见第 10 章第 11 章如何配置区域。要临时为区域设置资源上限,请参见如何为区域指定临时资源上限

rootzpool 资源

zonecfg 实用程序中的可选 rootzpool 资源用于为区域安装创建专用 ZFS zpool。区域的根 ZFS zpool 可以位于由一个或多个统一资源标识符 (Universal Resource Identifier, URI) 定义的共享存储设备上。必需的 storage 属性标识包含区域的根 zfs 文件系统的存储对象 URI。对于一个给定区域,只能定义一个 rootzpool。引导区域时将自动为区域配置存储。

在执行区域安装或附加操作期间,将自动创建或导入相应的 zpool。卸载或分离区域时,将执行以下操作:

要在区域安装中重用预先创建的 zpool,必须从系统中导出该 zpool。

区域框架支持以下 URI 类型:

suriadm 工具用于根据存储 URI 管理共享目标文件。有关 ID、名称地址机构 (Name Address Authority, NAA) 和获取现有存储对象 URI 的信息,请参见 suriadm(1M)suri(5) 手册页。

系统将根据与 rootzpool 关联的区域为新建或导入的 rootzpool 命名。指定的名称采用 zonename_rpool 形式。

可使用以下命令在 rootzpool 资源范围内管理 storage 属性:

自动添加 zpool 资源

通过在 zonecfg 实用程序中配置可选的 zpool 资源,可以将 zpool 委托给非全局区域。引导区域时将自动为区域配置 zpool

在执行区域安装或附加操作期间,将自动创建或导入相应的 zpool。

卸载或分离区域时,将执行以下操作:

必需的 storage 属性标识与该资源关联的存储对象 URI。

可使用以下设置在 zpool 资源范围内管理 storage 属性:

name 属性是 zpool 资源的必需属性。该属性用在委托给区域的 zpool 的名称中。ZFS 文件系统的 name 组件不能包含正斜杠 (/).

为新建或导入的 zpool 指定的名称采用 zonename_name 形式。该名称是在非全局区域内可见的 zpool 名称。


注 - 存储对象包含预先存在的分区、zpool 或 UFS 文件系统时,区域安装会失败。有关更多信息,请参见如何安装已配置的区域中的步骤 4。


区域网络接口

引导区域时,将在其中自动设置并放置通过 zonecfg 实用程序配置的用于提供网络连接的区域网络接口。

Internet 协议 (Internet Protocol, IP) 层可接受和传送网络包。该层包括 IP 路由、地址解析协议 (Address Resolution Protocol, ARP)、Internet 协议安全体系结构 (Internet Protocol Security Architecture, IPsec) 和 IP 过滤器。

可用于非全局区域的 IP 类型有两种:共享 IP 和专用 IP。专用 IP 是缺省 IP 类型。共享 IP 区域与全局区域共享网络接口。要使用共享 IP 区域,必须通过 ipadm 实用程序完成全局区域中的配置。专用 IP 区域必须有专用的网络接口。如果使用 anet 资源配置专用 IP 区域,将自动创建一个专用 VNIC 并将其分配给该区域。通过使用自动的 anet 资源,不必在全局区域中创建和配置数据链路并将数据链路指定给非全局区域。使用 anet 资源可完成以下任务:

为了实现向后兼容性,可以向非全局区域指定预配置的数据链路。

有关每种类型中 IP 功能的信息,请参见共享 IP 非全局区域中的联网专用 IP 非全局区域中的联网


注 - 链路保护在《Oracle Solaris Administration: Network Interfaces and Network Virtualization》中的第 20  章 "Using Link Protection in Virtualized Environments"中进行了介绍,可用在运行区域的系统上。此功能在全局区域中配置。


关于数据链路

数据链路是 OSI 协议栈的第 2 层接口,在系统中表示为 STREAMS DLPI (v2) 接口。此类接口可以在 TCP/IP 等协议栈下检测到。数据链路也称为物理接口,例如,网络接口卡 (Network Interface Card, NIC)。数据链路是使用 zonecfg (1M) 配置的 physical 属性。physical 属性可以为 VNIC,具体请参见《Oracle Solaris Administration: Network Interfaces and Network Virtualization》中的第 III 部分, "Network Virtualization and Resource Management"

数据链路示例有物理接口(如 e1000g0bge1)、NIC(如 bge3)、集合(如 aggr1aggr2)或有 VLAN 标记的接口(如 e1000g123000 bge234003)(分别作为 e1000g0bge3 上的 VLAN 123 和 VLAN 234)。

有关使用基于 InfiniBand 的 IP (IP over InfiniBand, IPoIB) 的信息,请参见资源类型属性中关于 anet 的说明。

共享 IP 非全局区域

共享 IP 区域使用全局区域中的现有 IP 接口。区域必须有一个或多个专用 IP 地址。共享 IP 区域与全局区域共享 IP 层配置和状态。如果以下两个条件同时成立,则区域应该使用共享 IP 实例:

使用 zonecfg 命令的 net 资源为共享 IP 区域指定一个或多个 IP 地址。数据链路名称也必须在全局区域中配置。

zonecfg net 资源中,必须设置 addressphysical 属性。defrouter 属性为可选的。

要在全局区域中使用共享 IP 类型联网配置,必须使用 ipadm,而不是自动网络配置。要确定 ipadm 是否正在进行联网配置,请运行以下命令。显示的响应必须为 DefaultFixed

# svcprop -p netcfg/active_ncp svc:/network/physical:default
DefaultFixed

指定给共享 IP 区域的 IP 地址与逻辑网络接口相关联。

可以在全局区域中使用 ipadm 命令来在运行的区域中指定或删除逻辑接口。

要添加接口,请使用以下命令:

global# ipadm set-addrprop -p zone=my-zone net0/addr1

要删除接口,请使用以下命令之一:

global# ipadm set-addrprop -p zone=global net0/addr

或者:

global# ipadm reset-addrprop -p zone net0/addr1 

有关更多信息,请参见共享 IP 网络接口

专用 IP 非全局区域

专用 IP 是非全局区域的缺省联网配置。

专用 IP 区域具有其自己的 IP 相关状态以及一个或多个专用数据链路。

可以在专用 IP 区域中使用以下功能:

有两种配置专用 IP 区域的方式:

缺省情况下,专用 IP 区域可以在关联接口上配置和使用任何 IP 地址。(可选的)可以使用 allowed-address 属性指定逗号分隔的 IP 地址列表。专用 IP 区域不能使用 allowed-address 列表中没有的 IP 地址。此外,将在引导区域时自动为专用 IP 区域永久配置 allowed-address 列表中的所有地址。如果不需要此接口配置,则必须将 configure-allowed-address 属性设置为 false。缺省值为 true

注意,通过指定的数据链路,可使用 snoop 命令。

可以将 dladm 命令与 show-linkprop 子命令一起使用,以显示正在运行的专用 IP 区域的数据链路分配。可以将 dladm 命令与 set-linkprop 子命令一起使用,以将其他数据链路指定给正在运行的区域。有关用法示例,请参见在独占 IP 非全局区域中管理数据链路

在已指定自己的数据链路集的正在运行的专用 IP 区域中,可以使用 ipadm 命令来配置 IP,包括添加或删除逻辑接口的能力。通过使用 sysconfig(1M) 手册页中所述的 sysconfig 接口,可以按全局区域的设置方式对区域中的 IP 配置进行设置。

专用 IP 区域的 IP 配置仅可在全局区域中使用 zlogin 命令进行查看。

global# zlogin zone1 ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
nge0/_b           dhcp     ok           10.134.62.47/24
lo0/v6            static   ok           ::1/128
nge0/_a           addrconf ok           fe80::2e0:81ff:fe5d:c630/10

非全局区域对可靠数据报套接字的支持

专用 IP 和共享 IP 非全局区域都支持可靠数据报套接字 (Reliable Datagram Socket, RDS) IPC 协议。RDSv3 驱动程序作为 SMF 服务 rds 启用。缺省情况下,安装后禁用此服务。通过区域管理员授予的相应授权,可以在给定非全局区域中启用该服务。在执行 zlogin 后,可以在要运行 rds 的每个区域中启用 rds。

示例 16-1 如何在非全局区域中启用 rds 服务

  1. 要在专用 IP 或共享 IP 区域中启用 RDSv3 服务,请执行 zlogin 并执行 svcadm enable 命令:

    # svcadm enable rds
  2. 验证 rds 是否已启用:

    # svcs rds
        STATE          STIME    FMRI
        online         22:50:53 svc:/system/rds:default

有关更多信息,请参见 svcadm(1M) 手册页。

共享 IP 非全局区域和专用 IP 非全局区域之间的安全差异

在共享 IP 区域中,此区域中的应用程序(包括超级用户)不能发送带有源 IP 地址的包,只能发送通过 zonecfg 实用程序指定给该区域的包。此类型的区域不能发送和接收任意数据链路(第 2 层)包。

但是,对于专用 IP 区域,zonecfg 会将指定数据链路的一切权限都授予该区域。因此,在专用 IP 区域中,超级用户或具有所需权限配置文件的用户可以如同在全局区域中一样,在这些数据链路上发送欺骗性包。可以通过设置 allowed-address 属性来禁用 IP 地址欺骗。对于 anet 资源,可以通过设置 link-protection 属性来启用其他保护(例如,mac-nospoofdhcp-nospoof)。

同时使用共享 IP 和专用 IP 非全局区域

共享 IP 区域总是与全局区域共享 IP 层,而专用 IP 区域总是有其自己的 IP 层实例。共享 IP 区域和专用 IP 区域都可在同一计算机中使用。

在区域中挂载的文件系统

缺省情况下,每个区域都有一个委托给该区域的 ZFS 数据集。这一缺省委托数据集模拟缺省全局区域的数据集布局。名为 .../rpool/ROOT 的数据集包含引导环境。不应直接处理该数据集。rpool 数据集必须存在,缺省情况下挂载在 ... /rpool 下。.../rpool/export.../rpool/export/home 数据集挂载在 /export/export/home 下。这些非全局区域数据集与对应的全局区域数据集具有相同的用途,并可以按相同的方式进行管理。区域管理员可以在 .../rpool.../rpool/export... /rpool/export/home 数据集中创建附加数据集。

应使用 zfs(1M) 手册页中描述的 zfs 命令创建、删除或重命名以区域的 rpool/ROOT 文件系统开始的分层结构中的文件系统。zfs 命令可用于设置 canmountmountpointsharesmbzonedcom.oracle. *:*com.sun: *org.opensolaris. *.*. 以外的属性。

通常,在区域中挂载的文件系统包括:

例如,这些集合可以包括以下文件系统:

在区域中挂载特定的文件系统时存在安全限制。其他文件系统在区域中挂载时会显示出特殊行为。有关更多信息,请参见文件系统和非全局区域

有关数据集的更多信息,请参见 datasets(5) 手册页。有关 BE 的更多信息,请参见《创建和管理 Oracle Solaris 11.1 引导环境》

文件系统挂载和更新

不支持会隐藏区域系统映像中的任何文件、符号链接或目录的文件系统挂载方式,如 pkg(5) 手册页中所述。例如,如果安装的软件包都没有在 /usr/local 中提供内容,则允许在 /usr/local 下挂载文件系统。但是,如果有任何软件包(包括传统 SVR4 软件包)在以 /usr/local 开头的路径下提供了文件、目录或符号链接,则不支持在 /usr/local 下挂载文件系统。支持在 /mnt 下临时挂载文件系统。

由于文件系统在区域中的挂载顺序,如果 /export 来自区域的 rpool/export 数据集或其他委托数据集,则不能用 fs 资源在 /export/filesys 下挂载文件系统。

区域中的主机 ID

您可以为非全局区域设置 hostid 属性,该属性与全局区域的 hostid 属性不同。例如,如果机器迁移到其他系统上的区域,将执行此操作。区域内的现有应用程序可能取决于原始 hostid。有关更多信息,请参见资源类型和属性

非全局区域中的 /dev 文件系统

zonecfg 命令使用与规则匹配的系统来指定应在特定区域中出现的设备。与其中一个规则匹配的设备包括在区域的 /dev 文件系统中。有关更多信息,请参见如何配置区域

非全局区域中的可删除 lofi 设备

可在非全局区域中配置可移除的回送文件 lofi 设备,其工作方式与 CD-ROM 设备类似。可以更改设备映射到的文件并创建以只读模式使用相同文件的多个 lofi 设备。该类型的 lofi 设备是使用带 -r 选项的 lofiadm 命令创建的。创建时不一定要指定文件名。在可移除 lofi 设备的生命周期内,可以将文件与空设备关联,或取消文件与非空设备的关联。一个文件可以同时与多个可移除 lofi 设备安全关联。可移除 lofi 设备是只读的。不能对已经映射到普通的读写 lofi 设备或可移除 lofi 设备的文件进行重新映射。潜在 lofi 设备的数量受 zone.max-lofi 资源控制的限制,可以在全局区域中使用 zonecfg(1M) 设置该资源控制。

可移除 lofi 设备在创建后是只读的。如果对可移除 lofi 设备执行任何写操作,lofi 驱动程序将返回错误。

lofiadm 命令还可用于列出可移除 lofi 设备。

示例 16-2 创建带关联文件的可移除 lofi 设备

# lofiadm -r /path/to/file 
/dev/lofi/1

示例 16-3 创建一个空的可移除 lofi 设备

# lofiadm -r 
/dev/lofi/2

示例 16-4 将文件插入可移除 lofi 设备

# lofiadm -r /path/to/file /dev/lofi/1
/dev/lofi/1

有关更多信息,请参见 lofiadm(1M)zonecfg(1M)lofi(7D) 手册页。另请参见区域范围的资源控制

非全局区域中的磁盘格式支持

可通过 zonecfg 工具启用磁盘分区和使用 uscsi 命令。有关示例,请参见资源类型属性中的 device。有关 uscsi 命令的更多信息,请参见 uscsi(7I)

可配置的特权

引导区域时,配置中包括安全特权的缺省集合。这些特权被视为安全特权,因为它们可以阻止区域中的特权进程影响系统中其他非全局区域或全局区域中的进程。您可使用 zonecfg 命令执行以下操作:


注 - 目前,有些特权不能从区域的缺省特权集中删除,还有一些特权不能添加到缺省特权集中。


有关更多信息,请参见非全局区域中的特权如何配置区域privileges(5)

资源池关联

如果按第 13 章所述在系统中配置了资源池,则可在配置区域时使用 pool 属性将该区域与其中一个资源池相关联。

如果未配置资源池,还可使用 dedicated-cpu 资源来指定在某个非全局区域运行时将系统处理器的某个子集专用于该非全局区域。系统将动态创建一个临时池,以便在区域运行时使用。根据 zonecfg 的指定,池配置将在迁移期间进行传播。


注 - 使用通过 pool 属性设置的永久池的区域配置与通过 dedicated-cpu 资源配置的临时池不兼容。只能设置这两个属性中的其中一个。


设置区域范围的资源控制

全局管理员或具有相应授权的用户可以为区域设置区域范围的特权资源控制。区域范围的资源控制可限制区域内所有进程实体总的资源使用情况。

使用 zonecfg 命令同时为全局区域和非全局区域指定这些限制。请参见如何配置区域

设置区域范围的资源控制的首选简单方法是使用属性名称或资源(如 capped-cpu),而不使用 rctl 资源(如 cpu-cap)。

zone.cpu-cap 资源控制可以对某个区域可占用的 CPU 资源量设置绝对限制。值 100 表示将一个 CPU 的 100% 用作设置。值 125 表示 125%,因为在使用 CPU 上限时,100% 对应于系统中的一个 CPU。


注 - 设置 capped-cpu 资源时,可以使用小数来表示单位。该值对应于 zone.cpu-cap 资源控制,但设置减小 100 倍。设置为 1 等效于资源控制设置 100


zone.cpu-shares 资源控制可以对区域的公平份额调度器 (fair share scheduler, FSS) CPU 份额数设置限制。CPU 份额首先分配给区域,然后在区域内的项目之间进一步分配,如 project.cpu-shares 项中所述。有关更多信息,请参见在安装了区域的 Oracle Solaris 系统上使用公平份额调度器。此控制的全局属性名称是 cpu-shares

zone.max-locked-memory 资源控制可以限制某个区域可以使用的锁定物理内存量。可以使用 project.max-locked-memory 资源控制来控制如何在区域中的项目间分配锁定内存资源。有关更多信息,请参见表 6-1

zone.max-lofi 资源控制可以限制某个区域可以创建的潜在 lofi 设备的数量。

zone.max-lwps 资源控制通过禁止一个区域中有过多 LWP 影响其他区域,来增强资源隔离功能。对此区域中项目的 LWP 资源的分配可使用 project.max-lwps 资源控制进行控制。有关更多信息,请参见表 6-1。此控制的全局属性名称是 max-lwps

zone.max-processes 资源控制通过防止某个区域使用太多的进程表槽并给其他区域造成影响,来增强资源隔离。可以使用可用的资源控制中介绍的 project.max-processes 资源控制来设置区域内各项目间的进程表槽资源分配。此控制的全局属性名称是 max-processeszone.max-processes 资源控制还包括 zone.max-lwps 资源控制。如果设置了 zone.max-processes,但未设置 zone.max-lwps,则在引导区域时 zone.max-lwps 将被隐式设置为 zone.max-processes 值的 10 倍。注意,由于常规进程和僵进程都使用进程表槽,因此 max-processes 控制可以防止僵进程用尽进程表。由于僵进程没有定义任何 LWP,因此 max-lwps 无法防止这种可能性。

zone.max-msg-idszone.max-sem-idszone.max-shm-idszone.max-shm-memory 资源控制可用于限制区域中的所有进程使用的 System V 资源。对区域中项目的 System V 资源的分配可使用这些资源控制的项目版本来进行控制。这些控制的全局属性名称是 max-msg-idsmax-sem-idsmax-shm-idsmax-shm-memory

zone.max-swap 资源控制可限制区域中的用户进程地址空间映射和 tmpfs 挂载所占用的交换空间。prstat -Z 的输出将显示一个 SWAP 列。报告的交换是区域进程和 tmpfs 挂载所使用的总交换量。此值有助于监视每个区域预留的交换空间,可用于选择适当的 zone.max-swap 设置。

表 16-1 区域范围的资源控制

控制名称
全局属性名称
说明
缺省单位
所用值
zone.cpu-cap
此区域可用的 CPU 资源量的绝对限制
数量(CPU 数目),以百分比表示

注 - 设置 capped-cpu 资源时,可以使用小数来表示单位。


zone.cpu-shares
cpu-shares
此区域的公平份额调度器 (fair share scheduler, FSS) CPU 份额数
数量(份额)
zone.max-locked-memory
区域可用的锁定物理内存的总量

如果将 priv_proc_lock_memory 指定给某个区域,请考虑同时设置此资源控制,以防止该区域锁定所有内存。

大小(字节)
capped-memorylocked 属性
zone.max-lofi
max-lofi
可由区域创建的潜在 lofi 设备的数量限制
数量(lofi 设备的数量)
zone.max-lwps
max-lwps
此区域可同时使用的最大 LWP 数
数量 (LWP)
zone.max-msg-ids
max-msg-ids
此区域允许的最大消息队列 ID 数
数量(消息队列 ID)
zone.max-processes
max-processes
此区域可同时使用的最大进程表槽数
数量(进程表槽数)
zone.max-sem-ids
max-sem-ids
此区域允许的最大信号量 ID 数
数量(信号量 ID)
zone.max-shm-ids
max-shm-ids
此区域允许的最大共享内存 ID 数
数量(共享内存 ID)
zone.max-shm-memory
max-shm-memory
此区域允许的系统 V 共享内存总量
大小(字节)
zone.max-swap
可用于此区域的用户进程地址空间映射和 tmpfs 挂载的交换空间总量
大小(字节)
capped-memoryswap 属性

可以使用 prctl 命令为正运行的进程指定这些限制。如何使用 prctl 命令在全局区域中设置 FSS 份额中还提供了一个示例。通过 prctl 命令指定的限制不是持久的。在重新引导系统后,此限制将失效。

包含区域注释

您可以使用 attr 资源类型为区域添加注释。有关更多信息,请参见如何配置区域