为动态资源池使用配置区域
按照以下步骤创建处理器集、资源池,并将其绑定到区域。
1.启动/system/pools/dynamic服务:
# svcadm enable /system/pools/dynamic
- 创建一个文件 /var/tmp/pool.cfg(可以是任何文件名),内容如下:
# cat /var/tmp/pool.cfg create pset pset_1 (uint pset.min = 1; uint pset.max = 1) create pool pool_1 associate pool pool_1 (pset pset_1)
3.从上面的配置创建一个池:
# poolcfg -f /var/tmp/pool.cfg
- 更改区域配置以将池绑定到区域(这是为了在服务器和区域重新启动后永久分配池):
# zonecfg -z zone_1 zonecfg:zone_1> set pool=pool_1 zonecfg:zone_1> verify zonecfg:zone_1> commit zonecfg:zone_1> exit
- 将pool pool_1绑定到zone zone_1(这是为了让pool分配立即生效):
# poolbind -p pool_1 -i zoneid zone_1
- 验证(列出)整个池配置:
# pooladm -n ...
- 将池配置写入池配置文件 /etc/pooladm.conf:
# pooladm -s
- 激活池配置:
# pooladm -c
on it road.com
更改 CPU 计数
以下步骤演示了如何将 zone zone01 的 CPU 数量更改为 2,然后更改为 1,然后更改为 3.
- 将分配给 pset_1 (= pool_1 = zone01) 的 CPU 数量从 1 增加到 2:
# poolcfg -dc 'modify pset pset_1 (uint pset.min = 2; uint pset.max = 2)'
- 将此新池配置写入池配置文件 /etc/pooladm.conf:
# pooladm -s
- 显示新的池配置:
# poolcfg -c 'info pool pool_1' /etc/pooladm.conf ... uint pset.min 2 uint pset.max 2 ...
- 激活池配置:
# pooladm -c
- 在区域中,使用 mpstat 2 2 验证只有 2 个 CPU 分配给区域:
# zlogin zone01 mpstat 2 2 CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 0 0 0 207 203 1 6 0 0 0 0 3 0 0 0 100 1 0 0 3 10 0 6 0 0 0 0 1 0 1 0 99 CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 0 0 0 203 203 1 1 0 0 0 0 8 0 0 0 100 1 5 0 0 2 0 1 0 0 0 0 5 0 0 0 100
- 将分配给 pset_1 (= pool_1 = zone01) 的 CPU 数量从 2 减少到 1:
# poolcfg -dc 'modify pset pset_1 (uint pset.min = 1; uint pset.max = 1)'
- 将此新池配置写入池配置文件 /etc/pooladm.conf:
# pooladm -s
- 显示新的池配置:
# poolcfg -c 'info pool pool_1' /etc/pooladm.conf ... uint pset.min 1 uint pset.max 1 ...
- 激活池配置:
# pooladm -c
- 在区域中,使用 mpstat 2 2 验证是否只有 1 个 CPU 分配给区域:
# zlogin zone01 mpstat 2 2 CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 1 0 0 3 10 0 6 0 0 0 0 1 0 1 0 99 1 4 0 0 3 0 3 0 0 0 0 13 0 0 0 100
- 将分配给 pset_1 (= pool_1 = zone01) 的 CPU 数量从 1 增加到 3:
# poolcfg -dc 'modify pset pset_1 (uint pset.min = 3; uint pset.max = 3)'
- 将新的池配置写入池配置文件 /etc/pooladm.conf:
# pooladm -s
- 显示新的池配置:
# poolcfg -c 'info pool pool_1' /etc/pooladm.conf ... uint pset.min 3 uint pset.max 3 ...
- 激活池配置:
# pooladm -c
- 在区域中,使用 mpstat 2 2 验证现在有 3 个 CPU 分配给区域:
# zlogin zone01 mpstat 2 2 CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 0 0 0 207 203 1 6 0 0 0 0 3 0 0 0 100 1 0 0 3 10 0 6 0 0 0 0 1 0 1 0 99 2 0 0 3 10 0 5 0 0 0 0 0 0 0 0 100 CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 0 0 0 202 201 1 0 0 0 0 0 0 0 0 0 100 1 5 0 0 2 0 1 0 0 0 0 7 0 0 0 100 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 100
Solaris 10/solaris 11 中的资源池提供了一种将处理器集和调度类分配给非全局区域的机制。
资源池框架如下图所示。
当我们在区域上具有可变负载并且想要动态更改对这些区域的资源分配时,动态资源池非常有用。
与上限 CPU 分配不同,对区域的动态资源池分配是在线的,并且可以随时在线更改。
注意:资源池是一个旧功能,现在被专用于区域的 CPU 分配取代,这反过来又做同样的事情。
它在下面创建池和处理器集,并将它们与区域相关联。
因此,如果我们稍后使用 Solaris 10 8/07 的更新,最好使用将 CPU 分配给区域的专用 CPU 功能
在这个例子中,我们将首先配置一个用于动态资源池使用的区域,然后演示如何将区域的 CPU 数量从 1 更改为 2,然后再更改为 1,然后更改为 3.
日期:2020-09-17 00:15:27 来源:oir作者:oir