it-swarm.com.ru

В чем разница между fastcgi и fpm?

Я пытаюсь установить php с fpm на macports. Я где-то читал, что fpm означает диспетчер процессов FastCGI. Означает ли это, что fastcgi и fpm одинаковы? Если они одинаковы, то почему у нас есть два разных варианта macports для php, а именно "php5 + fastcgi" и "php5 + fpm"

107
Deepan Chakravarthy

FPM - менеджер процессов для управления FastCGI SAPI (Server API) в PHP.

По сути, это заменяет необходимость чего-то вроде SpawnFCGI . Он порождает дочерние элементы FastCGI адаптивно (что означает запуск большего, если этого требует текущая нагрузка).

В противном случае между ним и FastCGI нет большой разницы (конвейер запросов от начала запроса до конца одинаков). Это просто для того, чтобы упростить его реализацию.

88
ircmaxell

То, что говорит Энтони, абсолютно правильно, но я хотел бы добавить, что ваш опыт, вероятно, покажет гораздо лучшую производительность и эффективность (не из-за fpm- vs -fcgi, а больше из-за реализации вашего httpd).

Например, у меня был четырехъядерный компьютер, на котором работали lighttpd + fcgi. Я перешел на 16-ядерную машину, чтобы справиться с ростом, и взорвались две вещи: RAM использование и segfaults. Я обнаружил, что перезагружаю lighttpd каждые 30 минут, чтобы поддерживать работу сайта.

Я переключился на php-fpm и nginx, и использование RAM упало с> 20 ГБ до 2 ГБ. Сегфаулты тоже исчезли. Проведя некоторые исследования, я узнал, что lighttpd и fcgi плохо ладят на многоядерных машинах под нагрузкой, а также имеют проблемы с утечкой памяти в некоторых случаях.

Это связано с тем, что php-fpm лучше, чем fcgi? Не совсем, но как вы подключаетесь к php-fpm, кажется, намного эффективнее, чем то, как вы работаете через fcgi.

50
spacemonkey