Rabbitmq 文件描述符限制

问题描述 投票:0回答:3

Rabbitmq 文档说我们需要在生产中使用它之前进行一些配置。其中一项配置是关于最大打开文件数(这是操作系统参数)。

我们使用的Rabbitmq服务器运行在Ubuntu 16.04上,根据我在网上找到的资源,我将打开文件数更新为500k。当我从命令行检查它时,我得到以下输出:

root@madeleine:~# ulimit -n
500000

但是,当我查看rabbitmq服务器状态时,我看到了另一个数字。

root@madeleine:~# rabbitmqctl status | grep 'file_descriptors' -A 4
 {file_descriptors,
     [{total_limit,924},
      {total_used,19},
      {sockets_limit,829},
      {sockets_used,10}]},

看起来,我设法增加了操作系统方面的限制,但rabbitmq仍然认为文件描述符的总限制是924。

什么可能导致此问题?

rabbitmq rabbitmq-exchange rabbitmqctl
3个回答
11
投票

您可能想看看这个页面

显然,此操作取决于操作系统版本。如果您有 systemd,您应该在 /etc/systemd/system/rabbitmq-server.service.d/limits.conf 文件中执行以下操作:

请注意,根据您使用的操作系统,此服务配置可能位于其他位置。您可以使用以下命令查找此服务配置所在的位置并更新该文件。

find / -name "*rabbitmq-server.service*"

[服务]

限制NOFILE=300000

另一方面,如果您没有 systemd 文件夹,您应该在 rabbitmq-env.conf 文件中尝试此操作:

ulimit -S -n 4096


2
投票

增加/设置打开文件的最大数量

sudo sysctl -w fs.file-max=65536
这些限制在 /etc/security/limits.conf 中定义

sudo nano /etc/security/limits.conf
并设置

软nofile 65536
硬诺文件 65536
rabbitmq 进程的每用户设置也可以在 /etc/default/rabbitmq-server

sudo nano /etc/default/rabbitmq-server
并设置

ulimit -n 65536
然后重新启动服务器以使更改生效。


0
投票

在 Rocky Linux 9 上,该服务位于“/etc/systemd/system/multi-user.target.wants/rabbitmq-server.service”。没有“/etc/systemd/system/rabbitmq-server.service.d”位置。 我必须通过运行以下命令来创建覆盖文件

systemctl edit rabbitmq-server.service

输入注释,然后保存文件(如果没有更改 override.conf 文件,则不会创建 /etc/ 位置)。覆盖文件将保存在“/etc/systemd/system/rabbitmq-server.service.d/override.conf”中

现在创建一个包含以下内容的文件limits.conf

vi /etc/systemd/system/rabbitmq-server.service.d/limits.conf

[Service]
LimitNOFILE=64000

我还按照 RabbitMQ 网络指南 https://www.rabbitmq.com 中的建议遵循了 https://ro-che.info/articles/2017-03-26-increase-open-files-limit 中的说明/docs/networking#open-file-handle-limit

© www.soinside.com 2019 - 2024. All rights reserved.