é normal que o NGINX acumule conexões por escrito?

1

Este é um gráfico que mostra a contagem de conexões do stab_status do nginx, as quedas no gráfico são reinicializações do servidor feitas manualmente.

Euachoessecomportamentoestranho,parecealgumvazamento.Euachoqueexistemconexõespenduradasquedevemserfechadas,maselaspermanecemnoestadodeescrita.

Issoénormal?Devoagir?Emcasoafirmativo,emquedireção?

Eutenteialterarokeepalivedonginxe,emseguida,algumasconfiguraçõesdokernelcomoeste link

Mas esse comportamento não mudou.

O servidor é um VPS com um processador disponível e 1024 mb de RAM.

EDIT1: versões

versão nginx: nginx / 1.6.2 construído pelo gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1) Suporte a TLS SNI ativado configurar argumentos: --add-module = / root / ngx_pagespeed-release-1.9.32.3-beta --prefix = /etc/nginx --conf-path = /etc/nginx/nginx.conf --error-log-path = / var / log / nginx / error.log --http-client-body-temp-caminho = / var / lib / nginx / body -http-fastcgi-temp-caminho = / var / lib / nginx / fastcgi - -http-log-path = / var / log / nginx / access.log --http-proxy-temp-caminho = / var / lib / nginx / proxy --http-scgi-temp-caminho = / var / lib / nginx / scgi --http-uwsgi-temp-caminho = / var / lib / nginx / uwsgi --lock-caminho = / var / lock / nginx.lock - caminho-caminho = / var / run / nginx.pid - -with-pcre-jit --with-http_ssl_module --without-mail_pop3_module --without-mail_smtp_module --without-mail_imap_module --without-http_scgi_module --with-ipv6 --with-http_stub_status_module --sbin-path = / usr / sbin / nginx --with-http_spdy_module

Observe que ele é executado em ngx_pagespeed

EDIT2: Mais informações

O Nginx está funcionando como um proxy reverso para o aplicativo uwsgi / django. Vou monitorar o uwsgi e postar os resultados para ver melhor se o uwsgi tem algo a ver.

    
por jperelli 17.03.2015 / 00:17

3 respostas

1

Esse parece ser um comportamento normal, já que sempre haverá clientes que têm uma conexão não confiável, deixando as conexões do servidor em um estado de "envio". Eles não estão lendo mais nenhum dado, mas o Nginx ainda espera até o send_timeout antes de fechar a conexão.

Estes também podem ser ataques em que os clientes mal-intencionados deliberadamente fazem isso para esgotar as conexões disponíveis do servidor & descritores de arquivos, portanto, se isso se tornar um problema real, tente diminuir o valor mencionado acima.

    
por 17.03.2015 / 03:28
1

Conforme descrito na documentação do módulo stub_status , uma conexão no estado de escrita significa:

Writing

The current number of connections where nginx is writing the response back to the client.

Portanto, você deve investigar os tempos de resposta do seu servidor e verificar por que demora muito para seus clientes obterem respostas do nginx e fechar a conexão posteriormente: rede lenta, altos volumes de dados, codificação de transferência em partes, websockets ...

    
por 17.03.2015 / 00:47
1

Se alguns de seus servidores usam SPDY ou HTTP/2 , seu problema tem suas raízes em um defeito na integração desses protocolos. Você pode dar uma olhada em bilhete nginx # 714 .

O status atual é:

There is at least one connection leak in HTTP/2 as fixed in nginx 1.11.3, and the fix is not yet available in 1.10.x. Please try 1.11.x instead.

    
por 21.11.2016 / 18:55

Tags