msgget函数 No space left on device的原因

超出系统中同时运行的最大 message queue 个数限制 : 在 root 下用 sysctl kernel.msgmni 检查该参数, sysctl -w kernel.msgmni=XXX 重新设定即可。

检查/proc/sys/kernel/msgmni值,改为1000.RHEL5.4下默认为16, 改的大一些应该可以解决这个问题

 

 

MSGMNI--- 这个参数决定了系统中同时运行的最大的message queue的个数。

 

MSGMNI:/proc/sys/kernel/msgmni文件中定义了该值;

  作用:该值定义了消息队列的最大长度;要使db2(7.1版)正常运行,其最小值为128;

  对于高负荷的DB2服务器,可将该值调整为 >= 1024;

  调谐:对于2.4.6版本的内核,其缺省值为16;可用以下两种方法改变该值

  (1)如果只是临时变动,在命令行输入

      bash# sysctl -w kernel.msgmni=128

  (2) 如果要在系统启动时改变该值,可在/etc/sysctl.conf文件中加入以下几句:

  # Sets maximum number of message queues to 128

  # Set this to 1024 or higher on production systems

  kernel.msgmni = 128

  (用ipcs -l 命令来查看当前ipc 参数的各种设置)

 P.S.

另外几个参数,

kernel.msgmni
kernel.msgmax
kernel.msgmnb

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值