solaris 区域中的资源管理:内存上限

缺省情况下,创建solaris 区域时,它将占用全局区域中的所有CPU 和内存资源。
有多种方法可以限制区域使用的内存。
资源上限守护进程可以限制区域使用的内存。
也可以在不重新启动区域的情况下在线更改内存和交换分配给区域。

内存上限

rcapd 守护进程负责内存上限及其管理。
在区域配置中添加上限内存为特定区域设置上限内存。
要使上限内存生效,我们需要重新启动该区域。
物理、交换和锁定参数都是可选的,但至少应使用一个参数。
添加上限内存后,zone01 将使用全局区域中 50 MB 的物理内存并使用 100 MB 的交换空间。
锁定 (30m) 参数指定从全局区域始终可用于 zone01 的最小物理内存量。
在为区域分配内存上限之前,请确保 rcapd 守护进程正在运行,如果没有启动它:

global # svcadm enable rcap
global # rcapadm -E

进入 zone 配置模式以将内存上限添加到 zone01 :

global # zonecfg -z zone01
zonecfg:zone01> add capped-memory
zonecfg:zone01:capped-memory> set physical=50m
zonecfg:zone01:capped-memory> set swap=100m
zonecfg:zone01:capped-memory> set locked=30m
zonecfg:zone01:capped-memory> end

这需要重新启动才能生效。
重启后检查上限内存的分配:

global # zoneadm -z zone01 reboot
global # zonecfg -z zone01 info
root@zone01:~# swap -l
swapfile             dev    swaplo   blocks     free
/dev/swap             -          8   204800   104600

以块为单位的 204800 结果为 100 MB。
检查分配给区域的物理内存

root@zone01:~# prtconf -vp | grep Mem
prtconf: openprom facility not available
Memory size: 50 Megabytes
on  it road.com

在不重启区域的情况下修改上限内存和交换

启动solaris 10 u4 我们可以修改分配给区域的上限内存和交换,而无需重新启动它。
要将上限内存更改为区域:

global # rcapadm -z myzone -m 12G

要修改分配给区域的交换空间:

global # prctl -n zone.max-swap -v 2g -t privileged -r -e deny -i zone myzone
日期:2020-09-17 00:15:16 来源:oir作者:oir