为啥 Symfony 2 在我的环境中响应非常缓慢?
Posted
技术标签:
【中文标题】为啥 Symfony 2 在我的环境中响应非常缓慢?【英文标题】: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:有趣的是,配置页面在两个位置的加载速度一样快。
【参考方案1】:
检查您的 PHP 配置是否存在open_basedir
限制阻止您的统计缓存工作。 Symfony 会进行大量的fstat()
调用,如果这些调用没有被缓存,Symfony 会非常慢。您的符号链接也可能阻止统计缓存工作。如果您分析您的应用程序(并包含本机 PHP 函数),那么很明显是 fstat()
导致了您的问题。
在 PHP Bug #49383 有一些关于它的信息。
【讨论】:
在我的情况下,我同时拥有open_basedir = none
和safe_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
【讨论】:
以上是关于为啥 Symfony 2 在我的环境中响应非常缓慢?的主要内容,如果未能解决你的问题,请参考以下文章
PhoneGap + jQuery Mobile = 缓慢的点击响应时间