设为首页 收藏本站
查看: 550|回复: 0

[经验分享] Set linux mq_queue size for user

[复制链接]

尚未签到

发表于 2017-11-17 22:10:40 | 显示全部楼层 |阅读模式
  设置调整mq_queue的size*num如果大于默认(POSIX message queues),则需要调整系统限制和用户限制,不然在mq_open是会报"Too many open files"的错误
  1. man mq_overview命令可以了解到mq可以设置msg_max和msgsize_max的路径,默认是10与8192.这个限制是系统限制
  /proc/sys/fs/mqueue/msg_max
              This file can be used to view and change the ceiling  value  for
              the maximum number of messages in a queue.  This value acts as a
              ceiling on the attr->mq_maxmsg  argument  given  to  mq_open(3).
              The default value for msg_max is 10.  The minimum value is 1 (10
              in kernels before 2.6.28).  The upper limit is HARD_MSGMAX.  The
              msg_max    limit    is    ignored   for   privileged   processes
              (CAP_SYS_RESOURCE), but the HARD_MSGMAX ceiling is  nevertheless
              imposed.
  The  definition  of  HARD_MSGMAX  has changed across kernel ver‐
              sions:
  *  Up to Linux 2.6.32: 131072 / sizeof(void *)
  *  Linux 2.6.33 to 3.4: (32768 * sizeof(void *) / 4)
  *  Since Linux 3.5: 65,536
  /proc/sys/fs/mqueue/msgsize_max
              This file can be used to view and change the ceiling on the max‐
              imum  message  size.   This  value  acts  as  a  ceiling  on the
              attr->mq_msgsize argument  given  to  mq_open(3).   The  default
              value  for  msgsize_max is 8192 bytes.  The minimum value is 128
              (8192 in kernels before  2.6.28).   The  upper  limit  for  msg‐
              size_max has varied across kernel versions:
  *  Before Linux 2.6.28, the upper limit is INT_MAX.
  *  From Linux 2.6.28 to 3.4, the limit is 1,048,576.
  *  Since Linux 3.5, the limit is 16,777,216 (HARD_MSGSIZEMAX).
  The   msgsize_max   limit  is  ignored  for  privileged  process
              (CAP_SYS_RESOURCE), but, since Linux  3.5,  the  HARD_MSGSIZEMAX
              ceiling is enforced for privileged processes.
  2. ulimit -a命令可以显示POSIX message queues     (bytes, -q) 819200, ulimit -q xxx对于普通用户无法进行调整
  一般用户调整该项设置会提示权限问题,或者无法看到该项显示。
  这样就需要root权限或者sudo修改/etc/security/limits.conf, 比如调整为* - msgqueue 921600
  明确在/etc/pam.d/login加载中生效, 有这项纪录session required pam_limits.so即表明会加载,但需要重启系统进行加载,加载成功后,一般用户的该值就会被设置为新限制。
  注:mq_name需要注意,open后必须删掉,否则即使调整属性也是无法生效的。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-408051-1-1.html 上篇帖子: Linux下文件打包与解压缩 下篇帖子: Linux 添加普通用户到 sudoers 文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表