Uma conexão proxiada de longa duração costuma ocupar dois sockets: o do cliente e o do upstream. worker_connections conta os dois lados. Por isso, multiplicá-lo por worker_processes não promete capacidade aos utilizadores do proxy.

Quando as conexões falham, siga o limite comunicado:

EvidênciaConfiguração ou estado do processo a inspecionar
esgotamento de worker_connectionsO orçamento de conexões do worker, incluindo sockets de upstream
Mensagem do sistema operativo «Demasiados ficheiros abertos»O limite de descritores de arquivo herdado pelo processo real do serviço

Sockets de escuta, registos e outros arquivos abertos também consomem descritores. A reutilização de conexões e a mistura de tráfego alteram a relação entre utilizadores e sockets.

worker_rlimit_nofile ajusta os limites do worker conforme as permissões do ambiente. Uma unidade systemd pode definir LimitNOFILE; o ulimit de uma shell interativa não altera o serviço em execução.

Dimensione os limites para a carga de trabalho e inspecione quem os consome. Clientes inesperados ou conexões de upstream que falham repetidamente podem esgotar um orçamento antes suficiente. Um maior número de processos ou limite de memória não repara a falta de descritores.

Artigos relacionados