美文网首页
Linux 消息队列长度处理

Linux 消息队列长度处理

作者: key天空 | 来源:发表于2018-04-04 11:01 被阅读0次

    问题:

    在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

    相关文章

      网友评论

          本文标题:Linux 消息队列长度处理

          本文链接:https://www.haomeiwen.com/subject/nuhkhftx.html