系统管理指南:Solaris 8 容器

调节 /etc/system 和使用资源控制

在 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 限制的缺省设置。


示例 7–1 查看 solaris8 区域内 init 进程的缺省设置


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                          -

...

修改 /etc/system

对于需要进行这些调节的应用程序,区域管理员可以在 solaris8 标记区域内修改 /etc/system,然后重新引导该区域。此过程与本机 Solaris 8 系统上用于进行调节的过程完全相同。

使用 zonecfg 设置资源控制

可以从全局区域中使用 zonecfg 命令来约束区域内的 System V 限制。


示例 7–2 从全局区域中设置资源控制

要执行以下过程,您必须是全局区域中的全局管理员。


global# zonecfg -z mys8zone set max-shm-memory=100m

如果在创建初始区域后使用 zonecfg,请重新引导区域,以使更改生效。


global# zoneadm -z mys8zone reboot