无法增加rabbitmq的文件描述符

时间:2017-03-03 11:07:25

标签: rabbitmq

我想增加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)

4 个答案:

答案 0 :(得分:0)

实际进行快速测试,将我的用户正在运行(让我们称之为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的差异。

要更详细地查看它,最好在您输入时发布“service”脚本:

sudo service rabbitmq-server restart

现在,如果你想确保你的修改有效,你可以直接将rabbitmq作为 root (我不推荐用于制作)

答案 1 :(得分:0)

在文件/etc/systemd/system/rabbitmq-server.service.d/limits.conf中添加此项解决了问题,

[Service]
LimitNOFILE=300000

此处提供更多信息:https://www.rabbitmq.com/install-debian.html [控制Linux上的系统限制]

答案 2 :(得分:0)

配置/etc/systemd/system.conf

DefaultLimitNOFILE=1048576

答案 3 :(得分:0)

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

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

因此您可以修改/ etc / default / rabbitmq-server文件,这对我有用!