всем привет!
помогите победить проблему
есть проект на symfony (php 7.1), решил обернуть его в докер
есть контейнер (openvz) в котором стоит старая сборка проекта без докера, с абы как настроенным php-fpm
на там же сервере создал еще один контейнер (openvz), установил в него докер, и в докере запустил проект
все зависимости (elastic, mysql, redis) работают замечательно, а вот контейнер с php-fpm+nginx очень сильно грузит процессор, а именно php-fpm процессы
я уже в opcache повключал все самые опасные опции
все, что проект пишет, вынес в volume (symfony cache, кэш картинок пережатых)
вывел все логи в stdout/stderr
но все эти операции почти ничего не дали
при этом старый проект на этом же сервере работает практически незаметно для сервера
новый в докере сжирает половину CPU всего сервера (только процессы php-fpm)
публичный порт 80 слушает только контейнер proxy (nginx) (с ним проблем нет), proxy обращается к проекту через внутреннюю сеть докера (все сервисы в одном docker-compose файле)
включил slow_log в php на 3 секунды, пусто
Я попробовал запустить проект на отдельном openvz контейнере без докера. Установил тот же php-fpm с того же репозитория, все тоже самое (в общем выполнил руками свой же Dockerfile). Такой проблемы нет, все летает
Я попробовал запустить проект на голом сервере в докере, проблема есть, php грузит процессор и сжирает весь сервер
Пробовал отлаживать через xhprof, не увидел ничего криминального, проект конечно не очень оптимизирован, но без докера же тоже самое прекрасно работает
Сравнивал конфиги с официальным php-fpm, увидел только отличие в заданном output_buffers=4096 (у меня этот параметер отключен)
Похоже следующий шаг запустить php-fpm в официальном образе, пусть на коленке, но проверить, будет ли тормозить там
Не знаю куда еще копать. Все что проект записывает на диск вынесено в volumes. Логи только через stdout/stderr
Причем время ответа с докером не на много выше получается, но загрузка процессора при этом в разы (если не в 10 раз) больше