【问题标题】:Symfony2: How can "Initialization time" be reduced?Symfony2:如何减少“初始化时间”?
【发布时间】: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


【解决方案1】:

在 SO 中有一些类似的问题 - 这是我之前发现的一个有用的问题:

Symfony2 Slow Initialization Time

此外,这里有一组有趣的幻灯片讨论 SF2 性能调整:

http://slides.seld.be/?file=2011-10-20+High+Performance+Websites+with+Symfony2.html#24

希望这会有所帮助:)

【讨论】:

  • 谢谢。我发现了问题:每隔几秒钟清除一次 APC 我不知道为什么,因为我将它配置为 3600 秒的 TTL。我想我会就此提出一个新问题。
猜你喜欢
  • 2012-10-06
  • 2022-06-13
  • 2013-11-06
  • 2013-01-25
  • 1970-01-01
  • 2014-09-02
  • 2021-08-12
  • 2018-03-24
  • 1970-01-01
相关资源
最近更新 更多