【问题标题】:Unable to increase file descriptors for rabbitmq无法为 rabbitmq 增加文件描述符
【发布时间】:2017-07-23 11:14:04
【问题描述】:

我想增加 Rabbitmq 服务器的文件描述符。

机器详情:

root@rabbitmq-stats-node:/home/# uname -a
Linux rabbitmq-stats-node 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u1 (2017-02-22) x86_64 GNU/Linux

以下是更改的配置参数的详细信息:

root@rabbitmq-stats-node:/home/# cat /proc/sys/fs/file-max
500000

root@rabbitmq-stats-node:/home/# tail -n1 /etc/pam.d/common-session
session required pam_limits.so

root@rabbitmq-stats-node:/home/# tail -n1 /etc/pam.d/common-session-noninteractive
session    required   pam_limits.so

root@rabbitmq-stats-node:/home/# tail -n4 /etc/security/limits.conf 
*           soft    nofile          65536
*           hard    nofile          500000
root           soft    nofile          65536
root           hard    nofile          500000

root@rabbitmq-stats-node:/home/# sysctl -p 
fs.file-max = 500000

root@rabbitmq-stats-node:/home/# sudo service rabbitmq-server restart

root@rabbitmq-stats-node:/home/# sudo reboot

所有配置更改后,我无法更改文件描述符限制。

root@rabbitmq-stats-node:/home/# rabbitmqctl status | grep -A1 descriptors
 {file_descriptors,
     [{total_limit,924},{total_used,13},{sockets_limit,829},{sockets_used,3}]},

我可以在输入时看到更改的限制,

root@rabbitmq-stats-node:/home/# ulimit -n
65536

虽然改动并没有反映在rabbitmq安装中。

我还尝试将 ulimit 行添加到 /usr/lib/rabbitmq/bin/rabbitmq-env 文件。虽然添加此更改后 rabbitmq 服务器没有启动。抛出的错误:

ulimit: error setting limit (Operation not permitted)

【问题讨论】:

    标签: rabbitmq


    【解决方案1】:

    https://www.rabbitmq.com/configure.html#config-file

    在不使用 systemd 的发行版上调整 RabbitMQ 的每个用户限制的最直接方法是编辑 /etc/default/rabbitmq-server(由 RabbitMQ Debian 软件包提供)或 rabbitmq-env.conf 以在服务启动前调用 ulimit。

    所以你可以修改 /etc/default/rabbitmq-server 文件,这对我有用!

    【讨论】:

      【解决方案2】:

      配置/etc/systemd/system.conf

      DefaultLimitNOFILE=1048576
      

      【讨论】:

        【解决方案3】:

        在文件 /etc/systemd/system/rabbitmq-server.service.d/limits.conf 中添加这个可以解决问题,

        [Service]
        LimitNOFILE=300000
        

        更多信息在这里:https://www.rabbitmq.com/install-debian.html [控制 Linux 上的系统限制]

        【讨论】:

          【解决方案4】:

          实际上做一个快速测试,将我的用户 running(我们称他为 my_user)rabbitmq 添加到 /etc/security/limits.conf 如下:

          my_user           soft    nofile          65000
          my_user           hard    nofile          65000
          

          然后再次登录并重新登录,启动rabbitmq,并像你一样检查文件描述符的数量,我得到:

           {file_descriptors,
               [{total_limit,64900},...
          

          所以我可以得出结论,它有效。现在我从你所写的内容中高度怀疑运行 rabbitmq 的用户不是 root 用户,而是另一个用户。但是最大文件描述符的增加似乎只适用于 root 用户,因此在运行 rabbitmq 时没有发现差异。

          要更详细地检查它,最好发布输入时运行的“服务”脚本:

          sudo service rabbitmq-server restart
          

          现在,如果您想确保您的修改有效,您可以直接以 root 身份启动 rabbitmq(我不建议将其用于生产)

          【讨论】:

            猜你喜欢
            • 2018-02-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-10-29
            • 2015-01-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多