Symfony 3和Docker(nginx,php7.1-fpm mysql8)在Windows上的性能较低

Symfony 3和Docker(nginx,php7.1-fpm mysql8)在Windows上的性能较低,nginx,docker,symfony,php-7,mysql-8.0,Nginx,Docker,Symfony,Php 7,Mysql 8.0,我正在使用Docker处理Symfony 3项目,以下是堆栈: -自定义Php7.1FPM以下是DockerFile: FROM php:7.1.0-fpm MAINTAINER xxxxx xxxxxx <xxxx.xxxxxx@gmail.com> ENV PHP_APCU_VERSION 5.1.8 ENV PHP_XDEBUG_VERSION 2.5.0 RUN apt-get update \ && apt-get install -y \

我正在使用Docker处理Symfony 3项目,以下是堆栈:

-自定义Php7.1FPM以下是DockerFile:

FROM php:7.1.0-fpm
MAINTAINER xxxxx xxxxxx <xxxx.xxxxxx@gmail.com>
ENV PHP_APCU_VERSION 5.1.8
ENV PHP_XDEBUG_VERSION 2.5.0
RUN apt-get update \
    && apt-get install -y \
        libicu-dev \
        zlib1g-dev \
    && docker-php-source extract \
    && curl -L -o /tmp/apcu-$PHP_APCU_VERSION.tgz https://pecl.php.net/get/apcu-$PHP_APCU_VERSION.tgz \
    && curl -L -o /tmp/xdebug-$PHP_XDEBUG_VERSION.tgz http://xdebug.org/files/xdebug-$PHP_XDEBUG_VERSION.tgz \
    && tar xfz /tmp/apcu-$PHP_APCU_VERSION.tgz \
    && tar xfz /tmp/xdebug-$PHP_XDEBUG_VERSION.tgz \
    && rm -r \
        /tmp/apcu-$PHP_APCU_VERSION.tgz \
        /tmp/xdebug-$PHP_XDEBUG_VERSION.tgz \
    && mv apcu-$PHP_APCU_VERSION /usr/src/php/ext/apcu \
    && mv xdebug-$PHP_XDEBUG_VERSION /usr/src/php/ext/xdebug \
    && docker-php-ext-install \
        apcu \
        intl \
        mbstring \
        mysqli \
        xdebug \
        zip \
    && pecl install apcu_bc-1.0.3 \
    && docker-php-source delete \
    && php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/local/bin --filename=composer \
    && chmod +x /usr/local/bin/composer
第一次没有缓存的时间为1700毫秒:

使用缓存的时间为:

一半时间为初始化时间:

那么,什么样的问题会使我的项目的页面呈现变慢呢? Docker最新版本和2与Windows Hyper-v系统兼容

谢谢你的帮助


因此,我制作了另一张没有xdebug ant的图像,结果是一样的 (带缓存的700ms):

我的DockerFile:

FROM php:7.1.0-fpm
MAINTAINER XXXXX XXXXXX <XXXXXX.XXXXXX@gmail.com>
ENV PHP_APCU_VERSION 5.1.8
RUN apt-get update \
    && apt-get install -y \
        libicu-dev \
        zlib1g-dev \
    && docker-php-source extract \
    && curl -L -o /tmp/apcu-$PHP_APCU_VERSION.tgz https://pecl.php.net/get/apcu-$PHP_APCU_VERSION.tgz \
    && tar xfz /tmp/apcu-$PHP_APCU_VERSION.tgz \
    && rm -r \
        /tmp/apcu-$PHP_APCU_VERSION.tgz \
    && mv apcu-$PHP_APCU_VERSION /usr/src/php/ext/apcu \
    && docker-php-ext-install \
        apcu \
        intl \
        mbstring \
        mysqli \
        zip \
    && pecl install apcu_bc-1.0.3 \
    && docker-php-source delete \
    && php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/local/bin --filename=composer \
    && chmod +x /usr/local/bin/composer
来自php:7.1.0-fpm
维护者XXXXX XXXXXX
ENV PHP_APCU_版本5.1.8
运行apt获取更新\
&&apt-get-install-y\
图书馆发展\
zlib1g开发\
&&docker php源代码提取\
&&curl-L-o/tmp/apcu-$PHP\u apcu\u VERSION.tgzhttps://pecl.php.net/get/apcu-$PHP\u APCU\u VERSION.tgz\
&&tar xfz/tmp/apcu-$PHP\u apcu\u VERSION.tgz\
&&rm-r\
/tmp/apcu-$PHP\u apcu\u VERSION.tgz\
&&mv apcu-$PHP\u apcu\u VERSION/usr/src/PHP/ext/apcu\
&&docker php ext安装\
apcu\
国际\
mbstring\
mysqli\
拉链\
&&pecl安装apcu_bc-1.0.3\
&&docker php源代码删除\
&&php-r“readfile('https://getcomposer.org/installer“);”php--install dir=/usr/local/bin--filename=composer\
&&chmod+x/usr/local/bin/composer
这是Windows对Docker卷的管理造成的,所以@Geoffrey Brier你知道微软是否计划改善这个性能问题吗? 是否有一个软的或其他的方法来改善这一点


谢谢你的帮助。

据我所知,这些表演有两个原因:

  • Xdebug
  • Windows:这不是巨魔,但众所周知,Docker在Windows上处理容器卷的方式不如在Linux上高效

您有三种解决方案:努力找到一种稍微提高性能的方法,使用Linux(例如在VM中)或处理它:)

好的,谢谢,我将尝试使用不带xdebug的fpm,看看性能是否有改进。650毫秒并不可怕,但我只是想知道这是否正常。在生产中,我的服务器将在linux上,所以这不是一个真正的问题…我确认这是正常的。而且,当潜伏期<2秒时,明显正确地发展;)顺便说一句,你的机器一定很好,有这样的结果,因为我的一些朋友不得不等待5~10秒页面显示在他们的窗口。
FROM php:7.1.0-fpm
MAINTAINER XXXXX XXXXXX <XXXXXX.XXXXXX@gmail.com>
ENV PHP_APCU_VERSION 5.1.8
RUN apt-get update \
    && apt-get install -y \
        libicu-dev \
        zlib1g-dev \
    && docker-php-source extract \
    && curl -L -o /tmp/apcu-$PHP_APCU_VERSION.tgz https://pecl.php.net/get/apcu-$PHP_APCU_VERSION.tgz \
    && tar xfz /tmp/apcu-$PHP_APCU_VERSION.tgz \
    && rm -r \
        /tmp/apcu-$PHP_APCU_VERSION.tgz \
    && mv apcu-$PHP_APCU_VERSION /usr/src/php/ext/apcu \
    && docker-php-ext-install \
        apcu \
        intl \
        mbstring \
        mysqli \
        zip \
    && pecl install apcu_bc-1.0.3 \
    && docker-php-source delete \
    && php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/local/bin --filename=composer \
    && chmod +x /usr/local/bin/composer