TIME_WAIT Info (reduzir)

2

Eu tenho um aplicativo ajax que faz uma solicitação a cada 3 segundos, a página solicitada define o cabeçalho como (cabeçalho ("Conexão: Keep-Alive, close");) então executa uma consulta ao banco de dados e retorna os dados mais recentes. / p>

O valor para TIME_WAIT é de 60 segundos, por isso mesmo que eu feche a conexão na minha página solicitada (por exemplo, "Conexão: Keep-Alive, close"), a conexão parece estar presente pelos próximos 60 segundos (isso ocorre cada pedido do Ajax que eu faço), então por 1 minuto 20 pedidos são feitos e o total de TIME_WAIT para esse IP parece ser em torno de 20

É possível reduzir o TIME_WAIT para 15 segundos, para reduzir o TIME_WAITS geral ou é possível forçar uma conexão a fechar após cada solicitação do Ajax

Qualquer ajuda será apreciada

Obrigado

    
por Akash 28.02.2011 / 14:05

2 respostas

2

Você pode usar o parâmetro de kernel net.ipv4.tcp_fin_timeout:

# sysctl net.ipv4.tcp_fin_timeout=15

Edite o /etc/sysctl.conf, adicione ao final

net.ipv4.tcp_fin_timeout = 15

execute:

# sysctl -p
    
por 28.02.2011 / 14:15
1

Connection: keep-alive, close não é válido HTTP 1.1, já que exatamente um token de conexão é permitido, então eu esperaria que esse cabeçalho fosse ignorado e o keep-alive ainda estivesse ativo; no HTTP 1.0, a tag "Connection" significa algo completamente diferente.

Não deve haver diferença técnica se a conexão é "reciclada" ou não, e você deve deixar essa escolha para o navegador. Jogar com tempos limite de FIN quase nunca é uma boa ideia.

    
por 28.02.2011 / 14:19