在Linux 系统中通过消息队列进行进程间的通讯时,只要定义的BufSize小于1024,队列就能正常读写,当Size定义大于1024时,队列就无法成功。
处理步骤:
SystemV的消息队列
/etc/sysctl.conf
修改
kernel.msgmni=1000
kernel.msgmax=81920
kernel.msgmnb=163840
msgmni为MSGMNI,即系统的消息队列数目。平台每个DTA需要使用3个消息队列,即最大DTA数为1000/3。该参数应该比平台最大队列个数参数配置大。
msgmax为MSGMAX,即一个消息的字节大小。目前扩展值为8k,平台一个交易消息为4个字节,不会超过限制。
msgmnb为MSGMNB,即队列存放消息的总字节数。
POSIX消息队列
修改
fs.mqueue.msg_max=1000 <-消息个数
fs. mqueue. msgsize_max=8192 <-消息长度
另外 *** 作系统对文件大小的限制ulimit -q你可以看到POSIX消息队列的最大容量
cat /proc/sys/kernel/msgmax
cat /proc/sys/kernel/msgmni
cat /proc/sys/kernel/msgmnb
从光盘引导,挂载系统后,可以进行一下几个 *** 作:chroot /mnt/sysimage1.确认linux磁盘分区空间是否用完。 df -h2.确认/etc/fstab文件格式有没有问题。 cat /etc/fstab3.确认系统Inode是否被用完。 df -i4.如果是Inode被用完。 sysctl kernel.msgmni #查看消息队列的最大长度,默认是16. vi /etc/sysctl.conf kernel.msgmni=1281、首先打开linux进入主页面,在主页面找到设置按钮,点击进入。2、其次在设置里面找到队列设置,点击进入队列设置。
3、最后在队列设置页面进行查看nvme队列数量即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)