POSIX 消息队列相关问题

一、查看和删除消息队列
要想看到创建的posix消息队列,需要在root用户下执行以下操作:
# mkdir /dev/mqueue
# mount -t mqueue none /dev/mqueue

删除队列使用 rm 命令即可。


二、查看和调整消息队列限制
参考 《Linux进程通信之POSIX消息队列》


1、查看消息队列大小的限制
# ulimit -a |grep message
POSIX message queues     (bytes, -q) 819200
限制大小为800KB,该大小是整个消息队列的大小,不仅仅是最大消息数*消息的最大大小;还包括消息队列的额外开销。测试代码见参考文章。


2、修改消息队列大小的限制
切换到root用户
# ulimit -q 1024000
但会在shell启动进程结束后失效,可以将设置写入开机启动的脚本中执行,例如/etc/bash.bashrc,/etc/rc.local中(由于需要root权限,因此其他用户登陆时无法自动设置成功)。
如果要创建的消息队列总大小超过该限制,会报错:Too many open files


3、其他限制
POSIX消息队列在实现上还有另外两个限制:
MQ_OPEN_MAX:一个进程能同时打开的消息队列的最大数目,POSIX要求至少为8
MQ_PRIO_MAX:消息的最大优先级,POSIX要求至少为32


from: http://blog.sina.com.cn/s/blog_590be5290102w6un.html

posted on 2016-04-22 14:29  胡永光  阅读(266)  评论(0编辑  收藏  举报

导航