socket di dominio UNIX PostgreSQL vs socket TCP

voti
41

Mi chiedo se le connessioni socket del dominio UNIX con PostgreSQL sono più veloci quindi le connessioni TCP da localhost a elevato tasso di concorrenza e se lo fa, di quanto?

È pubblicato 02/11/2008 alle 20:50
fonte dall'utente
In altre lingue...                            


5 risposte

voti
-3

socket TCP su localhost sono generalmente implementati usando socket di dominio UNIX, quindi la risposta sulla maggior parte dei sistemi è neglijable a nessuno. Tuttavia, questo non è standard in alcun modo - è proprio come di solito si fa, quindi non si deve dipendere da questo.

Risposto il 02/11/2008 a 21:07
fonte dall'utente

voti
29

socket di dominio UNIX dovrebbero offrire prestazioni migliori rispetto socket TCP su interfaccia di loopback (meno la copia dei dati, un minor numero di cambi di contesto), ma non so se l'aumento delle prestazioni può essere dimostrata con PostgreSQL.

Ho trovato un piccolo confronto sulla mailing list di FreeBSD: http://lists.freebsd.org/pipermail/freebsd-performance/2005-February/001143.html .

Risposto il 02/11/2008 a 21:21
fonte dall'utente

voti
4

afaik, socket di dominio unix (UDS) funziona come tubi dell'impianto ed inviare dati solo, di non inviare checksum e altre informazioni aggiuntive, non utilizzare a tre vie stretta di mano come socket TCP ...

ps: forse UDS sarà più veloce

Risposto il 02/11/2008 a 21:24
fonte dall'utente

voti
5

Credo che i socket di dominio UNIX in teoria dare una maggiore velocità di socket TCP sulla interfaccia di loopback, ma in pratica la differenza è probabilmente trascurabile.

I dati riportati socket di dominio UNIX non c'è bisogno di andare su e giù attraverso gli strati dello stack IP.

re: la risposta di Alessandro. Per quanto ne so non si dovrebbe ottenere qualsiasi interruttore più di un contesto o dati copiare in ogni direzione (vale a dire per ciascuna read()o write()), quindi, perché credo che la differenza sarà negligble. Lo stack IP non necessario copiare il pacchetto che si muove tra gli strati, ma non essere necessario manipolare strutture di dati interne per aggiungere e rimuovere le intestazioni dei pacchetti di strato superiore.

Risposto il 02/11/2008 a 21:26
fonte dall'utente

voti
45

Postgres nucleo sviluppatore Bruce Momjian ha bloggato su questo argomento . Stati Momjian, "comunicazione socket di dominio Unix è misurabile più veloce." Ha misurato le prestazioni della rete di query mostrando che la presa di dominio locale è stata del 33% più veloce rispetto all'utilizzo dello stack TCP / IP.

Risposto il 23/08/2012 a 23:01
fonte dall'utente

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