UNIXソケットとTCPポートのパフォーマンス


46

php-fpmの例:

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

TCPポートでUNIXソケットベースのリスナーを使用する場合、パフォーマンスに大きな違いはありますか?(PHPだけでなく、一般的なものです。サービスごとに異なりますか?)

回答:


42

UNIXドメインソケットは、ループバックインターフェイス上のTCPソケットよりも優れたパフォーマンスを提供する必要があります(データのコピーが少なくなり、コンテキストスイッチが少なくなります)。

ただし、ソケットは同じサーバーで実行されているプログラムからのみ到達可能であり(ネットワークサポートがないことは明らかです)、プログラムにはソケットファイルにアクセスするために必要なアクセス許可が必要です。


25

TCPを使用している場合は、ネットワークスタック全体も使用しています。同じマシン上にいる場合でも、ネットワークスタックと関連プロトコルを使用するためにパケットがカプセル化およびカプセル化解除されることを意味します。

UNIXドメインソケットを使用する場合、他の方法で必要とされるすべてのネットワークプロトコルを使用する必要はありません。ソケットは、ハードドライブ上のiノードによってのみ識別されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.