Symfony2 应用程序总是在 kernel.request 和 kernel.controller 之间等待 3 秒
Symfony2 app always has a 3 second wait between kernel.request and kernel.controller
我正在尝试在 docker 容器中构建此 symfony2 应用程序 PHP7 并在 nginx 中使用 FastCGI PM。
每次应用程序执行时,我都会在 kernel.request 和 kernel.controller 之间得到这个神秘的 3 秒无法解释的执行时间。
您可以在此屏幕截图中看到奇怪的请求时间轴:
当我 运行 在我的 vagrant 机器上使用典型的 php5.5+apache2 配置时,这个应用程序没有这种行为,所以我不确定它是否与我的有关PHP 配置或 PHP7,但我想知道是否有人以前见过类似的东西并且知道这里会发生什么?
在此处编辑 docker_compose 配置:
cafe:
build: /opt/cafe
ports:
- "9981:80"
environment:
- "CAFE_CACHE_DIR=/tmp/cafe/cache"
- "CAFE_LOG_DIR=/var/log/cafe"
- "SF_ENV=local"
volumes:
- /var/log/php7:/var/log/php7
- /var/log/nginx:/var/log/nginx
这是因为Symfony的vendor
目录。它需要太多的IO操作。 VirtualBox 同步文件夹的性能非常非常慢 the benchmark。
您可以将 vendor
目录移动到同步文件夹之外。就像我下面的方式:
这是My question。
但是,最后,我没有最好的解决方案。所以,我现在已经转移到 纯 linux 环境来编写我的代码。
如果有人好奇,或者有同样的问题,我终于找到了问题,这不是我所期望的。当我为 PHP7 设置这个项目时,我无法使用我通常拥有的标准 linux 发行版,我必须自己添加所有配置文件。
经过艰苦的分析我的代码后,我发现停滞的确切行是我在 运行 get_browser() (http://php.net/manual/en/function.get-browser.php) kernel.controller听众。 get_browser() 由于我在容器中设置 php 配置时使用的 browscap.ini 文件而出现性能问题。我想,出于某种原因,我使用的 browscap.ini 文件存在解析问题或其他问题。我用 lite_php_browscap.ini 版本更改了它,现在它运行得非常非常快,没有问题。
最近也在忙着盒子里的Symfony性能。以下最近的文章是我能找到的最好的回顾:
我正在尝试在 docker 容器中构建此 symfony2 应用程序 PHP7 并在 nginx 中使用 FastCGI PM。
每次应用程序执行时,我都会在 kernel.request 和 kernel.controller 之间得到这个神秘的 3 秒无法解释的执行时间。
您可以在此屏幕截图中看到奇怪的请求时间轴:
当我 运行 在我的 vagrant 机器上使用典型的 php5.5+apache2 配置时,这个应用程序没有这种行为,所以我不确定它是否与我的有关PHP 配置或 PHP7,但我想知道是否有人以前见过类似的东西并且知道这里会发生什么?
在此处编辑 docker_compose 配置:
cafe:
build: /opt/cafe
ports:
- "9981:80"
environment:
- "CAFE_CACHE_DIR=/tmp/cafe/cache"
- "CAFE_LOG_DIR=/var/log/cafe"
- "SF_ENV=local"
volumes:
- /var/log/php7:/var/log/php7
- /var/log/nginx:/var/log/nginx
这是因为Symfony的vendor
目录。它需要太多的IO操作。 VirtualBox 同步文件夹的性能非常非常慢 the benchmark。
您可以将 vendor
目录移动到同步文件夹之外。就像我下面的方式:
这是My question。
但是,最后,我没有最好的解决方案。所以,我现在已经转移到 纯 linux 环境来编写我的代码。
如果有人好奇,或者有同样的问题,我终于找到了问题,这不是我所期望的。当我为 PHP7 设置这个项目时,我无法使用我通常拥有的标准 linux 发行版,我必须自己添加所有配置文件。
经过艰苦的分析我的代码后,我发现停滞的确切行是我在 运行 get_browser() (http://php.net/manual/en/function.get-browser.php) kernel.controller听众。 get_browser() 由于我在容器中设置 php 配置时使用的 browscap.ini 文件而出现性能问题。我想,出于某种原因,我使用的 browscap.ini 文件存在解析问题或其他问题。我用 lite_php_browscap.ini 版本更改了它,现在它运行得非常非常快,没有问题。
最近也在忙着盒子里的Symfony性能。以下最近的文章是我能找到的最好的回顾: