Назад | Перейти на главную страницу

php-fpm использует больше памяти, чем mod_php

Недавно я переместил приложение PHP5 с Apache 2.4 + mod_php на Apache 2.4 + php-fpm. Apache настроен на проксирование всех запросов * .php к php-fpm через сокеты домена Unix. Приложение требовало, чтобы настройки php увеличили лимит памяти до 384 МБ, что имело место при использовании mod_php, и этот параметр сохраняется в php-fpm.

После перехода на php-fpm некоторые запросы потребляют около 1 ГБ памяти, прежде чем будут уничтожены Linux OOM. Те же запросы в mod_php не потребляли такой же объем памяти и, следовательно, не были убиты.

Обратите внимание, что я уменьшил mpm события apache до 2 процессов и 8 потоков каждый. PM PHP-FPM настроен на ondemand и только 2 процесса. Я вижу, что в это время выполняется только этот запрос. Память процесса php-fpm продолжает неуклонно увеличиваться до 1 ГБ и уничтожается до того, как сможет вернуться.

У меня следующие вопросы: 1) Почему php-fpm превышает значение параметра memory_limit для php.ini, равное 384 МБ? 2) Если apache проксирует php-fpm с помощью сокета домена unix, имеет ли значение очистка буфера? Я полагаю, что нет. 3) Есть ли у вас рекомендации по поиску и устранению этой проблемы?