3

我正在尝试在带有 PHP7 和带有 FastCGI PM 的 nginx 的 docker 容器中构建这个 symfony2 应用程序。

每次应用程序执行时,我都会在 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
4

3 回答 3

3

万一有人好奇,或者有同样的问题,我终于找到了问题,这不是我所期望的。当我为 PHP7 设置这个项目时,我无法使用我通常拥有的标准 linux 发行版,我必须自己添加所有配置文件。

经过艰苦的分析我的代码,我发现确切的行,即停止,是我在一个地方运行 get_browser() ( http://php.net/manual/en/function.get-browser.php ) kernel.controller 监听器。由于我在容器中设置 php 配置时使用的 browscap.ini 文件,get_browser() 出现了性能问题。我想,出于某种原因,我使用的 browscap.ini 文件存在解析问题或其他问题。我用 lite_php_browscap.ini 版本对其进行了更改,现在它运行非常非常快,没有问题。

在此处输入图像描述

于 2015-10-29T03:12:02.260 回答
1

最近也一直忙于一个盒子里的 Symfony 性能。以下最近的文章是我能找到的最好的回顾:

http://by-examples.net/2014/12/09/symfony2-on-vagrant.html

于 2015-10-29T14:18:00.177 回答
0

这是因为vendorSymfony 的目录。它需要太多的 IO 操作。并且 VirtualBox 同步文件夹的性能非常慢 的基准

您可以将vendor目录移到同步文件夹之外。就像我下面的方式:
这是我的问题

但是,最后,我没有最好的解决方案。所以,我现在已经转移到纯 linux环境来编写我的代码。

于 2015-10-25T23:54:14.883 回答