Rabbitmq文件描述符限制

时间:2017-09-15 12:50:49

标签: rabbitmq rabbitmq-exchange rabbitmqctl

Rabbitmq文档说我们需要在生产之前进行一些配置。其中一个配置是关于最大打开文件数(这是一个OS参数)。

我们使用的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}]},
似乎,我设法增加了OS端的限制,但是rabbitmq仍然认为文件描述符的总限制是924。

可能导致此问题的原因是什么?

2 个答案:

答案 0 :(得分:3)

您可能希望查看此page

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

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

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

<强> [服务]

<强> LimitNOFILE = 300000

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

ulimit -S -n 4096

答案 1 :(得分:1)

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

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

中定义

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

soft nofile 65536
hard nofile 65536
也可以设置rabbitmq进程的每个用户设置 的/ etc /默认/ RabbitMQ的服务器

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

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