手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

psrset(1M)

名称

psrset - 处理器集的创建和管理

用法概要

psrset -a [-F] processor_set_id processor_id...
psrset -b processor_set_id pid [/lwpid]...
psrset -c [-F] [processor_id]...
psrset -d processor_set_id...
psrset -e processor_set_id command [argument(s)]
psrset -f processor_set_id
psrset [-i] [processor_set_id]...
psrset -n processor_set_id
psrset -p [processor_id]...
psrset [-q] [pid [/lwpid]]...
psrset -Q [processor_set_id]...
psrset -r [-F] processor_id...
psrset -u pid [/lwpid]...
psrset -U [processor_set_id]...

描述

psrset 实用程序可控制处理器集的管理。处理器集允许将进程或 LWP 绑定到处理器组,而非单个处理器。分配给处理器集的处理器只能运行已绑定到该处理器集的 LWP。

如果已启用池,不能使用此命令来修改处理器处置。通过资源池工具使用 pooladm(1M)poolcfg(1M) 来修改处理器集配置。

选项

支持以下选项:

–a

将指定的处理器分配给指定的处理器集。通过附加 –F 选项,在更改处理器集之前,所有绑定到指定处理器的 LWP 都将取消绑定。

该选项仅限具有 PRIV_SYS_RES_CONFIG 特权的用户使用。

–b

将指定进程的所有或部分 LWP 绑定到指定处理器集。

绑定到处理器集的 LWP 仅限于在该集中的处理器上运行。进程只能被绑定到非空处理器集,即已分配有处理器的处理器集。

绑定将被继承,因此由绑定 LWP 创建的新 LWP 和进程将会具有相同的绑定。将交互式 shell 绑定到处理器,例如,绑定 shell 执行的所有命令。

该选项仅限具有 PRIV_SYS_RES_CONFIG 特权的用户使用。

–c

创建新的处理器集并显示新处理器集 ID。通过附加 –F 选项,在将绑定到指定处理器的所有 LWP 分配给正在创建的处理器集之前,将会取消绑定这些 LWP。

如果指定了处理器列表,还会尝试将这些处理器分配给处理器集。如果分配成功,在将 LWP 绑定到处理器集之前,这些处理器会一直空闲。该选项仅限具有 PRIV_SYS_RES_CONFIG 特权的用户使用。

在某个给定时间只有有限数量的处理器集可以处于活动状态(已创建且未销毁)。该限制始终大于系统中的处理器数量。如果当最大数量的处理器集已处于活动状态时使用了 –c 选项,命令将失败。

当 LC_MESSAGES 语言环境类别指定 “C” 语言环境时,以下格式用于 –c 选项输出的第一行。在其他语言环境中,字符串 createdprocessorset 可以替换为与该语言环境对应的更合适的字符串。


"created processor set %d\n" processor set ID
–d

删除指定的处理器集,释放与之关联的所有处理器和进程。

该选项仅限具有 PRIV_SYS_RES_CONFIG 特权的用户使用。

–e

在指定处理器集中执行命令(带可选参数)。

命令进程和任意子进程仅由处理器集中的处理器执行。

该选项仅限具有 PRIV_SYS_RES_CONFIG 特权的用户使用。

–f

为指定处理器集内的所有处理器禁用中断。请参见 psradm(1M)

如果集中的某些处理器无法禁用其中断,其他处理器仍禁用其中断,则命令会报告错误,并返回非零退出状态。

该选项仅限具有 PRIV_SYS_RES_CONFIG 特权的用户使用。

–F

通过对绑定到指定处理器的所有线程取消绑定,强制执行指定的处理器集操作。只有 –a–r 选项能与该选项结合使用。建议管理员为 pbind(1M) 使用 –Q 选项,以找出此类操作会影响哪些线程。

–i

显示分配给每个指定处理器集的处理器列表。如果未指定任何参数,会显示所有处理器集以及分配给它们的处理器的列表。如果未为 psrset 命令指定选项,这也是缺省操作。

–n

为指定处理器集内的所有处理器启用中断。请参见 psradm(1M)

该选项仅限具有 PRIV_SYS_RES_CONFIG 特权的用户使用。

–p

显示指定处理器列表的处理器集分配。如果未指定任何参数,会指定系统中所有处理器的处理器集分配。

–q

显示指定进程或所有进程的处理器集绑定。如果一个进程由具有不同绑定的多个 LWP 组成,且未显式指定 LWP,则只显示其中一个绑定 LWP 的绑定。部分 LWP 的绑定可以通过将 “/lwpids” 附加到进程 ID 来显示。可以使用 “-” 和 “,” 分隔符选择多个 LWP。请参见“示例”部分。

–Q

显示绑定到指定处理器集列表的 LWP,或者具有处理器集绑定的所有 LWP。

–r

从其当前的处理器集中删除处理器列表。删除的处理器将返回常规处理器池。

可以使用 –F 选项向处理器集分配或者从中删除使用 pbind(1M) 绑定了 LWP 的处理器。

该选项仅限具有 PRIV_SYS_RES_CONFIG 特权的用户使用。

–u

删除指定进程部分或所有 LWP 的处理器集绑定,从而允许它们在未通过 pbind 绑定到单个处理器时在任何联机处理器上执行。

具有 PRIV_SYS_RES_CONFIG 特权的用户可以从任何活动的处理器集取消绑定任何进程或 LWP。其他用户可以从没有设置 PSET_NOESCAPE 属性的处理器集取消绑定进程和 LWP。此外,用户必须具有控制受影响进程的权限,用户的实际或有效用户 ID 必须与目标进程的实际或已保存用户 ID 匹配。

–U

删除绑定到指定处理器集列表的所有 LWP 的绑定、或者在未指定任何参数时绑定到任意处理器集的所有 LWP 的绑定。

操作数

支持下列操作数:

pid

指定 pid 作为进程 ID。

lwpid

要控制或查询的指定进程的 LWPID 集。选择 LWP ID 的语法如下:

2,3,4-8       LWP IDs 2, 3, and 4 through 8
-4            LWPs whose IDs are 4 or below
4-            LWPs whose IDs are 4 or above
processor_id

processor_id 指定为单个处理器编号(例如,3)、由空格分隔的多个处理器编号(例如,1 2 3)或者处理器编号的范围(例如,1-4)。也可以组合使用范围和单个或多个 processor_id(例如,1‐3 5 7‐8 9)。

processor_set_id

processor_set_id 指定为处理器集 ID。

退出状态

将返回以下退出值:

0

成功完成。

non-0

出现错误。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)

另请参见

pbind(1M)pooladm(1M)poolcfg(1M)psradm(1M)psrinfo(1M)processor_bind(2)processor_info(2)pset_bind(2)pset_create(2)pset_info(2)sysconf(3C)libpool(3LIB)attributes(5)privileges(5)

诊断

以下输出表示指定进程不存在或者已退出:


psrset: cannot query pid 31: No such process

以下输出表示用户没有权限绑定该进程:


psrset: cannot bind pid 31: Not owner

以下输出表示用户无权分配该处理器:


psrset: cannot assign processor 4: Not owner

以下输出表示指定处理器未联机或指定处理器不存在:


psrset: cannot assign processor 8: Invalid argument

以下输出表示指定进程中的一个 LWP 绑定到一个处理器,不能绑定到不包含该处理器的处理器集:


psrset: cannot bind pid 67: Device busy

以下输出表示指定处理器不能添加到处理器集:这可能是由于将 LWP 绑定到该处理器,或者因为该处理器无法与该集中的其他处理器结合在同一处理器集中,或者因为该处理器是当前处理器集中的最后一个处理器:


psrset: cannot assign processor 7: Device busy

以下输出表示指定处理器集不存在:


psrset: cannot execute in processor set 8: Invalid argument

以下输出表示系统中所允许的最大数量的处理器集已处于活动状态:


psrset: cannot create processor set: Not enough space

以下输出表示池工具处于活动状态。


psrset: cannot assign processor 7: Operation not supported
psrset: cannot bind pid 31: Operation not supported
psrset: cannot bind pid 31: Operation not supported 
psrset: could not create processor set: Operation not supported
psrset: could not remove processor set 1: Operation not supported
psrset: cannot exec in processor set 1: Operation not supported
psrset: cannot remove processor 7: Operation not supported
psrset: cannot unbind pid 31: Operation not supported