我想增加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)
答案 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文件,这对我有用!