首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我的Symfony 2.0站点在带有Linux主机的Vagrant上运行缓慢?

为什么我的Symfony 2.0站点在带有Linux主机的Vagrant上运行缓慢?
EN

Stack Overflow用户
提问于 2012-08-28 22:23:13
回答 3查看 12.6K关注 0票数 17

我有一个Symfony 2.0应用程序,使用Vagrant在Linux来宾操作系统和主机操作系统(Ubuntu)上运行。然而,它的运行速度很慢(例如,页面加载需要几秒钟,通常超过10秒),我不知道为什么。我的同事在本地运行该站点,而不是在Vagrant VM上运行,运行速度更快。

我在其他地方读到过,如果没有启用NFS,Vagrant VM运行非常慢,但我已经启用了NFS。我也在使用APC缓存来尝试提高速度,但问题仍然存在。

我使用http://webmozarts.com/2009/05/01/speedup-performance-profiling-for-your-symfony-app上的指令对我的站点运行了xdebug,但是我不清楚从哪里开始分析来自这里的数据。我已经在KCacheGrind中打开它,并在“Incl”下查找高数字。和"Self",但这表明php::session_start需要相当长的时间。

对于我应该在这里尝试什么有什么建议吗?对于这个稍微宽泛的问题,很抱歉,但我被难住了!

EN

回答 3

Stack Overflow用户

发布于 2012-08-29 05:54:35

ATM机,基本上不会把你的网站代码放在/vagrant共享文件夹上。因为它是在你的VM和主机O/S之间共享的,所以它比较慢;而且我没有找到任何有效的解决方案来获得良好的性能。我们使用的解决方案是从经典的/var/www为我们的开发应用程序提供服务,并使用rsync使它们与我们的本地副本保持同步。

票数 5
EN

Stack Overflow用户

发布于 2014-12-06 20:08:51

通过遵循本文的说明,Speedup Symfony2 on Vagrant boxes帮助我解决了这个问题,将我的Symfony2项目上的页面加载从6-10秒减少到1秒。基本上,所有的修复方法都是使用NFS来设置主机和来宾(流浪虚拟机)之间的同步类型,而不是使用非常慢的VirtualBox共享文件夹系统。

另外,将下面的代码添加到Symfony2项目的AppKernel.php中,将缓存和日志目录更改为vagrant机器上的共享内存目录(/dev/shm),而不是将它们写入NFS共享,因此它可以更好地提高页面加载速度。

代码语言:javascript
复制
<?php

class AppKernel extends Kernel
{
    // ...

    public function getCacheDir()
    {
        if (in_array($this->getEnvironment(), array('dev', 'test'))) {
            return '/dev/shm/appname/cache/' .  $this->getEnvironment();
        }

        return parent::getCacheDir();
    }

    public function getLogDir()
    {
        if (in_array($this->getEnvironment(), array('dev', 'test'))) {
            return '/dev/shm/appname/logs';
        }

        return parent::getLogDir();
    }
}
票数 3
EN

Stack Overflow用户

发布于 2012-10-12 17:42:32

我使用sshfs在主机操作系统和虚拟机(windows的扩展驱动器)之间共享目录,它比本机VBox目录共享快得多

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12161425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档