Como posso observar o que o nginx está fazendo? (para resolver: “1024 conexões de trabalho não são suficientes”)

8

Eu tenho um site de tráfego muito baixo rodando em nginx, com 4 funcionários, 1024 conexões cada.

A cada hora eu começo a ver no log de erros "1024 worker_connections não são suficientes", e meu site fica lento / fica flakey. Um reinício nginx resolve completamente o problema pelas próximas horas.

É evidente que algo estranho está acontecendo, não há como eu estar servindo 4k usuários simultâneos do meu aplicativo.

Além de olhar para o log de acesso (que parece normal), existe uma maneira de observar com maiores detalhes o que o nginx está fazendo?

Existe alguma combinação de configuração notória que pode resultar em conexões antigas serem mantidas abertas e não fechadas?

Obrigado.

editar isso não parece certo

# lsof |grep nginx |grep CLOSE_WAIT |wc -l
1271
    
por John Bachir 04.12.2010 / 01:49

1 resposta

7

Sem passagem de proxy / proxy reverso

max_clients = worker_processes * worker_connections

Com proxy reverso

max_clients = (worker_processes * worker_connections ) / (X * 2)

2 é porque você abre uma conexão com o que você está fazendo proxy

No entanto, X é muitas conexões simultâneas que esses clientes fazem para você

Para ver quais conexões estão circulando, é possível executar lsof -i :PORT . Ele mostrará todas as conexões abertas para o nginx e seu estado.

    
por 04.12.2010 / 02:02

Tags