NetWorker: drukke Linux NetWorker-server meldt het bericht "nsrd RPC critical Kan clientverbinding niet accepteren: Te veel geopende bestanden"
Summary: Een drukke Linux NetWorker-server meldt het bericht "nsrd RPC critical Kan clientverbinding niet accepteren: Te veel geopende bestanden"
Symptoms
De NetWorker-server reageert niet meer, waaronder:
- De NMC console hangt aan een voortgangsbalk
- De
nsradminOpdracht keert niet terug - De
nsrwatchKeert niet terug - De clients verliezen de verbinding
De daemons op een NetWorker for Linux server beginnen met een te lage limiet voor het openen van bestanden. Dit komt doordat de daemons bij het opstarten geen limieten per proces erven. De gebruikte limiet valt terug op 1024. Bij grotere datazones kan dit onvoldoende zijn.
Cause
De limiet voor het openen van bestanden op de NetWorker-server is te laag.
- Verkrijg de PID voor de nsrd
$ ps aux | grep nsrd | grep -v grep | grep -v disp | awk '{ print $2; }'
4021
-
De PID maakt deel uit van het pad in
/proc/<nsrd_PID>/limitsom te bekijken met decatbevelen:
$ 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
Maak een afzonderlijk opstartscript voor de NetWorker-servers met zware belasting door de volgende omgevingsvariabele in te schakelen voordat de NetWorker-services worden gestart:
Instellen op volledig OS-niveau:
Open bestandsdescriptors: Wijzig de parameter voor open bestandsdescriptors in een minimum van:
- 8192 (kleine NetWorker-omgeving)
- 16384 (gemiddelde NetWorker-omgeving)
- 32768 (grote NetWorker-omgeving)
De definities van een kleine, middelgrote of grote NetWorker server vindt u in de NetWorker Performance Optimization and Planning Guide.
Max. aantal geopende bestanden
Voeg op een Linux NetWorker server ulimit -n 8192 In het .bash_profile Dien het bestand in en start de huidige sessie opnieuw.
Om minimale en maximale bestandsdescriptoren per proces in te stellen: Red Hat 7, SLES 12, SLES 15
prlimit --pid <pid_of_the_process> --nofile=<min_limit>:<max_limit>Voorbeeld:prlimit --pid 12345 --nofile=1024:4096
Om minimale en maximale bestandsdescriptoren per proces in te stellen: Red Hat 6
echo -n "Max open files=min_limit:max_limit" > /proc/pid_of_the_process/limitsVoorbeeld:echo -n "Max open files=4096:16384" > /proc/1208/limits
TCP-parameters
Voeg de volgende TCP-parameters toe wanneer de NetWorker-server wordt uitgevoerd met een zware belasting (gelijktijdige runs met veel socketaanvragen voor de poorten van de serverapplicatie):
- Voeg op een Linux NetWorker-server de volgende TCP-parameters toe in de
/etc/sysctl.confbestand uit en voer desysctl --systembevelen:net.ipv4.tcp_fin_timeout = 30 net.ipv4.ip_local_port_range = 15000 65535 net.core.somaxconn = 1024 - Werk op een Linux NMC server de file-max-waarde bij naar 65536 om Postgres-databaseconnectiviteit te garanderen wanneer de NetWorker-server wordt uitgevoerd met zware belastingen:
echo 65536 > /proc/sys/fs/file-max