本章介绍如何设置和管理系统上的资源池。
有关资源池的背景信息,请参见第 12 章。
任务 |
说明 |
参考 |
---|---|---|
启用或禁用资源池。 |
激活或禁用系统上的资源池。 | |
启用或禁用动态资源池。 |
激活或禁用系统上的动态资源池功能。 | |
创建静态资源池配置。 |
创建与当前动态配置相匹配的静态配置文件。有关更多信息,请参见资源池框架。 | |
修改资源池配置。 |
修改系统上的池配置(例如通过创建其他池)。 | |
将资源池与调度类关联。 |
将池与调度类关联,以便所有绑定到该池的进程都使用指定的调度程序。 | |
设置配置约束和定义配置目标。 |
为 poold 指定目标以考虑何时执行更正操作。有关配置目标的更多信息,请参见poold 概述。 | |
设置日志级别。 |
指定 poold 生成的日志信息的级别。 | |
通过 poolcfg 命令使用文本文件。 |
poolcfg 命令可以从文本文件提取输入。 | |
在内核中传送资源。 |
在内核中传送资源。例如,将具有特定 ID 的资源传送到目标集。 | |
激活池配置。 |
激活缺省配置文件中的配置。 | |
在提交池配置之前验证此配置。 |
验证池配置,以测试验证时将发生的情况。 | |
删除系统中的池配置。 |
将所有关联的资源(如处理器集)返回到其缺省状态。 | |
将进程绑定到池。 |
手动将系统上运行的进程与资源池关联。 | |
将任务或项目绑定到池。 |
将任务或项目与资源池关联。 | |
将新进程绑定到资源池。 |
要将项目中的新进程自动绑定到指定的池,请向 project 数据库中的每个条目添加一个属性。 | |
使用 project 属性将进程绑定到其他池。 |
修改已启动的新进程的池绑定。 | |
使用 poolstat 实用程序生成报告。 |
在指定的间隔生成多个报告。 | |
报告资源集统计信息。 |
使用 poolstat 实用程序报告 pset 资源集的统计信息。 |
从 Solaris 10 11/06 发行版开始,您可以使用 svcadm(1M) 手册页中所述的 svcadm 命令在系统中启用和禁用资源池和动态资源池服务。
您还可以使用 pooladm(1M) 手册页中所述的 pooladm 命令执行以下任务:
启用池功能以对池进行处理
禁用池功能以便不能对池进行处理
在升级系统时,如果启用了资源池框架,而且 /etc/pooladm.conf 文件存在,则池服务将被启用,该文件中包含的配置将应用到系统中。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
启用资源池服务。
# svcadm enable system/pools:default |
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
禁用资源池服务。
# svcadm disable system/pools:default |
成为超级用户,或者承担包括服务管理权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关如何创建该角色并将其指定给用户的信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”和《系统管理指南:安全性服务》中的“管理 RBAC(任务列表)”。
启用动态资源池服务。
# svcadm enable system/pools/dynamic:default |
本示例表明,如果要运行 DRP,则必须首先启用资源池。
资源池和动态资源池之间存在相关性。DRP 现在是资源池的一项相关服务。DRP 可以独立于资源池单独启用和禁用。
以下显示表明,当前已禁用了资源池和动态资源池:
# svcs *pool* STATE STIME FMRI disabled 10:32:26 svc:/system/pools/dynamic:default disabled 10:32:26 svc:/system/pools:default |
启用动态资源池:
# svcadm enable svc:/system/pools/dynamic:default # svcs -a | grep pool disabled 10:39:00 svc:/system/pools:default offline 10:39:12 svc:/system/pools/dynamic:default |
请注意,DRP 服务仍处于脱机状态。
可使用 svcs 命令的 -x 选项确定 DRP 服务处于脱机状态的原因:
# svcs -x *pool* svc:/system/pools:default (resource pools framework) State: disabled since Wed 25 Jan 2006 10:39:00 AM GMT Reason: Disabled by an administrator. See: http://sun.com/msg/SMF-8000-05 See: libpool(3LIB) See: pooladm(1M) See: poolbind(1M) See: poolcfg(1M) See: poolstat(1M) See: /var/svc/log/system-pools:default.log Impact: 1 dependent service is not running. (Use -v for list.) svc:/system/pools/dynamic:default (dynamic resource pools) State: offline since Wed 25 Jan 2006 10:39:12 AM GMT Reason: Service svc:/system/pools:default is disabled. See: http://sun.com/msg/SMF-8000-GE See: poold(1M) See: /var/svc/log/system-pools-dynamic:default.log Impact: This service is not running. |
启用资源池服务,以便 DRP 服务可以运行:
# svcadm enable svc:/system/pools:default |
在使用 svcs *pool* 命令时,系统将显示如下内容:
# svcs *pool* STATE STIME FMRI online 10:40:27 svc:/system/pools:default online 10:40:27 svc:/system/pools/dynamic:default |
如果这两种服务都联机,并且您禁用了资源池服务:
# svcadm disable svc:/system/pools:default |
在使用 svcs *pool* 命令时,系统将显示如下内容:
# svcs *pool* STATE STIME FMRI disabled 10:41:05 svc:/system/pools:default online 10:40:27 svc:/system/pools/dynamic:default # svcs *pool* STATE STIME FMRI disabled 10:41:05 svc:/system/pools:default online 10:40:27 svc:/system/pools/dynamic:default |
但最终,DRP 服务将转入 offline,原因是资源池服务已被禁用:
# svcs *pool* STATE STIME FMRI disabled 10:41:05 svc:/system/pools:default offline 10:41:12 svc:/system/pools/dynamic:default |
确定 DRP 服务处于脱机状态的原因:
# svcs -x *pool* svc:/system/pools:default (resource pools framework) State: disabled since Wed 25 Jan 2006 10:41:05 AM GMT Reason: Disabled by an administrator. See: http://sun.com/msg/SMF-8000-05 See: libpool(3LIB) See: pooladm(1M) See: poolbind(1M) See: poolcfg(1M) See: poolstat(1M) See: /var/svc/log/system-pools:default.log Impact: 1 dependent service is not running. (Use -v for list.) svc:/system/pools/dynamic:default (dynamic resource pools) State: offline since Wed 25 Jan 2006 10:41:12 AM GMT Reason: Service svc:/system/pools:default is disabled. See: http://sun.com/msg/SMF-8000-GE See: poold(1M) See: /var/svc/log/system-pools-dynamic:default.log Impact: This service is not running. |
必须启动资源池,DRP 才能工作。例如,可以使用带有 -e 选项的 pooladm 命令来启动资源池:
# pooladm -e |
然后,svcs *pool* 命令显示以下内容:
# svcs *pool* STATE STIME FMRI online 10:42:23 svc:/system/pools:default online 10:42:24 svc:/system/pools/dynamic:default |
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
禁用动态资源池服务。
# svcadm disable system/pools/dynamic:default |
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
启用池功能。
# pooladm -e |
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
禁用池功能。
# pooladm -d |
对 /usr/sbin/pooladm 使用 -s 选项可以创建与当前动态配置相匹配的静态配置文件。如果没有指定其他文件名,则使用缺省位置 /etc/pooladm.conf。
使用带有 -c 选项的 pooladm 命令提交配置。然后,使用带有 -s 选项的 pooladm 命令更新静态配置,以便与动态配置的状态相匹配。
创建与动态配置相匹配的新配置时,应优先使用新功能 pooladm -s,再考虑使用以前的功能 poolcfg -c discover。
在系统上启用池。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
更新静态配置文件,以便与当前动态配置相匹配。
# pooladm -s |
查看可读形式的配置文件的内容。
请注意,配置中包含系统创建的缺省元素。
# 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 |
提交 /etc/pooladm.conf 中的配置。
# pooladm -c |
(可选)要将动态配置复制到名为 /tmp/backup 的静态配置文件,请键入以下命令:
# pooladm -s /tmp/backup |
要增强配置,请创建名为 pset_batch 的处理器集以及名为 pool_batch 的池。然后,使用关联连接池和处理器集。
请注意,必须用引号将包含空格的子命令参数括起来。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
创建处理器集 pset_batch。
# poolcfg -c 'create pset pset_batch (uint pset.min = 2; uint pset.max = 10)' |
创建池 pool_batch。
# poolcfg -c 'create pool pool_batch' |
使用关联连接池和处理器集。
# poolcfg -c 'associate pool pool_batch (pset pset_batch)' |
显示已编辑的配置。
# 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 |
提交 /etc/pooladm.conf 中的配置。
# pooladm -c |
(可选)要将动态配置复制到名为 /tmp/backup 的静态配置文件,请键入以下命令:
# pooladm -s /tmp/backup |
您可以将池与调度类关联,以便所有绑定到该池的进程都可以使用此调度程序。为此,请将 pool.scheduler 属性设置为调度程序的名称。以下示例将池 pool_batch 与公平份额调度器 (fair share scheduler, FSS) 关联。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关如何创建该角色并将其指定给用户的信息,请参见《系统管理指南:安全性服务》中的“管理 RBAC(任务列表)”。
修改池 pool_batch 以便与 FSS 关联。
# poolcfg -c 'modify pool pool_batch (string pool.scheduler="FSS")' |
显示已编辑的配置。
# 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 |
提交 /etc/pooladm.conf 中的配置:
# pooladm -c |
(可选)要将动态配置复制到名为 /tmp/backup 的静态配置文件,请键入以下命令:
# pooladm -s /tmp/backup |
约束通过删除一些可能会对配置进行的潜在更改来影响可能配置的范围。此过程显示如何设置 cpu.pinned 属性。
在以下示例中,cpuid 是一个整数。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
修改静态或动态配置中的 cpu.pinned 属性:
您可以为 poold 指定目标,以考虑何时执行更正操作。
在以下过程中,将设置 wt-load 目标,以便 poold 尝试将资源分配与资源利用率相匹配。禁用 locality 目标有助于实现此配置目标。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
修改系统 tester 以优先考虑 wt-load 目标。
# poolcfg -c 'modify system tester (string system.poold.objectives="wt-load")' |
禁用缺省处理器集的 locality 目标。
# poolcfg -c 'modify pset pset_default (string pset.poold.objectives="locality none")' |
禁用 pset_batch 处理器集的 locality 目标。
# poolcfg -c 'modify pset pset_batch (string pset.poold.objectives="locality none")' |
显示已编辑的配置。
# 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 |
提交 /etc/pooladm.conf 中的配置。
# pooladm -c |
(可选)要将动态配置复制到名为 /tmp/backup 的静态配置文件,请键入以下命令:
# pooladm -s /tmp/backup |
要指定 poold 生成的日志信息的级别,请在 poold 配置中设置 system.poold.log-level 属性。poold 配置保存在 libpool 配置中。有关信息,请参见poold 日志信息以及 poolcfg(1M) 和 libpool(3LIB) 手册页。
您还可以在命令行中使用 poold 命令,以指定 poold 生成的日志信息的级别。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
使用带有 -l 选项以及参数(如 INFO)的 poold 命令设置日志级别。
# /usr/lib/pool/poold -l INFO |
有关可用参数的信息,请参见poold 日志信息。缺省日志级别为 NOTICE。
带有 -f 选项的 poolcfg 命令可以从包含 -c 选项的 poolcfg 子命令参数的文本文件提取输入。此方法适用于要执行一组操作的情况。当处理多个命令时,仅在所有命令都成功的情况下才会更新配置。对于庞大或复杂的配置,此技术比调用每个子命令更有用。
请注意,在命令文件中,# 字符用作注释标记,表示其后面的内容为注释。
创建输入文件 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) |
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关如何创建该角色并将其指定给用户的信息,请参见《系统管理指南:安全性服务》中的“管理 RBAC”。
执行命令:
# /usr/sbin/poolcfg -f poolcmds.txt |
使用 poolcfg(带有 -d 选项)的 -c 选项的 transfer 子命令参数可以在内核中传送资源。-d 选项指定此命令直接对内核执行操作,而不从文件提取输入。
以下过程将两个 CPU 从内核中的处理器集 pset1 移动到处理器集 pset2。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
将两个 CPU 从 pset1 移动到 pset2。
可以按任意顺序使用 from 和 to 子句。每个命令只支持一个 to 和 from 子句。
# poolcfg -dc 'transfer 2 from pset pset1 to pset2' |
如果要传送资源类型的特定已知 ID,请提供其他语法。例如,以下命令为 pset_large 处理器集指定 ID 分别为 0 和 2 的两个 CPU:
# poolcfg -dc "transfer to pset pset_large (cpu 0; cpu 2)" |
如果由于没有足够的资源可满足请求或者无法找到指定的 ID 而使传送失败,则系统将显示一条错误消息。
使用 pooladm 命令可以激活特定的池配置或删除当前活动的池配置。有关此命令的更多信息,请参见 pooladm(1M) 手册页。
要激活缺省配置文件 /etc/pooladm.conf 中的配置,请调用带有 -c 选项(提交配置)的 pooladm。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
提交 /etc/pooladm.conf 中的配置。
# pooladm -c |
(可选)将动态配置复制到静态配置文件,例如 /tmp/backup。
# pooladm -s /tmp/backup |
您可以使用 -n 选项和 -c 选项来测试验证时将发生的情况。配置实际上将不会提交。
以下命令尝试验证 /home/admin/newconfig 中包含的配置。所有遇到的错误情况都将显示,但是不会修改配置本身。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
在提交配置之前测试此配置的有效性。
# pooladm -n -c /home/admin/newconfig |
要删除当前的活动配置并使所有的关联资源(如处理器集)都恢复为缺省状态,请使用表示“删除配置”的 -x 选项。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
删除当前活动配置。
# pooladm -x |
-pooladm 的 x 选项可从动态配置中删除所有用户定义的元素。所有资源将恢复到其缺省状态,并且所有池绑定将替换为与缺省池的绑定。
您可以在同一处理器集中安全地混合 TS 和 IA 类中的进程。在一个处理器集中混合其他调度类可能会导致不可预测的结果。如果使用 pooladm -x 导致在一个处理器集中出现混合调度类,请使用 priocntl 命令将运行的进程移至其他调度类。请参见如何将进程从 TS 类手动移至 FSS 类。另请参见 priocntl(1) 手册页。
可以设置 project.pool 属性,以便将资源池与项目关联。
可以使用 poolbind(1M) 手册页中所述的 poolbind 命令将特定进程绑定到已命名的资源池。
可以使用 project 数据库中的 project.pool 属性来标识通过 newtask 命令启动的新登录会话或任务的池绑定。请参见 newtask(1)、projmod(1M) 和 project(4) 手册页。
以下过程使用带有 -p 选项的 poolbind 将进程(在此例中为当前 shell)手动绑定到名为 ohare 的池。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
将进程手动绑定到池:
# poolbind -p ohare $$ |
使用带有 -q 选项的 poolbind 验证进程的池绑定。
$ poolbind -q $$ 155509 ohare |
系统将显示进程 ID 和池绑定。
要将任务或项目绑定到池,请使用带有 -i 选项的 poolbind 命令。以下示例将 airmiles 项目中的所有进程绑定到 laguardia 池。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
将 airmiles 项目中的所有进程绑定到 laguardia 池。
# poolbind -i project -p laguardia airmiles |
您可以设置 project.pool 属性,以将项目的进程绑定到资源池。
成为超级用户,或者承担包括进程管理配置文件的角色。
系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”。
将 project.pool 属性添加到 project 数据库中的每个条目。
# projmod -a -K project.pool=poolname project |
假设配置中具有两个名为 studio 和 backstage 的池。/etc/project 文件具有以下内容:
user.paul:1024::::project.pool=studio user.george:1024::::project.pool=studio user.ringo:1024::::project.pool=backstage passes:1027::paul::project.pool=backstage |
使用此配置,可以在缺省情况下将用户 paul 启动的进程绑定到 studio 池。
用户 paul 可以为其启动的进程修改池绑定。paul 也可以使用 newtask,通过在 passes 项目中启动来将工作绑定到 backstage 池。
在 passes 项目中启动进程。
$ newtask -l -p passes |
使用带有 -q 选项的 poolbind 命令验证进程的池绑定。还可使用双美元符号 ($$) 将父级 shell 的进程号传递给该命令。
$ poolbind -q $$ 6384 pool backstage |
系统将显示进程 ID 和池绑定。
poolstat 命令用于显示与池相关的资源的统计信息。有关更多信息,请参见使用 poolstat 监视池功能和资源利用率和 poolstat(1M) 手册页。
以下各小节通过示例说明如何生成用于特定用途的报告。
键入不带参数的 poolstat 将针对每个池输出一个标题行和一行信息。信息行将显示池 ID、池的名称以及连接到池的处理器集的资源统计信息。
machine% poolstat pset id pool size used load 0 pool_default 4 3.6 6.2 1 pool_sales 4 3.3 8.4 |
以下命令按 5 秒的抽样间隔生成 3 个报告。
machine% poolstat 5 3 pset id pool size used load 46 pool_sales 2 1.2 8.3 0 pool_default 2 0.4 5.2 pset id pool size used load 46 pool_sales 2 1.4 8.4 0 pool_default 2 1.9 2.0 pset id pool size used load 46 pool_sales 2 1.1 8.0 0 pool_default 2 0.3 5.0 |
以下示例使用带有 -r 选项的 poolstat 命令报告处理器集资源集的统计信息。请注意,资源集 pset_default 连接到多个池,因此此处理器集将针对每个池成员关系列出一次。
machine% poolstat -r pset id pool type rid rset min max size used load 0 pool_default pset -1 pset_default 1 65K 2 1.2 8.3 6 pool_sales pset 1 pset_sales 1 65K 2 1.2 8.3 2 pool_other pset -1 pset_default 1 10K 2 0.4 5.2 |