在 Solaris 8 中,可以通过修改 /etc/system 并重新引导计算机以使修改生效,来对 System V 和文件描述符限制加以调节。在 Solaris 10 中,这些限制可以通过资源控制进行动态调节。
对于 solaris8 标记区域,/etc/system 的内容用于在区域引导时设置项目和进程资源控制。如果未调节 /etc/system,则使用 Solaris 8 中的缺省文件描述符和 System V 限制。
区域内的有效限制将采用区域 /etc/system 设置或区域 zonecfg 设置中的较小者。要查看有效限制,请在区域中运行 sysdef(1M) 中所述的 sysdef 命令。
要在 solaris8 标记区域内修改 /etc/system,您必须是区域管理员,并且需要重新引导区域,以使更改生效。由于可在该区域内修改 /etc/system,因此全局管理员可在全局区域中使用 zonecfg 命令来为该区域设置限制。
在全局区域中使用 prctl 命令可查看缺省的资源控制设置。以下示例显示了 init 进程的用于约束 System V 限制的缺省设置。
global# prctl `pgrep -x init -z s8zone` ... process.max-msg-messages privileged 40 - deny - system 4.29G max deny - process.max-msg-qbytes privileged 4.00KB - deny - system 16.0EB max deny - process.max-sem-ops privileged 10 - deny - system 2.15G max deny - process.max-sem-nsems privileged 25 - deny - system 32.8K max deny - process.max-file-descriptor basic 256 - deny 10485 privileged 1.02K - deny - system 2.15G max deny - ... project.max-shm-memory privileged 100MB - deny - system 16.0EB max deny - project.max-shm-ids privileged 100 - deny - system 16.8M max deny - project.max-msg-ids privileged 50 - deny - system 16.8M max deny - project.max-sem-ids privileged 10 - deny - system 16.8M max deny - ... |
对于需要进行这些调节的应用程序,区域管理员可以在 solaris8 标记区域内修改 /etc/system,然后重新引导该区域。此过程与本机 Solaris 8 系统上用于进行调节的过程完全相同。
可以从全局区域中使用 zonecfg 命令来约束区域内的 System V 限制。
要执行以下过程,您必须是全局区域中的全局管理员。
global# zonecfg -z mys8zone set max-shm-memory=100m |
如果在创建初始区域后使用 zonecfg,请重新引导区域,以使更改生效。
global# zoneadm -z mys8zone reboot |