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 让上述设置生效,在后续系统启动的服务中就
  不用手工执行这个服务了。










