修改/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
文章介绍了如何修改Linux系统的/etc/sysctl.conf文件来调整消息队列的相关参数msgmni、msgmax和msgmnb,这些参数影响着系统的消息队列容量和限制。msgmni定义了消息队列的上限,msgmax限制单个消息的长度,而msgmnb设置消息队列的总容量。对于运行大型数据库应用的系统,可能需要调整这些参数以优化性能。



466

被折叠的 条评论
为什么被折叠?



