soquetes de domínio PostgreSQL UNIX vs sockets TCP

votos
41

Pergunto-me se as conexões de soquete de domínio UNIX com o PostgreSQL são mais rápidos, em seguida, as conexões TCP de localhost em alta taxa de simultaneidade e se isso acontecer, por quanto?

Publicado 02/11/2008 em 22:50
fonte usuário
Em outras línguas...                            


5 respostas

votos
-3

sockets TCP sobre localhost são geralmente implementados utilizando soquetes de domínio UNIX, então a resposta na maioria dos sistemas é neglijable a nenhum. No entanto, este não é padrão de qualquer forma - é apenas como normalmente é feito, portanto, você não deve depender disso.

Respondeu 02/11/2008 em 23:07
fonte usuário

votos
29

soquetes de domínio UNIX deve oferecer melhor desempenho do que sockets TCP mais de loopback Interface (menos cópia de dados, menos trocas de contexto), mas eu não sei se o aumento de desempenho pode ser demonstrado com PostgreSQL.

Eu encontrei uma pequena comparação sobre a lista de discussão FreeBSD: http://lists.freebsd.org/pipermail/freebsd-performance/2005-February/001143.html .

Respondeu 02/11/2008 em 23:21
fonte usuário

votos
4

afaik, soquete do domínio Unix (UDS) funcionam como tubos do sistema e enviar dados apenas, não enviar soma de verificação e outras informações adicionais, não use três vias aperto de mão como soquetes TCP ...

ps: talvez UDS será mais rápido

Respondeu 02/11/2008 em 23:24
fonte usuário

votos
5

Acredito que soquetes de domínio UNIX em teoria dar um melhor rendimento do que sockets TCP sobre a interface de auto-retorno, mas na prática a diferença é provavelmente insignificante.

Dados transitadas soquetes de domínio UNIX não tem que ir para cima e para baixo através das camadas da pilha IP.

re: a resposta de Alexander. AFAIK você não deve ter qualquer switch mais de um contexto ou copiar dados em cada direção (ou seja, para cada read()ou write()), daí porque eu acredito que a diferença será negligble. O IP não necessário copiar o pacote que se move entre as camadas, mas tem de manipular as estruturas de dados internas para adicionar e remover cabeçalhos de pacote de camada superior.

Respondeu 02/11/2008 em 23:26
fonte usuário

votos
45

Postgres núcleo desenvolvedor Bruce Momjian tem um blog sobre este tema . Estados Momjian, "comunicação soquete do domínio Unix é consideravelmente mais rápido." Ele mediu o desempenho da rede de consulta mostrando que o soquete do domínio local foi de 33% mais rápido do que usando a pilha TCP / IP.

Respondeu 24/08/2012 em 01:01
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more