Rabbitmq 文件描述符限制
Rabbitmq File Descriptor Limit
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。
可能是什么导致了这个问题?
增加/设置最大打开文件数
sudo sysctl -w fs.file-max=65536
这些限制在 /etc/security/limits.conf
中定义
sudo nano /etc/security/limits.conf
并设置
软文件 65536
硬 nofile 65536
rabbitmq 进程的每个用户设置也可以在
/etc/default/rabbitmq-server
须藤纳米 /etc/default/rabbitmq-server
并设置
ulimit -n 65536
然后重新启动服务器以使更改生效。
你可能想看看这个page
显然,这个操作依赖于OS版本。如果你有 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
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。
可能是什么导致了这个问题?
增加/设置最大打开文件数
sudo sysctl -w fs.file-max=65536
这些限制在 /etc/security/limits.conf
sudo nano /etc/security/limits.conf
并设置
软文件 65536
硬 nofile 65536
rabbitmq 进程的每个用户设置也可以在
/etc/default/rabbitmq-server
须藤纳米 /etc/default/rabbitmq-server
并设置
ulimit -n 65536
然后重新启动服务器以使更改生效。
你可能想看看这个page
显然,这个操作依赖于OS版本。如果你有 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