Performance Symfony2-共享主机上的引导速度非常慢

Performance Symfony2-共享主机上的引导速度非常慢,performance,symfony,Performance,Symfony,我现在面临一个大问题——symfony需要7-10秒来引导。一些研究表明,这是因为symfony一开始就包含了大量的文件 在我的本地机器上,我可以通过在php.ini上增加realpath\u cache\u size设置来修复它,但在共享主机上,这不起作用(因为open\u basedir限制生效,php在这种情况下禁用realpath cache) 现在我被卡住了,因为在如此巨大的引导延迟下,应用程序显然不可用。 有人有这个问题吗。。如何修复它?有很多方法可以固定symfony引导 一些提示

我现在面临一个大问题——symfony需要7-10秒来引导。一些研究表明,这是因为symfony一开始就包含了大量的文件

在我的本地机器上,我可以通过在php.ini上增加realpath\u cache\u size设置来修复它,但在共享主机上,这不起作用(因为open\u basedir限制生效,php在这种情况下禁用realpath cache)

现在我被卡住了,因为在如此巨大的引导延迟下,应用程序显然不可用。
有人有这个问题吗。。如何修复它?

有很多方法可以固定symfony引导

一些提示:

  • 确保使用“prod”环境(以及生产设置:禁用调试和分析、启用缓存、减少详细日志)
  • 在高QPS下,不要使用默认的PHP会话处理程序,它在用户的会话文件上使用文件锁,这不允许Parralized查询(如果经常使用Ajax,可能会造成很大的伤害)
  • 使用文件系统进行缓存可能会非常慢(尤其是在共享主机上):将缓存目录放在tmpfs挂载点下,或者覆盖缓存后端,以便使用文件系统以外的内容(请参阅)
请参阅以下清单,其中介绍了symfony2应用程序生产部署的基础知识:

这种情况是否仅在清理缓存后的第一次发生,还是在每次请求时发生?您是使用DEV还是PROD环境?这是对每个请求的检查,PROD环境首先要检查的是DEV env日志文件。我在共享主机上使用Sf2.0.x和Sf2.3.x,网站很少需要1秒才能加载。你对每一个请求都做了大量的逻辑分析吗?我只是用新的symfony 2.4包来测试。同样,如果你再次阅读我的问题,我知道问题在哪里(open_basedir+realpath_cache问题),我只是不知道如何在shared上克服这个问题hosting@PavelDubinin你是如何找到Symfony执行的文件的?我也想在我们的设置中检查一下。使用文件系统可能会非常慢。请提供一个解决方案或至少一个建议。通常,我会为缓存目录创建一个tmpfs装载点,但您可以覆盖缓存后端并使用,例如memcache。本文将向您展示一些您可以做的示例:我的问题实际上是open_basedir(请参阅)。它不允许缓存realpath,我只是不知道如何修复它it@MartinRichard:我建议您将此注释添加到您的答案中。@PavelDubin Symfony将其核心功能“打包”到单个“引导”文件中,您确定已启用此功能吗?您知道在哪里调用realpath()吗?是由PHP执行(因为OpenBaseDir特性)还是由类加载器执行?在后一种情况下,您应该能够编写解决方案或使用替代类加载器。