NetWorker: upptagen Linux NetWorker-servern rapporterar meddelandet "nsrd RPC kritisk Det går inte att acceptera klientanslutning: För många öppna filer"
Summary: En upptagen Linux NetWorker-server rapporterar meddelandet "nsrd RPC kritisk Det går inte att acceptera klientanslutning: För många öppna filer"
Symptoms
NetWorker-servern slutar svara, inklusive:
- NMC-konsolen hänger sig vid en förloppsindikator
- Informationen
nsradminKommandot returneras inte - Informationen
nsrwatchKommer inte tillbaka - Klienterna förlorar anslutningar
Daemonerna på en NetWorker för Linux-server börjar med en för låg gräns för öppna filer. Detta beror på att daemonerna inte ärver gränser per process vid start. Gränsen som används återgår till 1024. Detta kan vara otillräckligt i större datazoner.
Cause
Gränsen för öppna filer på NetWorker-servern är för låg.
- Hämta PID för nsrd
$ ps aux | grep nsrd | grep -v grep | grep -v disp | awk '{ print $2; }'
4021
-
PID är en del av vägen i
/proc/<nsrd_PID>/limitsatt granska medcatbefallning:
$ 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
Skapa ett separat startskript för NetWorker-servrar med hög belastning genom att aktivera följande miljövariabel innan NetWorker-tjänsterna startar:
Så här ställer du in på fullständig operativsystemnivå:
Öppna filbeskrivningar: Ändra parametern för öppna filbeskrivningar till ett minimum:
- 8192 (liten NetWorker-miljö)
- 16384 (medelstor NetWorker-miljö)
- 32768 (stor NetWorker-miljö)
Definitionerna av en liten, medelstor eller stor NetWorker-server finns i NetWorker-guiden för prestandaoptimering och planering.
Maximalt antal öppna filer
På en Linux NetWorker-server lägger du till ulimit -n 8192 I den .bash_profile och starta om den aktuella sessionen.
Så här anger du lägsta och högsta antal filbeskrivningar per process: Red Hat 7, SLES 12 och SLES 15
prlimit --pid <pid_of_the_process> --nofile=<min_limit>:<max_limit>Exempel:prlimit --pid 12345 --nofile=1024:4096
Så här anger du lägsta och högsta antal filbeskrivningar per process: Red Hat 6
echo -n "Max open files=min_limit:max_limit" > /proc/pid_of_the_process/limitsExempel:echo -n "Max open files=4096:16384" > /proc/1208/limits
TCP-parametrar
Lägg till följande TCP-parametrar när NetWorker-servern körs med hög belastning (samtidiga körningar med många socketbegäranden som görs på serverprogramportarna):
- På en Linux NetWorker-server lägger du till följande TCP-parametrar i
/etc/sysctl.conffilen och körsysctl --systembefallning:net.ipv4.tcp_fin_timeout = 30 net.ipv4.ip_local_port_range = 15000 65535 net.core.somaxconn = 1024 - På en Linux NMC-server uppdaterar du file-max-värdet till 65536 för att säkerställa Postgres-databasanslutning när NetWorker-servern körs med tung belastning:
echo 65536 > /proc/sys/fs/file-max