SUSE FAQ 系列 -- 设定 SYSV IPC 参数
时间:2005-07-01 来源:wjqhd
一个共享内存区的最大字节数
一个共享内存区的最小字节数
系统范围内最大共享内存标识数
每个进程附接的最大共享内存数
系统范围内最大信号灯集数
每个信号灯集的最大信号灯数
系统范围内最大信号灯数
一个消息包的最大长度
任何一个消息队列上的最大字节数
系统范围内的最大消息队列数
系统范围内的最大消息数
这些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 让上述设置生效,在后续系统启动的服务中就
不用手工执行这个服务了。