Você está executando um servidor da Web que é acessado por navegadores de vários dispositivos móveis.
Devido à maneira como o TCP / IP funciona, as conexões não podem ser fechadas imediatamente. Os pacotes podem chegar fora de ordem ou ser retransmitidos após a conexão ter sido fechada. CLOSE_WAIT indica que o terminal remoto (outro lado da conexão) fechou a conexão. TIME_WAIT indica que o terminal local (este lado) fechou a conexão. A conexão está sendo mantida de forma que qualquer pacote atrasado possa ser correspondido à conexão e manipulado apropriadamente. As conexões serão removidas quando expirarem dentro do período padrão de quatro minutos.
No entanto, o número ao lado de sua estatística TIME_WAIT, 646750, é extremamente excessivo. Isso significa que 646750 conexões foram fechadas nos últimos 4 minutos, o que faz 2694 por segundo! Evidentemente, alguns desses dispositivos móveis estão com problemas de funcionamento e estão bombardeando seu servidor com conexões que não estão sendo corretamente fechadas do lado do cliente, ou que você está servindo número enorme de clientes (o que não faz sentido para um único servidor).
Se você não conseguir isolar quais dispositivos móveis ou aplicativos estão na causa do problema e para corrigi-los, você não controla o lado do cliente e só pode aliviar o problema no lado do servidor.
Um parâmetro que pode melhorar esse congestionamento é TcpTimedWaitDelay , descrito como:
Determines the time that must elapse before TCP can release a closed connection and reuse its resources. This interval between closure and release is known as the TIME_WAIT state or 2MSL state. During this time, the connection can be reopened at much less cost to the client and server than establishing a new connection.
Reducing the value of this entry allows TCP to release closed connections faster, providing more resources for new connections. However, if the value is too low, TCP might release connection resources before the connection is complete, requiring the server to use additional resources to reestablish the connection.
TcpTimedWaitDelay pode ser modificado pelo regedit em %código%. Ele contém o número de segundos a aguardar. O padrão é 240 segundos (4 minutos). A reinicialização é necessária se alterada.
Por exemplo, mudar para 30 segundos e 2694 conexões por segundo significa que apenas 80820 conexões estarão esperando para fechar. Esse número ainda é enorme, mas a alteração ainda reduzirá o uso de recursos de conexão.