在 Solaris 10 上,所有 System V 进程间通信 (IPC) 设施都自动配置或者可以通过资源控件进行控制。从 /etc/system 中除去或注释掉以下内核参数:
semsys:seminfo_semmap
semsys:seminfo_semmns
semsys:seminfo_semmnu
semsys:seminfo_semume
shmsys:shminfo_shmmin
shmsys:shminfo_shmseg
以下废弃的 IPC 可调项由其资源控件替换为新的缺省值:
semsys:seminfo_semmsl
semsys:seminfo_semmni
shmsys:shminfo_shmmax
shmsys:shminfo_shmmni
Solaris 10 上与上述四个 IPC 可调项相关的资源控件名称的缺省值为:
process.max-sem-nsems 512
project.max-sem-ids 128
project.max-shm-memory 1/4 of physical memory
project.max-shm-ids 128
project.max-shm-memory 资源控件可以限制一个项目共享内存的总量。此前,shmsys:shminfo_shmmax 参数可以限制单个共享内存段的大小。
在启用专区的系统上,在专区配置中指定专区范围内的资源控件。请参阅 rctladm(1m) 联机帮助页以获取可用资源控件的更多信息。
如果在同一台 Solaris 10 主机上创建和启动多个 Informix® 服务器时遇到问题,并且发生共享内存创建错误,请调整 project.max-shm-memory 内核参数的缺省项目值。
以下示例针对 Solaris 10。
要显示针对项目和系统范围设置的 project.max-shm-memory 的当前值,请输入:
# prctl -n project.max-shm-memory -i project default
要显示特定 Informix Dynamic Server 进程的所有资源控件的值,请输入:
# prctl oninit pid
要在不重新引导系统的情况下将 project.max-shm-memory 的设置更改为项目缺省值 64 GB,请输入:
# prctl -n project.max-shm-memory -r -v 64gb -i project default
作为此示例的替代方法,可以发出 projmod 命令以修改 /etc/project(项目信息文件的本地源)中 project.max-shm-memory 的属性值:
# projmod -a -K 'project.max-shm-memory=(priv,64GB,deny)' default