| Current File : //usr/man/zh_CN.UTF-8/man1m/poolcfg.1m |
'\" te
.\" Copyright (c) 2007, 2014, Oracle and/or its affiliates.All rights reserved.
.TH poolcfg 1M "2014 年 3 月 25 日" "SunOS 5.11" "系统管理命令"
.SH 名称
poolcfg \- 创建和修改资源池配置文件
.SH 用法概要
.LP
.nf
\fB/usr/sbin/poolcfg\fR \fB-c\fR \fIcommand\fR [\fB-d\fR | [\fIfilename\fR]]
.fi
.LP
.nf
\fB/usr/sbin/poolcfg\fR \fB-f\fR \fIcommand-file\fR [\fB-d\fR | [\fIfilename\fR]]
.fi
.LP
.nf
\fB/usr/sbin/poolcfg\fR \fB-h\fR
.fi
.SH 描述
.sp
.LP
\fBpoolcfg\fR 实用程序提供有关池、集合和系统范围池属性的配置操作。这些操作基于现有的配置文件执行。如果未指定文件参数,则将使用缺省配置文件 \fB/etc/pooladm.conf\fR。
.sp
.LP
必须先启用 svc:/system/pools:default 类型的服务,才能创建或提交池配置文件。可以通过 \fBsvcadm\fR(1M) 或通过 \fBpooladm\fR(1M) 实用程序的 \fB-e\fR 选项来启用该服务。
.sp
.LP
缺省情况下 \fB/etc/pooladm.conf\fR 不存在。有关如何创建它的说明,请参见下面的示例 1。
.sp
.LP
如果启用了 \fBsvc:/system/pools:default\fR 服务,则会在系统引导期间应用此配置文件。还可以使用 \fBpooladm\fR(1M) 实用程序的 \fB-c\fR 选项应用该配置文件。这称为提交池配置。提交配置时,将在内核中创建池和 pset,然后进程可以绑定到它们。此内核状态称为池动态配置。
.sp
.LP
如果使用 \fBpoolcfg\fR 的 \fB-d\fR 选项,则操作将直接基于运行时内核状态而不是基于配置文件执行。这些变化在重新引导后将不会持续存在,将受到未来应用的池配置文件的破坏。要捕获通过 \fBpoolcfg -d\fR 对配置文件进行的运行时更改,请使用 \fBpooladm\fR(1M) 实用程序的 \fB-s\fR 选项。
.sp
.LP
池配置文件是结构化文件,必须使用 poolcfg(1m) 或 \fBlibpool\fR(3LIB) 进行构建和编辑。
.sp
.LP
如果动态配置已经由其他进程(例如其他 \fBpoolcfg -d\fR 或使用 libpool.so.1 的进程)打开供进行写入,则使用任何修改操作调用 \fBpoolcfg -d\fR 都将会挂起。挂起将会持续,直到写入进程关闭该文件。
.SH 选项
.sp
.LP
支持以下选项:
.sp
.ne 2
.mk
.na
\fB\fB-c\fR \fIcommand\fR\fR
.ad
.RS 19n
.rt
指定 \fBpoolcfg\fR 命令。支持多个 \fB-c\fR 选项,并将按顺序处理这些选项。请参见下面的“用法”部分。
.RE
.sp
.ne 2
.mk
.na
\fB\fB-d\fR\fR
.ad
.RS 19n
.rt
直接对内核状态进行操作。内核状态也称为池动态配置。
.sp
不允许使用文件名参数。将基于内核状态执行命令(如通过 \fBpooladm\fR(1M) 命令所见),并将立即提交任何修改。
.RE
.sp
.ne 2
.mk
.na
\fB\fB-f\fR \fIcommand-file\fR\fR
.ad
.RS 19n
.rt
从 \fIcommand-file\fR 中获取命令。\fIcommand-file\fR 由 \fBpoolcfg\fR 命令组成,每行一个命令。
.RE
.sp
.ne 2
.mk
.na
\fB\fB-h\fR\fR
.ad
.RS 19n
.rt
显示有关编辑命令语法的扩展信息。
.RE
.SH 用法
.sp
.LP
支持以下 \fBpoolcfg\fR 命令:
.sp
.ne 2
.mk
.na
\fBinfo [<\fIentity-type\fR> <\fIentity-name\fR> ]\fR
.ad
.sp .6
.RS 4n
以用户可读的形式将配置(或指定部分)显示至标准输出。如果没有指定实体,将显示系统信息。因此,\fBpoolcfg\fR \fB-c\fR \fB\&'info'\fR 是等同于 \fBpoolcfg\fR \fB- c\fR \fB\&'info system default'\fR 的调用。
.RE
.sp
.ne 2
.mk
.na
\fBcreate <\fIentity-type\fR> <\fIentity-name\fR> [(\fIproperty-list\fR)]\fR
.ad
.sp .6
.RS 4n
创建具有指定类型和名称的实体。可以创建 \fBpool\fR 和 \fBpset\fR 类型的实体。创建的 pset 将关联到 \fBpool_default\fR。创建的池将关联到 \fBpset_default\fR。
.sp
可以选择性地提供 \fBproperty-list\fR 以为一个或多个属性提供初始值。
.RE
.sp
.ne 2
.mk
.na
\fBdestroy <\fIentity-type\fR> <\fIentity-name\fR>\fR
.ad
.sp .6
.RS 4n
删除指定的实体。可以销毁 \fBpool\fR 和 \fBpset\fR 类型的实体。如果销毁 pset,则与该 pset 关联的任何池将与池 "\fBpool_default\fR" 关联。
.RE
.sp
.ne 2
.mk
.na
\fBmodify <\fIentity-type\fR> <\fIentity-name\fR> [(\fIproperty-list\fR)]\fR
.ad
.sp .6
.RS 4n
更改指定实体上列出的属性。修改 \fBpset.min\fR 和 \fBpset.max\fR 属性将会删除上一 \fBassign\fR 命令设置的任何配置。
.RE
.sp
.ne 2
.mk
.na
\fBassociate pool <\fIentity-name\fR> ( pset <\fIentity-name\fR> )\fR
.ad
.sp .6
.RS 4n
将池关联到 pset。池和 pset 都必须存在。将删除以前的 pset 关联,因为池只可以关联到单个 pset。
.RE
.sp
.ne 2
.mk
.na
\fBassign to pset <\fIentity-name\fR> ( <\fIcpu-resource-list\fR> )\fR
.ad
.sp .6
.RS 4n
将一组特定的 cpu、核心或套接字分配给 pset。必须为 pset 分配所有相同类型的 cpu 资源。
.sp
在池配置文件中,如果 cpu 资源已经分配给其他 pset,则分配命令将失败。
.sp
对于给定的 pset,\fBassign\fR 命令将替换以前的任何修改命令设置的配置。如果以前的分配命令为同一类型,则会保留这些命令。例如,将核心分配给已经分配了核心的 pset 将会添加到已经分配的核心,但不会替换它们。
.RE
.sp
.ne 2
.mk
.na
\fBunassign from pset <\fIentity-name\fR> ( [ <\fIcpu-resource-list> | all\fR ] )\fR
.ad
.sp .6
.RS 4n
从 pset 中删除 cpu、核心或套接字分配。特殊标记 "all" 可用于取消分配所有资源。如果未分配所有 cpu 资源,且 pset 绑定了一个或多个进程,则配置将无法提交。
.sp
\fBunassign\fR 命令只能继成功执行 \fBassign\fR 命令之后成功执行。
.RE
.sp
.ne 2
.mk
.na
\fBtransfer to pset <\fItgt-pset-name\fR> ( <\fIcpu-resource-list\fR> )\fR
.ad
.sp .6
.RS 4n
转移一个或多个特定 cpu。仅支持 cpu 资源类型。
.RE
.sp
.ne 2
.mk
.na
\fBtransfer <\fIquantity\fR> from pset <\fIsrc-pset-name\fR> to <\fItgt-pset-name\fR>\fR
.ad
.sp .6
.RS 4n
将一些 cpu 从 pset src-pset-name 转移到 pset tgt-pset-name。
.RE
.sp
.ne 2
.mk
.na
\fBtransfer <\fIquantity\fR> to pset <\fItgt-pset-name\fR> from <\fIsrc-pset-name\fR>\fR
.ad
.sp .6
.RS 4n
将一些 cpu 从 \fBpset tgt-pset-name\fR 转移到 \fBpset src-pset-name\fR。
.sp
如果使用 \fBassign\fR 命令配置源或目标 pset,则 \fBtransfer\fR 命令会失败。此规则不适用于 \fBpset_default\fR,因为 \fBpset_default\fR 所具有的 cpu 资源可能多于为其指定的 cpu 资源。
.sp
如果会导致超出为源或目标 pset 配置的 cpu 数量下限或上限,则 \fBtransfer\fR 命令将失败。此规则不适用于 \fBpset_default\fR 的最大大小,因为它所具有的 cpu 资源可能多于为其指定的 cpu 资源或通过 pset.min 和 pset.max 属性分配的 cpu 资源。
.RE
.sp
.ne 2
.mk
.na
\fBdiscover\fR
.ad
.sp .6
.RS 4n
创建一个与当前内核池配置匹配的新池配置文件,作为 \fBpooladm\fR(1M) 实用程序的输出。
.sp
当 \fBpoolcfg\fR 直接对内核进行操作时,此命令没有效果。请参见 \fB-d\fR 选项。
.sp
应避免使用此命令。创建配置的首选方法是配合使用 \fBpooladm\fR(1M) 和 \fB-s\fR 选项来导出动态配置。
.RE
.sp
.ne 2
.mk
.na
\fBrename <\fIentity-type\fR> <\fIentity-name\fR> to <\fIentity-name\fR>\fR
.ad
.sp .6
.RS 4n
将系统上实体的名称更改为新名称。
.RE
.sp
.LP
\fBpoolcfg\fR 命令使用以下标记:
.sp
.ne 2
.mk
.na
\fB\fIentity-type\fR\fR
.ad
.RS 21n
.rt
可以为以下任一项:
.sp
.ne 2
.mk
.na
\fBsystem\fR
.ad
.RS 17n
.rt
计算机级别实体。只有一个名为 "default" 的系统实体。
.RE
.sp
.ne 2
.mk
.na
\fBpool(池)\fR
.ad
.RS 17n
.rt
与 pset 关联的命名对象。多个池可以与同一处理器集关联,但 pset 只能与单个池关联。
.RE
.sp
.ne 2
.mk
.na
\fBpset\fR
.ad
.RS 17n
.rt
一个代表处理器资源集合的对象。
.RE
.sp
.ne 2
.mk
.na
\fBcpu\fR
.ad
.RS 17n
.rt
一个代表单个虚拟处理器的对象,也称为硬件线程。
.RE
.RE
.sp
.ne 2
.mk
.na
\fBentity-name\fR
.ad
.RS 21n
.rt
实体名称随实体类型而异。
.sp
对于 "system" 类型,只存在一个实体,名称为 "default"。system 实体存储系统范围的池属性。
.sp
对于 "pool" 类型,始终有一个 "pool_default" 以及零个或多个用户定义的池。
.sp
对于 "pset" 类型,始终有一个 "pset_default" 以及零个或多个用户定义的 pset。
.sp
对于 "cpu" 类型,系统上的每个 cpu 均有一个 cpu 实体,每个 cpu 实体有一个数字名称,等同于其 cpuid。
.RE
.sp
.ne 2
.mk
.na
\fBprop-type\fR
.ad
.RS 21n
.rt
可以为以下任一项:
.sp
.ne 2
.mk
.na
\fBboolean\fR
.ad
.RS 11n
.rt
值为 true 或 false 之一。
.RE
.sp
.ne 2
.mk
.na
\fBint\fR
.ad
.RS 11n
.rt
64 位带符号的整数值。
.RE
.sp
.ne 2
.mk
.na
\fBuint\fR
.ad
.RS 11n
.rt
64 位不带符号的整数值。
.RE
.sp
.ne 2
.mk
.na
\fBstring\fR
.ad
.RS 11n
.rt
字符串由引号 (\fB"\fR) 分隔,并且支持以 \fBformats\fR(5) 定义的字符转义序列。
.RE
.sp
.ne 2
.mk
.na
\fBfloat\fR
.ad
.RS 11n
.rt
不支持科学记数法。
.RE
.RE
.sp
.ne 2
.mk
.na
\fBprop-name\fR
.ad
.RS 21n
.rt
所处理实体上属性的名称。有关资源池框架理解的属性的列表,请参见 \fBlibpool\fR(3LIB) 手册页。也可以设置和删除用户定义的属性。
.RE
.sp
.ne 2
.mk
.na
\fBvalue\fR
.ad
.RS 21n
.rt
前面的 prop-type 定义的有效值。
.RE
.sp
.ne 2
.mk
.na
\fBproperty-list\fR
.ad
.RS 21n
.rt
属性列表是分配的一个或多个属性值的列表。
.sp
.in +2
.nf
<prop-type> <prop-name> = <value>
[ ; <prop-type> <prop-name> = <value> ]*
.fi
.in -2
也可以使用 property-list 中的以下语法指定属性删除。
.sp
.in +2
.nf
~ <prop-type> <prop-name>
.fi
.in -2
.RE
.sp
.ne 2
.mk
.na
\fBcpu-res-type\fR
.ad
.RS 21n
.rt
一个代表 cpu 资源的对象。可以为以下任一项:
.sp
.ne 2
.mk
.na
\fBcpu\fR
.ad
.RS 10n
.rt
一个虚拟 cpu,也称为硬件线程。
.RE
.sp
.ne 2
.mk
.na
\fBcore\fR
.ad
.RS 10n
.rt
一组共享计算资源的虚拟 cpu。
.RE
.sp
.ne 2
.mk
.na
\fBsocket\fR
.ad
.RS 10n
.rt
一组包含在物理处理器内的核心。
.RE
.RE
.sp
.ne 2
.mk
.na
\fBcpu-res-id\fR
.ad
.RS 21n
.rt
cpu、核心或套接字的数字 id,如 \fBpsrinfo -c\fR 所列。
.RE
.sp
.ne 2
.mk
.na
\fBcpu-resource-list\fR
.ad
.RS 21n
.rt
一个或多个 cpu 资源的列表。列表中的所有资源必须具有相同的 cpu 类型。
.sp
.in +2
.nf
cpu-res-type cpu-res-id [ ; cpu-res-type cpu-res-id ]
.fi
.in -2
.RE
.sp
.ne 2
.mk
.na
\fBrange\fR
.ad
.RS 21n
.rt
由 \fB-\fR 分隔的最小和最大值。例如,范围二到四表示为 "2-4"。
.RE
.sp
.ne 2
.mk
.na
\fBquantity\fR
.ad
.RS 21n
.rt
单个正整数值。
.RE
.SH 示例
.LP
\fB示例 1 \fR启用池并创建新配置文件
.sp
.LP
以下命令将启用池服务并创建新的池配置文件。所创建的文件为 \fB/etc/pooladm.conf\fR。它将包含 pool_default 和 pset_default。
.sp
.in +2
.nf
# \fBpooladm -e\fR
# \fBpooladm -s\fR
.fi
.in -2
.sp
.LP
\fB示例 2 \fR创建池和 pset
.sp
.LP
以下 \fBpoolcfg\fR 脚本将创建一个名为 \fBAccounting\fR 的池和一个处理器集 \fBsmall-1\fR。首先创建处理器集,然后创建池,再将其与处理器集关联。最后,将提交配置以在运行的系统上创建池和 pset。
.sp
.in +2
.nf
# \fBcat command-file.txt\fR
create pset Small-1 (uint pset.min = 2; uint pset.max = 2)
create pool associate pool Accounting ( pset Small-1 )
# \fBpoolcfg -f command-file.txt\fR
# \fBpooladm -c\fR
.fi
.in -2
.sp
.LP
\fB示例 3 \fR报告 \fBpool_0\fR
.sp
.LP
以下命令以用户可读形式在标准输出中提供有关 \fBpool_0\fR 的报告:
.sp
.in +2
.nf
# \fBpoolcfg -c 'info pool pool_0'\fR
.fi
.in -2
.sp
.LP
\fB示例 4 \fR销毁 pool_0 及其关联
.sp
.LP
以下命令销毁 pool_0。不会销毁与 pool_0 关联的 pset。
.sp
.in +2
.nf
# \fBpoolcfg -c 'destroy pool pool_0'\fR
.fi
.in -2
.sp
.LP
\fB示例 5 \fR显示当前配置
.sp
.LP
以下命令显示将在系统引导时应用的当前配置或下一个 \fBpooladm -c\fR 命令。
.sp
.in +2
.nf
$ poolcfg -c 'info'
system default
string system.comment
int system.version 1
boolean system.bind-default true
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
string pset.policy minmax
string pset.restype cpu
strintg pset.reslist
uint pset.load 0
uint pset.size 2
string pset.comment
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
.fi
.in -2
.sp
.LP
\fB示例 6 \fR将 ID 为 2 的 cpu 移动到内核中的处理器集 pset1
.sp
.LP
以下命令将 ID 为 \fB2\fR 的 \fBcpu\fR 移动到内核中的处理器集 \fBpset1\fR:
.sp
.in +2
.nf
# \fBpoolcfg -dc 'transfer to pset pset1 ( cpu 2 )'\fR
.fi
.in -2
.sp
.LP
\fB示例 7 \fR将 2 个 cpu 从内核中的处理器集 pset1 移动到处理器集 pset2 中
.sp
.LP
以下命令将 2 个 \fBcpu\fR 从内核中的处理器集 \fBpset1\fR 移动到处理器集 \fBpset2\fR 中:
.sp
.in +2
.nf
# \fBpoolcfg -dc 'transfer 2 from pset pset1 to pset2'\fR
.fi
.in -2
.sp
.LP
\fB示例 8 \fR将池配置为具有特定的核心列表
.sp
.LP
以下命令将池配置为具有特定的核心列表。
.sp
.in +2
.nf
# \fBpoolcfg -c 'create pset pset1'\fR
# \fBpoolcfg -c 'assign to pset pset1 (core 0-3)'\fR
.fi
.in -2
.sp
.LP
\fB示例 9 \fR删除池属性
.sp
.LP
以下命令删除用户以前对池设置的属性。
.sp
.in +2
.nf
# \fBpoolcfg -c 'modify pool pset1 ( ~ string userprop1 )'\fR
.fi
.in -2
.sp
.SH 属性
.sp
.LP
有关下列属性的说明,请参见 \fBattributes\fR(5):
.sp
.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i)
lw(2.75i) |lw(2.75i)
.
属性类型属性值
_
可用性system/resource-mgmt/resource-pools
_
接口稳定性请参见下文。
.TE
.sp
.LP
调用为 Committed(已确定)。输出是 "Uncommitted"(未确定)。
.SH 另请参见
.sp
.LP
\fBpooladm\fR(1M)、\fBpoolbind\fR(1M)、\fBpoold\fR(1M)、\fBlibpool\fR(3LIB)、\fBattributes\fR(5)、\fBformats\fR(5)
.sp
.LP
\fI《Administering Resource Management in Oracle Solaris 11.3》\fR
.sp
.LP
\fI《Creating and Using Oracle Solaris Zones》\fR