修改/etc/sysctl.conf
1、vi /etc/sysctl.conf
2、按I键修改,在最后一行添加kernel.msgmax=xxxx,按esc退出编辑,输入 :wq 保存退出。
3、sysctl -p 更新参数
msgmni
- msgmni 定义了系统范围内的消息队列上限。与信号量一样,消息队列也拥有一个相关
的标识符。在系统初始化阶段里,内核创建一个指向消息队列标识符结构的指针数组。该
数组的项数由 msgmni确定。对于每个消息队列,Linux 内核为标识符分配44B,为消息队
列数据结构分配 96B。为了获得更多的消息队列资源,可以动态增加 msgmni 取值。和信
号量一样,消息队列标识符的最大数目也受限于IPCMNI。msgmni的默认上限为 16B,这
可能不足以保证一些大型数据库应用平滑地运行。如果在系统上要运行数据库应用的话,
推荐默认上限值是 128B。
msgmax
- msgmax 限制进程可以发送的消息长度。该参数由 Msgsnd()函数加以应用。如果待发
送消息的长度超过该值,则返回一个错误。该参数可以在运行时调整
msgmnb
- msgmnb 确定一个消息队列的容量。该参数的取值存储在消息队列标识符结构的某个
域中,用于确定是否存在着对新消息进行排队的空间。msgmnb 值可以动态修改,默认为
16384。修改其取值会影响到所有新的消息队列的容量。用户可以通过 Msgctl()系统调用来 增加现有消息队列的容量
引用自:
https://blog.csdn.net/hbuxiaofei/article/details/49155157