NetWorker: Linux ocupado, o servidor NetWorker relata a mensagem "nsrd RPC critical Unable to accept client connection: Muitos arquivos abertos"
Summary: Um servidor do NetWorker Linux ocupado relata a mensagem "nsrd RPC critical Unable to accept client connection: Muitos arquivos abertos"
Symptoms
O servidor do NetWorker deixa de responder, inclusive:
- O console do NMC trava em uma barra de progresso
- O comando
nsradminO comando não retorna - O comando
nsrwatchnão retorna - Os clients perdem conexões
Os daemons em um servidor NetWorker para Linux começam com um limite de arquivos abertos muito baixo. Isso ocorre porque os daemons não herdam limites por processo no momento da inicialização. O limite usado volta para 1024. Isso pode ser insuficiente em zonas de dados maiores.
Cause
O limite de arquivos abertos no servidor do NetWorker é muito baixo.
- Obter o PID para o nsrd
$ ps aux | grep nsrd | grep -v grep | grep -v disp | awk '{ print $2; }'
4021
-
O PID faz parte do caminho no
/proc/<nsrd_PID>/limitspara revisar com ocatcomando:
$ 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
Crie um script de inicialização separado para os servidores do NetWorker com cargas pesadas habilitando a seguinte variável de ambiente antes do início dos serviços do NetWorker:
Para definir no nível completo do sistema operacional:
Abra os descritores de arquivo: Altere o parâmetro open file descriptors para um mínimo de:
- 8192 (ambiente pequeno do NetWorker)
- 16384 (ambiente médio do NetWorker)
- 32768 (ambiente grande do NetWorker)
As definições de um servidor NetWorker pequeno, médio ou grande podem ser encontradas no Guia de planejamento e otimização de desempenho do NetWorker.
Máximo de arquivos abertos
Em um servidor NetWorker no Linux, adicione ulimit -n 8192 no .bash_profile e reinicie a sessão atual.
Para definir descritores de arquivo mínimos e máximos por processo: Red Hat 7, SLES 12 e SLES 15
prlimit --pid <pid_of_the_process> --nofile=<min_limit>:<max_limit>Exemplo:prlimit --pid 12345 --nofile=1024:4096
Para definir descritores de arquivo mínimos e máximos por processo: Red Hat 6
echo -n "Max open files=min_limit:max_limit" > /proc/pid_of_the_process/limitsExemplo:echo -n "Max open files=4096:16384" > /proc/1208/limits
Parâmetros de TCP
Adicione os seguintes parâmetros TCP quando o servidor do NetWorker for executado com uma carga pesada (o simultâneo é executado com muitas solicitações de soquete sendo feitas nas portas do aplicativo do servidor):
- Em um servidor NetWorker no Linux, adicione os seguintes parâmetros TCP no
/etc/sysctl.confe execute osysctl --systemcomando:net.ipv4.tcp_fin_timeout = 30 net.ipv4.ip_local_port_range = 15000 65535 net.core.somaxconn = 1024 - Em um servidor NMC no Linux, atualize o valor máximo de arquivo para 65536 a fim de garantir a conectividade do banco de dados Postgres quando o servidor NetWorker for executado com cargas pesadas:
echo 65536 > /proc/sys/fs/file-max