Решил я все завернуть в контейнеры докера на проде. Для разработки уже давно перешли на докер.
Запустилось все отлично, конфиги перенес с прода, поправил только пути.
Но стали поступать жалобы что стал тормозить сайт. Проверил, действительно скорость ответа увеличилась в 2(!!) раза. php очень прилично начал есть CPU, примерно так же в 2 раза больше. По ОП изменений нет.
Начал искать причину, методом тыка переводил сервисы из докера на железку. Так и выяснил, что nginx+php-fpm прекрасно работают со всеми контейнера докера и сайт не тормозит если они не в контейнере...
Для визуализации два графика из яндекс танка
Железо
Докер
Dockerfile nginx
FROM nginx:1.17.4
ARG SERVER_UID
RUN usermod -u $SERVER_UID www-data && groupmod -g $SERVER_UID www-data
COPY ./config /etc/nginx
RUN ln -sf /dev/stdout /var/log/nginx/site.ru.access.log \
&& ln -sf /dev/stderr /var/log/nginx/site.ru.error.log \
Dockerfile php-fpm
FROM php:7.2.34-fpm
## Install dependeses
RUN apt-get update && mkdir -p /usr/share/man/man1 && \
apt-get install --yes --no-install-recommends git unzip wget mc ssh \
default-mysql-client default-jdk default-jre locales ghostscript \
libssl-dev \
zlib1g-dev libzip-dev libicu-dev libpng-dev libxml2-dev libldap2-dev libmemcached-dev libmagickwand-dev
RUN sed -i -e 's/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/' /etc/locale.gen && \
locale-gen
ENV LANG ru_RU.UTF-8
ENV LANGUAGE ru_RU:en
ENV LC_ALL ru_RU.UTF-8
##Configure php extension
RUN docker-php-ext-configure intl
##Install php extension
RUN docker-php-ext-install zip gd mbstring pdo_mysql soap intl
RUN pecl install redis memcached imagick
RUN docker-php-ext-enable redis memcached imagick
RUN docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
docker-php-ext-install ldap
RUN docker-php-ext-install calendar && docker-php-ext-enable calendar
ENV EXT_MONGODB_VERSION=1.3.4
RUN docker-php-source extract \
&& git clone --branch $EXT_MONGODB_VERSION --depth 1 https://github.com/mongodb/mongo-php-driver.git /usr/src/php/ext/mongodb \
&& cd /usr/src/php/ext/mongodb && git submodule update --init \
&& docker-php-ext-install mongodb \
&& rm -rf /usr/src/php/ext/mongodb
RUN apt-get autoremove -y \
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* /usr/share/man/man1/* /var/cache/apt/archives/* \
&& docker-php-source delete && rm -rf ~/.pearrc
## Install Composer
#ENV COMPOSER_HOME=/var/www/.compose
RUN curl -sS https://getcomposer.org/installer \
| php -- --install-dir=/usr/local/bin --filename=composer --version=1.10.19
RUN composer diagnose
## Set user uid
ARG SERVER_UID
RUN usermod -u $SERVER_UID www-data && groupmod -g $SERVER_UID www-data
WORKDIR /var/www/html
В чем может быть причина?