2017-03-03 30 views
9

Chcę zwiększyć deskryptory plików dla serwera Rabbitmq.Nie można zwiększyć deskryptorów plików dla rabbitmq

dane maszynowe:

[email protected]:/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 

Oto szczegóły parametrów konfiguracyjnych zmienił:

[email protected]:/home/# cat /proc/sys/fs/file-max 
500000 

[email protected]:/home/# tail -n1 /etc/pam.d/common-session 
session required pam_limits.so 

[email protected]:/home/# tail -n1 /etc/pam.d/common-session-noninteractive 
session required pam_limits.so 

[email protected]:/home/# tail -n4 /etc/security/limits.conf 
*   soft nofile   65536 
*   hard nofile   500000 
root   soft nofile   65536 
root   hard nofile   500000 

[email protected]:/home/# sysctl -p 
fs.file-max = 500000 

[email protected]:/home/# sudo service rabbitmq-server restart 

[email protected]:/home/# sudo reboot 

Po wszystkich zmian konfiguracyjnych, jestem w stanie zmienić limitu desciptors plików.

[email protected]:/home/# rabbitmqctl status | grep -A1 descriptors 
{file_descriptors, 
    [{total_limit,924},{total_used,13},{sockets_limit,829},{sockets_used,3}]}, 

widzę zmieniony granicę, kiedy wejść,

[email protected]:/home/# ulimit -n 
65536 

Choć zmiany nie są odzwierciedlane w instalacji RabbitMQ.

Próbowałem także dodać linię ulimit do pliku /usr/lib/rabbitmq/bin/rabbitmq-env. Chociaż serwer rabbitmq nie zaczyna się po dodaniu tej zmiany. Błąd rzucony:

ulimit: error setting limit (Operation not permitted) 

Odpowiedz

0

w pliku /etc/systemd/system/rabbitmq-server.service.d/limits.conf dodając ten rozwiązuje problem,

[Service] 
LimitNOFILE=300000 

Więcej informacji dostępnych tutaj: https://www.rabbitmq.com/install-debian.html [Kontrolowanie limitów systemowych w systemie Linux]

0

Właściwie dokonywania szybki test, dodając moje użytkownikowi działa (nazwijmy go my_user) RabbitMQ do /etc/security/limits.conf następujące:

my_user   soft nofile   65000 
my_user   hard nofile   65000 

Następnie wyloguj się i wróć, uruchamiając program rabbitmq i sprawdzając liczbę deskryptorów plików tak jak Ty, otrzymuję:

{file_descriptors, 
    [{total_limit,64900},... 

Więc mogę stwierdzić, że to działa. Teraz bardzo podejrzewam z tego, co piszesz, że użytkownik uruchamiający rabbitmq nie jest rootem, ale innym. Jednak zwiększenie max deskryptorów plików wydaje się być stosowane tylko dla użytkownika root, w związku z tym nie widać żadnych różnic w działaniu rabbitmq.

Aby sprawdzić ją bardziej szczegółowo, że byłoby dobrze, aby pisać skrypt „usługa” pobiegł po wpisaniu:

sudo service rabbitmq-server restart 

Teraz, jeśli chcesz, aby upewnić się, że modyfikacje pracował, można rozpocząć bezpośrednio RabbitMQ jak korzenia (czego nie polecam dla produkcji)