No Linux, "/proc/sys/net/ipv4/tcp_keepalive_time" tem impacto no cliente e no servidor?

No Linux, "/proc/sys/net/ipv4/tcp_keepalive_time" tem impacto no cliente e no servidor?

Temos uma máquina rodando em Linux onde estamos expondo e também consumindo serviços da web baseados em SOAP que usam configurações de Keep Alive. Agora, quando alterarmos o valor do tempo limite de manutenção do TCP definindo "/proc/sys/net/ipv4/tcp_keepalive_time" no Linux, isso afetará os clientes e servidores TCP em execução nesta caixa Linux?

Informações adicionais: Usamos endpoints apache camel-cxf implantados em apache karaf (servicemix) para expor e consumir serviços da web baseados em SOAP.

Responder1

O suporte integrado do kernel Linux para TCP keepalive afetatodosSoquetes TCP habilitados para keepalive.

Porém, o keepalive do TCP não está habilitado por padrão: os aplicativos devem solicitar explicitamente o controle de keepalive para seus soquetes usando a setsockoptinterface.

Você pode verificar se o keepalive está habilitado em um soquete específico usando o netstatcomando com a -o, --timersopção:

Aqui você pode ver que o mesmo processo pode abrir diferentes soquetes de rede em ambos os modos:

# netstat -anpo | grep 8999
tcp        0      0 10.10.171.44:48744         10.10.139.30:8999          ESTABLISHED 18232/java          keepalive (83.39/0/0)

# netstat -anpo | grep 8009
tcp        0      0 10.10.171.44:8009          10.10.171.42:40947         ESTABLISHED 18232/java          off (0.00/0/0)

informação relacionada