【发布时间】:2014-03-25 08:45:26
【问题描述】:
我在生产环境中遇到了 Symfony 的一些问题。当我检查 Symfony 分析器的时间线时,我可以看到请求平均花费了大约 1000 毫秒。请求本身(因为 kernel.request 事件触发)花费的时间不到一半。每个请求的初始化时间在 500-700 毫秒之间,我不知道如何将其减少到正常水平。在我的本地机器初始化时间大约是 100 毫秒。 Symfony 在生产服务器中运行在 VPS(Ubuntu Server 12.04,2GB 内存)中。我解释说“初始化时间”是从前端控制器开始运行到在 HttpKernel::handleRaw 中触发 kernel.request 事件的时间。如果我错了,请纠正我
具体来说,我的问题是:我可以做些什么来减少初始化时间?
我搜索了这个问题,发现有人通过禁用 xDebug(在我的服务器上禁用)解决了这个问题。我尝试了一些我发现的其他“提高性能”的东西,比如将 realpath_cache_size 设置为 1024k(它是 16k)或 apc.stat 设置为 0,但没有运气。任何帮助都将不胜感激,因为我需要该应用程序能够更好地满足要求。我将来自 Symfony 分析器的 PHP 配置留在这里。谢谢
PHP configuration:
PHP version 5.4.25-1+sury.org~precise+2
Xdebug disabled
PHP acceleration enabled
XCache disabled
APC enabled
Zend OPcache disabled
EAccelerator disabled
编辑:我安装了 xhprof,但我似乎遇到了 APC 问题。当 APC 工作时,问题就解决了(初始化时间减少到大约 50 毫秒),但有时它不起作用,整个请求需要 1 秒。我已将 apc.ttl 设置为 3600,但如果我等待几秒钟并请求相同的 URL,那么这是第一次缓存未命中。 apc.stat=0 apc.ttl=3600 apc.shm_size=128M apc.user_ttl=3600
【问题讨论】:
-
嗨!是的,我做到了,它略有改善。我安装了 xhprof,似乎我在使用 APC 时遇到了问题。当 APC 工作时,问题就解决了(初始化时间减少到大约 50 毫秒),但有时它不起作用,整个请求需要 1 秒。我已将 apc.ttl 设置为 3600,但如果我等待几秒钟并请求相同的 URL,APC 将不适用。 apc.stat=0 apc.ttl=3600 apc.shm_size=128M apc.user_ttl=3600
-
你在 prod 环境中使用 profiler 吗?
标签: performance symfony