Conexões TCP não fechadas em CLOSE_WAIT para vários processos

3

Tenho cluster de várias máquinas conectadas na rede de 10GBE (NICs são Intel 82599EB 10GBE SFI / SFP +) em execução no Debian 6.0 e enfrentei problema de desligar conexões TCP no estado CLOSE_WAIT. Eu sei que, em teoria, a conexão no estado CLOSE_WAIT deve ser explicitamente fechada pelo aplicativo, mas no meu caso pelo menos dois aplicativos diferentes geram essas conexões desligadas e acho que o problema está em outra coisa.

No início, este problema foi reproduzido pelo Cassandra executando como daemon no processo 'jsvc'. Um nó do Cassandra ("servidor") não fechou a conexão que foi fechada do lado de outro nó que iniciou essa conexão ("cliente"). Depois disso, executei o teste TCP_CRR 'netperf' e recebi uma mensagem de erro:

netperf -H 172.15.2.166 -t TCP_CRR -l -5 -D TCP Connect/Request/Response TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.15.2.166 (172.15.2.166) port 0 AF_INET : demo send_tcp_conn_rr: data recv error: Connection reset by peer

Com a conexão TCP suspensa no estado CLOSE_WAIT na máquina 172.15.2.166 com 1 byte estranho em Recv-Q.

tcp 1 0 172.15.2.166:12865 172.15.2.161:42863 CLOSE_WAIT

Eu atualizei o driver 'ixgbe' para o último 3.9-NAPI, mas esse problema ainda persiste e agora me pergunto o que mais pode causar o problema?

    
por anglerhood 25.05.2012 / 18:12

1 resposta

2

  1. Suas anotações indicam que o servidor viu FIN seguido por RST do cliente
    e, muito provavelmente, o servidor-aplicativo não fechou corretamente
  2. Por qualquer motivo, se você não tem certeza de qual aplicativo a conexão pertence,
    Use lsof -n | grep CLOSE.WAIT
  3. Se isso é Cassendra, você pode querer verificar
    essa pergunta do StackOverflow, muitos arquivos abertos da cassandra
por 25.05.2012 / 18:49