好消息!!!网站已上线积分开通会员的功能啦!阅读站内文章不过瘾,试试“查找全网同类文章”功能,可以畅读全网的文章哦!
首页  >   经验  >   Linux增加消息队列的长度

Linux增加消息队列的长度

佚名 2019-03-19 09:56:29 59
消息   队列   长度   大小  
简介在进行跨进程通信的时候,经常会借助系统的消息队列来实现。默认情况下,消息队列的大小是有限的。如果是在高并发的场景下运行,队列满了之后,就会导致后续的消息无法进入消息队列而丢失,进而导致通信失败,功能失效。

    在进行跨进程通信的时候,经常会借助系统的消息队列来实现。默认情况下,消息队列的大小是有限的。如果是在高并发的场景下运行,队列满了之后,就会导致后续的消息无法进入消息队列而丢失,进而导致通信失败,功能失效。
导致队列满的原因一般是:
1.取出消息速度小于存入消息速度
2.一些消息因为逻辑问题无法取出而一直积压在消息队列中(程序逻辑漏洞)
第二点我们是要在程序设计上规避,而第一点则是因为消息队列较小,需要扩大容量,来做缓存。这样尽管取出的速度较慢,依然不会丢失消息。

下面是修改Linux消息队列大小的方法:
打开配置文件/etc/sysctl.conf,添加内容如下:

kernel.msgmni=2000
kernel.msgmax=1024
kernel.msgmnb=204800

kernel.msgmni:系统的消息队列数目,要比程序需要的最大的消息数大。
kernel.msgmax:消息最大的大小字节数
kernel.msgmnb:消息队列最大的容量字节数

    通过kernel.msgmnb和我们自己定义的消息大小,我们可以计算出消息队列能够存储的我们的程序消息的最大的消息数,如我们的消息大小为100,那么消息队列最大能存储2048个消息。那么此时kernel.msgmni设置就小了,要将此值设置超过2048。

    最后要在命令行执行:

sysctl -p 

    才会生效哦。

Linux增加消息队列的长度

文章标题:Linux增加消息队列的长度
文章地址:http://www.cjjjs.com/article/20190313104240461
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:Linux增加消息队列的长度
收藏 0 点赞 0

相关阅读

  1. Linux中C++程序内清除消息队列并重建消息队列 查找全网同类文章
  2. Linux使用Shell命令行查看消息队列 查找全网同类文章
  3. Linux增加消息队列的长度 查找全网同类文章
  4. mysql数据库UTF8设置区分大小写 查找全网同类文章
  5. C++实现指定长度来生成随机字符串的功能 查找全网同类文章
  6. 面试题:14 B/S端:如何设计秒杀场景? 查找全网同类文章
  7. 生产者与消费者中的阻塞队列实例应用 查找全网同类文章
  8. 深入理解生产者消费者中的阻塞队列 查找全网同类文章
  9. string系列:9 用C++ string实现任意长度正小数、整数之间的加减法 查找全网同类文章
  10. MSSQL Server查询不区分大小写问题解决办法 查找全网同类文章
分享到:
分享文章[Linux增加消息队列的长度]到QQ空间

相关阅读

猜您感兴趣