Existem keepalives para conexões de socket?

1

Pré briefing:

Embora minha pergunta seja de propósito, estou lidando com o nginx se conectando ao php-fpm (fcgi), que é servido através de um socket local (/tmp/somesocket.socket).

O Nginx tem uma configuração para manter as conexões ativas nos fcgi backends ( link ).

É com isso que minha pergunta está relacionada.

Pergunta:

No linux, quando se faz conexão com sockets locais, existe algo como keepalives?

Ter uma conexão mantida viva removeria (até mesmo um pouquinho) alguma sobrecarga relacionada à criação / desmontagem da conexão?

Obrigado.

    
por anonymous-one 27.09.2013 / 21:35

1 resposta

5

Estou assumindo que você quer dizer soquetes locais unix aqui.

In linux, when making connection to local sockets, does such a thing as keepalives exist?

Não, as keepalives impedem o tempo limite do lado remoto. Como o host conhece o status de ambos os lados da conexão, um keepalive é redundante.

Would having a connection kept alive remove (even a tiny bit) some overhead related to creation / teardown of the connection?

Sim, com o custo de manter mais descritores de arquivos, o que provavelmente é um custo muito barato em termos práticos. A configuração de uma conexão e o fechamento incorrem em 5 chamadas de sistema (abrir e conectar no cliente, aceitar no servidor, fechar no cliente / servidor) que, mantendo a conexão, é evitado até que seja necessário.

    
por 28.09.2013 / 00:32