Чем отличается использование PHP-FPM через сокет Unix против сокета TCP / IP?

Есть два способа запуска PHP-FPM. Я знаю, что это не пуленепробиваемый в технологии, но каковы плюсы и минусы обоих методов?

8

Решение

Разница в основном заключается в дополнительных затратах на использование полного сетевого стека для «упаковки» и «распаковки» каждой части данных.
Имейте в виду, что накладные расходы незначительны для большинства развертываний

  • Использование сокета (например, listen = ‘/tmp/php-fpm.sock’) имеет смысл, когда и front-end (например, Nginx), и php-fpm находятся в одном поле и

    1. У вас есть возможность масштабировать по горизонтали как фронт, так и бэкэнд вместе (скажем, вы создаете контейнер с обоими, и вы можете создать больше контейнеров, каждый с рабочей парой) или
    2. Единственный вариант — масштабировать по вертикали тот «ящик», который вы используете (например, вы добавляете больше ЦП, ОЗУ и т. Д.)
  • Использование соединения TCP (например, listen = 127.0.0.1:9000) имеет смысл, если вы хотите разъединить переднюю и заднюю части, например, если вы решите расширить свою среду, имея единый Nginx, принимающий соединения и передача работы по сети в кластер коробок php-fpm

Каждая среда отличается, поэтому, как всегда, единственно верный вариант — начать с одной установки, которая кажется правильной, провести нагрузочное тестирование и продолжать измерять производительность, чтобы вы могли попробовать разные варианты по мере изменения требований к нагрузке (обычно тот, который дешевле в реализации или легче поддерживать, поскольку оба являются надежными, проверенными в бою подходами)

10

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]