我在生产环境中遇到Symfony的一些问题。当我检查Symfony分析器的时间线时,我可以看到该请求平均花费大约1000毫秒。请求本身(因为kernel.request事件触发)占用的时间不到一半。每个请求的初始化时间在500-700毫秒之间,我不知道如何将其降低到正常水平。在我的本地机器初始化时间约为100毫秒。在生产服务器中,Symfony运行在VPS(Ubuntu Server 12.04,2GB内存)中。我解释说“初始化时间”是自前控制器开始运行之前的时间,直到在HttpKernel :: handleRaw中触发kernel.request事件。如果我错了,请纠正我
具体我的问题是:我可以做些什么来减少初始化时间?
我用Google搜索了这个问题,我发现有人通过禁用xDebug(在我的服务器上禁用)解决了这个问题。我尝试了一些其他“改进性能”的东西,我发现像设置realpath_cache_size到1024k(它是16k)或apc.stat到0没有运气。任何帮助都会非常感激,因为我需要应用程序以更好地满足要求。我从Symfony profiler离开这里我的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
答案 0 :(得分:3)
在SO中有一些类似的问题 - 这是我之前发现的有用的问题:
Symfony2 Slow Initialization Time
此外,这里有一组有趣的幻灯片讨论SF2性能调整:
http://slides.seld.be/?file=2011-10-20+High+Performance+Websites+with+Symfony2.html#24
希望这会有所帮助:)