【问题标题】:Why is Symfony 2 responding EXTREMELY slowly in my environment?为什么 Symfony 2 在我的环境中响应非常缓慢?
【发布时间】:2013-04-12 01:55:11
【问题描述】:

我有一个运行 Debian Squeeze 的 VMware 虚拟机。我所有的项目都在我的 Windows 机器上的一个文件夹中,Debian VM 可以通过 VMware 共享文件夹访问。这意味着我可以在我的 Windows 机器上使用适当的文本编辑器来处理我的项目,同时从 linux 环境中托管它们。我已经使用这个设置几个月了,在使用 PHP 或其他与开发相关的任务托管 Apache 站点时没有问题,直到我尝试了 Symfony

我现在在我的 htdocs 目录和我的 Windows 机器上共享了一个 Symfony 2 开箱即用演示的实例 (Symfony_Standard_Vendors_2.2.1.tgz)与虚拟机。我的 htdocs 目录如下所示:

htdocs
|`- Symfony
 `- Symfony_shared -> /mnt/hgfs/Dropbox/Symfony

Symfony 是位于 htdocs 文件夹中的实际物理目录,而 Symfony_shared 是指向我 Windows 机器上 Dropbox 文件夹的软链接。我必须重复;我以前从未遇到过这种方法的任何性能问题。

相同的文件系统

现在 - 当我在浏览器中访问 http://devmachine.local/Symfony/web/app_dev.php 并进入分析器时,我看到了这些数字:

总时间 83 毫秒
初始化时间 43 ms

非常好的数字。整个响应在不到 100 毫秒的时间内就准备好了。

链接

但是当我访问http://devmachine.local/Symfony_shared/app_dev.php 时,我在分析器中看到非常不同的数字:

总时间 6833 毫秒
初始化时间 4249 ms

谁能解释一下这些数字?什么是“初始化时间”,为什么超过 4 秒?请记住,这只是 Symfony 演示欢迎页面。我实际测试项目中的登录页面初始化时间为19秒,总时间为22秒。

我应该提一下,我还在两个目录中运行php app/console 进行了快速测试。在 Symfony 文件夹中,此命令会立即返回使用情况,而在 Symfony_shared 中则需要几秒钟才能响应。

我对 Symfony 文件夹所做的唯一更改是删除了 app_dev.php 中将流量限制为 127.0.0.1 的部分。


我在 Debian 6.0.7(挤压)上使用 Apache 2.4.4 和 PHP 5.4.14。

这是 Symfony_shared 欢迎页面分析器的屏幕截图:

【问题讨论】:

  • 如果你点击config.php你不会收到警告?
  • @cheesemacfly:不,只有通常的建议是禁用短打开标签并安装 PHP 加速器。
  • @cheesemacfly:有趣的是,配置页面在两个位置的加载速度一样快。

标签: php apache symfony vmware symfony-2.2


【解决方案1】:

检查您的 PHP 配置是否存在open_basedir 限制阻止您的统计缓存工作。 Symfony 会进行大量的fstat() 调用,如果这些调用没有被缓存,Symfony 会非常慢。您的符号链接也可能阻止统计缓存工作。如果您分析您的应用程序(并包含本机 PHP 函数),那么很明显是 fstat() 导致了您的问题。

在 PHP Bug #49383 有一些关于它的信息。

【讨论】:

  • 在我的情况下,我同时拥有open_basedir = nonesafe_mode = off,但我仍然没有看到性能提升.. APCu 已启用(通过 phpinfo 确认),有什么想法还有什么问题吗?跨度>
  • 这是跨符号链接吗?本地速度快吗?
  • (1) 是的。 /var/www/my-project(nginx 配置中的根目录)是指向真实路径的符号链接(2)它目前只在本地运行 - 我正在努力让我的开发环境运行得更快(现在我在 dev 中得到 7~12 秒似乎太多了)
【解决方案2】:

尝试将 PHP.ini 的 realpath_cache_size 设置为 > 1000 最近添加了一个 symfony 要求来解决这个问题:https://github.com/sensiolabs/SensioDistributionBundle/commit/cf0179711b24d84d4a29d71a4010540f4c990bd8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-04
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多