NetWorker: busy Linux NetWorker server reports the message "nsrd RPC critical Unable to accept client connection: For mange åpne filer"
Summary: En travel Linux NetWorker-server rapporterer meldingen "nsrd RPC critical Unable to accept client connection: For mange åpne filer"
Symptoms
NetWorker-serveren svarer ikke, inkludert:
- NMC-konsollen henger på en fremdriftsindikator
- Informasjonen i
nsradminKommandoen kommer ikke tilbake - Informasjonen i
nsrwatchKommer ikke tilbake - Klientene mister forbindelser
Daemonene på en NetWorker for Linux-server starter med for lav åpen filgrense. Dette skyldes at bakgrunnsprosessene ikke arver grenser per prosess ved oppstartstid. Grensen som brukes faller tilbake til 1024. Dette kan være utilstrekkelig på større datasoner.
Cause
Den åpne filgrensen på NetWorker-serveren er for lav.
- Få PID for nsrd
$ ps aux | grep nsrd | grep -v grep | grep -v disp | awk '{ print $2; }'
4021
-
PID er en del av banen i
/proc/<nsrd_PID>/limitsHvis du vil se gjennom medcatkommando:
$ 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
Opprett et separat oppstartsskript for NetWorker-servere med stor belastning ved å aktivere følgende miljøvariabel før NetWorker-tjenestene starter:
Slik angir du fullstendig operativsystemnivå:
Åpne filbeskrivelser: Endre parameteren open file descriptors til et minimum av:
- 8192 (lite NetWorker-miljø)
- 16384 (middels NetWorker-miljø)
- 32768 (stort NetWorker-miljø)
Du finner definisjonene av en liten, mellomstor eller stor NetWorker-server i veiledningen for optimalisering og planlegging av NetWorker-ytelse.
Maksimalt antall åpne filer
På en Linux NetWorker-server legger du til ulimit -n 8192 i den .bash_profile og starte gjeldende økt på nytt.
Slik angir du minimum og maksimum filbeskrivelse per prosess: Red Hat 7, SLES 12, SLES 15
prlimit --pid <pid_of_the_process> --nofile=<min_limit>:<max_limit>Eksempel:prlimit --pid 12345 --nofile=1024:4096
Slik angir du minimum og maksimum filbeskrivelse per prosess: Red Hat 6
echo -n "Max open files=min_limit:max_limit" > /proc/pid_of_the_process/limitsEksempel:echo -n "Max open files=4096:16384" > /proc/1208/limits
TCP-parametere
Legg til følgende TCP-parametere når NetWorker-serveren kjører med tung belastning (samtidig kjører med mange socket-forespørsler på serverapplikasjonsportene):
- På en Linux NetWorker-server legger du til følgende TCP-parametere i
/etc/sysctl.confog kjørsysctl --systemkommando:net.ipv4.tcp_fin_timeout = 30 net.ipv4.ip_local_port_range = 15000 65535 net.core.somaxconn = 1024 - På en Linux NMC-server oppdaterer du filmaksimalverdien til 65536 for å sikre tilkobling til Postgres-databasen når NetWorker-serveren kjører med stor belastning:
echo 65536 > /proc/sys/fs/file-max