SUSE FAQ 系列 -- 设定 SYSV IPC 参数

发表于:2007-07-04来源:作者:点击数: 标签:
在 SuSE Linux 系统上设置如何设置 SYSV IPC 参数呢? 一个共享内存区的最大字节数 一个共享内存区的最小字节数 系统范围内最大共享内存标识数 每个进程附接的最大共享内存数 系统范围内最大信号灯集数 每个信号灯集的最大信号灯数 系统范围内最大信号灯数 一
在 SuSE Linux 系统上设置如何设置 SYSV IPC 参数呢?

一个共享内存区的最大字节数
一个共享内存区的最小字节数
系统范围内最大共享内存标识数
每个进程附接的最大共享内存数
系统范围内最大信号灯集数
每个信号灯集的最大信号灯数
系统范围内最大信号灯数
一个消息包的最大长度
任何一个消息队列上的最大字节数
系统范围内的最大消息队列数 
系统范围内的最大消息数

这些SYSV的IPC参数有些是动态可以修改的,有些是内核头文件里定义或由其他参数推演出来的,
其中这些参数没有办法动态设置:
一个共享内存区的最小字节数                        内核里定义SHMMIN为1字节
每个进程附接的最大共享内存数                     内核里定义SHMSEG为4096
系统范围内的最大消息数                             内核里定义MSGSEG为(((MSGMNI*MSGMNB)/MSGSSZ <= 0xffff) ? (MSGMNI*MSGMNB)/MSGSSZ : 0xffff)                             



下述动态可设置的参数可以通过修改 /etc/sysctl.conf 文件设置:
#一个共享内存区的最大字节数
#kernel.shmmax=<shmmaxbytes>
kernel.shmmax=134217728

#系统范围内最大共享内存标识数
#kernel.shmmni=<maxnumofid>
kernel.shmmni=4096

#每个信号灯集的最大信号灯数 系统范围内最大信号灯数 每个信号灯支持的最大操作数 系统范围内最大信号灯集数
#kernel.sem=<semmsl> <semmni>*<semmsl> <semopm> <semmni>
kernel.sem=250 32000 32 128

#一个消息包的最大长度
#kernel.msgmax=<msgbytes>
kernel.msgmax=8192

#任何一个消息队列上的最大字节数
#kernel.msgmnb=<msgmnb>
kernel.msgmnb=16384

#系统范围内的最大消息队列数
#kernel.msgmni=<msgmni>
kernel.msgmni=16

在修改完这个配置文件之后,将 boot.sysctl 服务添加到系统启动时执行的组里
insserv boot.sysctl

第一次运行 /etc/init.d/boot.sysctl start 让上述设置生效,在后续系统启动的服务中就
不用手工执行这个服务了。

原文转自:http://www.ltesting.net