在 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