Reputation: 499
Rabbitmq documentation says that we need to do some configuration before we use it on production. One of the configuration is about maximum open file number (which is an OS parameter).
Rabbitmq server we use is running on Ubuntu 16.04 and according to resources I found on web, I updated the number of open files as 500k. When I check it from command line, I get the following output:
root@madeleine:~# ulimit -n
500000
However when I look at the rabbitmq server status, I see another number.
root@madeleine:~# rabbitmqctl status | grep 'file_descriptors' -A 4
{file_descriptors,
[{total_limit,924},
{total_used,19},
{sockets_limit,829},
{sockets_used,10}]},
It seems like, I managed to increase the limit on OS side, but rabbitmq still thinks that total limit of file descriptors is 924.
What might be causing this problem?
Upvotes: 9
Views: 21492
Reputation: 141
On Rocky Linux 9 the service was located in "/etc/systemd/system/multi-user.target.wants/rabbitmq-server.service". There was no "/etc/systemd/system/rabbitmq-server.service.d" location. I had to create an override file by running the below command
systemctl edit rabbitmq-server.service
Enter a comment and then save the file (If no changes to the override.conf file the /etc/ location will not be created). The override file will be saved in "/etc/systemd/system/rabbitmq-server.service.d/override.conf"
Now create a file limits.conf with following contents
vi /etc/systemd/system/rabbitmq-server.service.d/limits.conf
[Service]
LimitNOFILE=64000
I also followed the instructions in https://ro-che.info/articles/2017-03-26-increase-open-files-limit as suggested in RabbitMQ networking guide https://www.rabbitmq.com/docs/networking#open-file-handle-limit
Upvotes: 0
Reputation: 2990
You might want to look at this page
Apparently, this operation depends on the OS version. If you have a systemd, you should do the following in /etc/systemd/system/rabbitmq-server.service.d/limits.conf file:
Notice that this service configuration might be somewhere else according to the operating system you are using. You can use the following command to find where this service configuration is located and update that file.
find / -name "*rabbitmq-server.service*"
[Service]
LimitNOFILE=300000
On the other hand, if you do not have the systemd folder, you should try this in your rabbitmq-env.conf file:
ulimit -S -n 4096
Upvotes: 11
Reputation: 51
Increase / Set maximum number of open files
sudo sysctl -w fs.file-max=65536
These limits are defined in /etc/security/limits.conf
sudo nano /etc/security/limits.conf
and set
soft nofile 65536
hard nofile 65536
Per user settings for rabbitmq process can also be set in
/etc/default/rabbitmq-server
sudo nano /etc/default/rabbitmq-server
and set
ulimit -n 65536
Then reboot the server for changes to take effect.
Upvotes: 2