美文网首页
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 消息队列长度处理

    问题: 在Linux 系统中通过消息队列进行进程间的通讯时,只要定义的BufSize小于1024,队列就能正常读写...

  • Linux消息队列

    1、消息队列简介 消息队列本质上是位于内核空间的链表,链表的每个节点都是一条消息。每一条消息都有自己的消息类型,消...

  • RabbitMQ消息队列实践

    RabbitMQ消息队列实践 消息队列 消息队列最核心解决的问题是避免立即处理那些耗时的任务,也就是避免请求-响应...

  • [Linux进程间通信]消息队列

    消息队列是消息的链接表,存放在内核中并由消息队列标识符标识每条消息由3部分组成:消息类型+消息长度+实际数据每条新...

  • MFC发送自定义消息-PostMessage和SendMessa

    PostMessage:把消息投放到线程的消息队列,不能消息被处理就立即返回 SendMessage:消息被处理完...

  • 第五章----SpringBoot+RabbitMQ用死信队列和

    1. 死信队列之延迟队列 死信队列:用来保存处理失败或者过期的消息,确保消息不被丢失以便排查问题! 延迟队列:顾名...

  • Linux的消息队列

    消息队列是两个进程之间传递二进制块数据的一种简单有效的方式。每个数据块都有一个特定的类型,接收方可以根据类型来有选...

  • 开发中使用RabbitMQ的手动确认机制

    使用消息队列处理消息的时候,我们可能会遇到以下问题: 消息处理失败 消息体本身有误 消息重复处理 消息丢失 对于消...

  • Android Binder进程间通信机制

    1、概述 Linux传统IPC机制主要有已下几种:管道、消息队列、共享内存Socket等。消息队列和管道采用存储-...

  • 深入浅出Binder进程间通信机制

    1、概述 Linux传统IPC机制主要有已下几种:管道、消息队列、共享内存Socket等。消息队列和管道采用存储-...

网友评论

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

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