Temos alguns sistemas de produção que foram recentemente convertidos em máquinas virtuais. Existe um aplicativo nosso que freqüentemente acessa um banco de dados MySQL e, para cada consulta, ele cria uma conexão, consulta e desconecta essa conexão.
Não é a maneira apropriada de consultar (eu sei), mas temos restrições que parece que não conseguimos contornar. Enfim, o problema é o seguinte: enquanto a máquina era um host físico, o programa funcionou bem. Depois de convertido em uma máquina virtual, percebemos problemas de conexão intermitentes com o banco de dados. Houve, em um ponto, mais de 24000 conexões de soquete no TIME_WAIT (no host físico, o máximo que vi foi 17000 - não é bom, mas não está causando problemas).
Gostaria que essas conexões fossem reutilizadas, para que não vejamos esse problema de conexão, e assim:
Questões:
É possível definir o valor de tcp_tw_reuse como 1? Quais são os perigos óbvios? Existe alguma razão para eu nunca fazer isso?
Além disso, existe outra maneira de obter o sistema (RHEL / CentOS) para impedir que tantas conexões entrem no TIME_WAIT ou que elas sejam reutilizadas?
Por fim, o que a alteração do tcp_tw_recycle faria e isso me ajudaria?
De antemão, obrigado!