O que o TCP: muitos soquetes órfãos significam?

5

Quando eu uso o dmesg para ver as mensagens do kernel do Linux, vejo uma inundação de ....

TCP: muitos soquetes órfãos

mensagens. Meu palpite é que esses soquetes estão em volta de TIME_WAIT após serem fechados e estão esperando para serem esclarecidos. Estou interessado em saber se isso afetaria os serviços em execução nesses servidores.

    
por andrew pate 29.08.2014 / 11:08

2 respostas

5

No LARTC HOWTO:

/proc/sys/net/ipv4/tcp_max_orphans

Maximal number of TCP sockets not attached to any user file handle, 
held by system. If this number is exceeded orphaned connections are
reset immediately and warning is printed. This limit exists only to
prevent simple DoS attacks, you _must_ not rely on this or lower the
limit artificially, but rather increase it (probably, after increasing
installed memory), if network conditions require more than default value,
and tune network services to linger and kill such states more aggressively.

Let me remind you again: each orphan eats up to  64K of unswappable memory.

A implementação da função que limita o número de órfãos é aqui .

    
por 29.08.2014 / 13:08
2

A causa possível deste erro é a falta de memória do soquete do sistema. Ou você precisa aumentar a memória do soquete (net.ipv4.tcp_mem) ou descobrir a causa do consumo de memória

        [root@test ~]# cat /proc/sys/net/ipv4/tcp_mem
         362688  483584  725376

Então aqui no meu sistema você pode ver 725376 (páginas) * 4096 = 2971140096 bytes / 1024 * 1024 = 708 megabytes

Portanto, este 708 megabyte de memória é usado pelo aplicativo para envio e recebimento de dados, bem como utilizado pela minha interface de loopback.Se em qualquer estágio esse valor alcançado nenhum soquete adicional pode ser feito até que essa memória seja liberada do aplicativo que são segurando socket aberto que você pode determinar usando netstat -antulp.

    
por 29.08.2014 / 13:51

Tags