Продуктивність unix-сокетів і TCP-портів


46

Наприклад, на php-fpm:

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

Чи є якісь великі відмінності в роботі між використанням слухачів на основі сокетів через портів TCP? (Не тільки для PHP, але і взагалі. Чи відрізняється вона для кожної служби?)

Відповіді:


42

Розетки домену UNIX повинні забезпечити кращу продуктивність, ніж TCP-сокети через інтерфейс зворотного зв'язку (менше копіювання даних, менше контекстних комутаторів).

Будьте обачні, хоча ці сокети доступні лише з програм, що працюють на одному сервері (очевидно, що немає мережевої підтримки), і що програми повинні мати необхідні дозволи для доступу до файлу сокета.


25

Коли ви використовуєте TCP, ви також використовуєте весь стек мережі. Навіть якщо ви знаходитесь на одній машині, це означає, що пакети інкапсульовані та декапсульовані для використання мережевого стеку та відповідних протоколів.

Якщо ви використовуєте сокети домену unix, ви не будете змушені проходити всі мережеві протоколи, необхідні в іншому випадку. Розетки ідентифікуються виключно за допомогою входів на вашому жорсткому диску.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.