【问题标题】:Symfony 3 and Docker (nginx, php7.1-fpm mysql8) Performances low on WindowsSymfony 3 和 Docker (nginx, php7.1-fpm mysql8) 在 Windows 上的性能较低
【发布时间】:2017-06-08 00:56:58
【问题描述】:

我正在使用 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
  • 最后一张nginx图片
  • mysql:8.0.0

我使用 docker-compose 来构建这 3 个容器,这里是 docker-compose.yml :

front:
    image: nginx
    ports:
        - "81:80"
    links:
        - "engine:engine"
    volumes:
        - ".:/home/docker:ro"
        - "./docker/front/default.conf:/etc/nginx/conf.d/default.conf:ro"
engine:
    build: ./docker/engine/
    volumes:
        - ".:/home/docker:rw"
        - "./docker/engine/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro"
    links:
        - "db:db"
    working_dir: "/home/docker"

db:
    image: mysql:8.0.0
    ports:
        - "3306:3306"
    environment:
        - MYSQL_ROOT_PASSWORD=pwd
        - MYSQL_USER=myUSer
        - MYSQL_PASSWORD=pwd
        - MYSQL_DATABASE=bddProject

第一次没有缓存的时间是1700毫秒:

缓存的时间是:

一半时间是初始化时间:

那么什么样的问题会减慢我的项目的页面渲染速度? Docker 最新版本和 2 Go 与 Windows Hyper-v 系统。

感谢您的帮助。


所以我在没有 xdebug ant 的情况下制作了另一个图像,结果是一样的 (700ms 有缓存):

我的 Docker 文件:

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

所以它是 Docker 卷的窗口管理,所以@Geoffrey Brier 你知道微软是否计划改善这个性能问题? 有没有什么软的或者其他的可以改善的?

感谢您的帮助。

【问题讨论】:

    标签: nginx docker symfony php-7 mysql-8.0


    【解决方案1】:

    据我所知,有两件事是造成这些表现的原因:

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

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

    【讨论】:

    • 好的,谢谢,我会尝试不带 xdebug 的 fpm 看看是否有性能改进。 650 毫秒并不可怕,但我只想知道这是否正常。在生产中,我的服务器将在 linux 上,所以这不是真正的问题 ...
    • 我确认这是正常的。而且当延迟小于 2 秒时,开发显然是正确的;)顺便说一句,您的机器必须非常好才能获得这种结果,因为我的一些朋友不得不等待 5~10 秒才能在他们的窗口上显示页面.
    猜你喜欢
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2018-03-05
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多