NetWorker: zajęty serwer Linux NetWorker zgłasza komunikat "nsrd RPC critical Unable to accept client connection: Zbyt wiele otwartych plików"
Summary: Zajęty serwer Linux NetWorker zgłasza komunikat "nsrd RPC critical Unable to accept client connection: Zbyt wiele otwartych plików"
Symptoms
Serwer NetWorker przestaje odpowiadać, w tym:
- Konsola NMC zawiesza się na pasku postępu
- Plik
nsradminpolecenie nie zwraca - Plik
nsrwatchnie wraca - Klienci tracą połączenia
Demony na serwerze NetWorker dla systemu Linux zaczynają się od zbyt niskiego limitu otwartych plików. Dzieje się tak ze względu na to, że demony nie dziedziczą limitów dla poszczególnych procesów w czasie uruchamiania. Wykorzystany limit spada do 1024. W przypadku większych stref danych może to być niewystarczające.
Cause
Limit otwartych plików na serwerze NetWorker jest zbyt niski.
- Uzyskiwanie identyfikatora PID dla nsrd
$ ps aux | grep nsrd | grep -v grep | grep -v disp | awk '{ print $2; }'
4021
-
Identyfikator PID jest częścią ścieżki w
/proc/<nsrd_PID>/limits, aby przejrzeć za pomocącat:
$ cat /proc/4021/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 10485760 unlimited bytes Max core file size unlimited unlimited bytes Max resident set unlimited unlimited bytes Max processes 63833 63833 processes Max open files 1024 1024 files Max locked memory 32768 32768 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 63833 63833 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 $
Resolution
Utwórz oddzielny skrypt rozruchowy dla serwerów NetWorker o dużym obciążeniu, włączając następującą zmienną środowiskową przed uruchomieniem usług NetWorker:
Aby ustawić na pełnym poziomie systemu operacyjnego:
Otwórz deskryptory plików: Zmień parametr otwartych deskryptorów plików na co najmniej:
- 8192 (małe środowisko NetWorker)
- 16384 (średnie środowisko NetWorker)
- 32768 (duże środowisko NetWorker)
Definicje małego, średniego i dużego serwera NetWorker można znaleźć w Podręczniku optymalizacji i planowania wydajności NetWorker.
Maksymalna liczba otwartych plików
Na serwerze Linux NetWorker dodaj ulimit -n 8192 W .bash_profile i uruchom ponownie bieżącą sesję.
Aby ustawić minimalne i maksymalne deskryptory plików na proces: Red Hat 7, SLES 12, SLES 15
prlimit --pid <pid_of_the_process> --nofile=<min_limit>:<max_limit>Przykład:prlimit --pid 12345 --nofile=1024:4096
Aby ustawić minimalne i maksymalne deskryptory plików na proces: Red Hat 6
echo -n "Max open files=min_limit:max_limit" > /proc/pid_of_the_process/limitsPrzykład:echo -n "Max open files=4096:16384" > /proc/1208/limits
Parametry TCP
Dodaj następujące parametry TCP, gdy serwer NetWorker działa z dużym obciążeniem (współbieżne działa z wieloma żądaniami gniazd wysyłanymi na portach aplikacji serwera):
- Na serwerze Linux NetWorker dodaj następujące parametry TCP w polu
/etc/sysctl.confi uruchom poleceniesysctl --system:net.ipv4.tcp_fin_timeout = 30 net.ipv4.ip_local_port_range = 15000 65535 net.core.somaxconn = 1024 - Na serwerze NMC systemu Linux zaktualizuj wartość file-max do 65536, aby zapewnić łączność bazy danych Postgres, gdy serwer NetWorker działa z dużymi obciążeniami:
echo 65536 > /proc/sys/fs/file-max