Leistung von Unix-Sockets gegenüber TCP-Ports

46

Zum Beispiel auf php-fpm:

#listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock

Gibt es wesentliche Leistungsunterschiede zwischen der Verwendung von Unix-Socket-basierten Listenern über TCP-Ports? (Nicht nur für PHP, sondern allgemein. Ist es für jeden Dienst anders?)

Jason
quelle

Antworten:

25

Wenn Sie TCP verwenden, verwenden Sie auch den gesamten Netzwerkstapel. Selbst wenn Sie sich auf demselben Computer befinden, bedeutet dies, dass Pakete gekapselt und entkapselt werden, um den Netzwerkstapel und die zugehörigen Protokolle zu verwenden.

Wenn Sie Unix-Domain-Sockets verwenden, müssen Sie nicht alle ansonsten erforderlichen Netzwerkprotokolle durchgehen. Die Sockets werden ausschließlich durch die Inodes auf Ihrer Festplatte identifiziert.

Silverrocker
quelle