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
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
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
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.