Symfony2 + Vagrant 性能慢,如何加速?

3

我开始使用vagrant和Symfony2.*来开发Web项目。我正在使用Windows,但性能非常慢,因为不支持nfs挂载。

我已将缓存放入内存中,给出了奇特的提升,禁用了xdebug(如此处所述)。然而,在Windows机器上,在dev环境下,页面仍需要超过14秒才能加载。任何帮助都将不胜感激。

Symfony >=2.3,PHP>= 5.4,Windows 7,Dell Precission m6700 quad-core i7/16GB/SSD

3个回答

9

我曾经遇到过类似的性能问题,尽管是在开发Drupal网站时(同样基于PHP)。最近我使用了Vagrant 1.5中引入的新功能rsync文件夹特性后,取得了相当大的成功。

如果你处理的文件数量较多(10,000-100,000),我发现内置的rsync-auto功能很难跟上。转换成这个巧妙的插件来使用,能够解救你的困境。正如vagrant rsync文件夹特性一样,gatling rsync插件也只提供单向同步(主机->客户机)。由于许多Drupal工具和compass在客户端生成文件,这个插件将有助于从客户机到主机同步更改。

如果你正在寻找一个比较:在这里你可以找到一篇关于rsync vs NFS的最近基准博客文章。


1
终于成功了!谢谢Sidney。我只有一个小问题。您需要在Web文件夹中发布资产(似乎与符号链接有些问题)。 - SimoneB
Simone有什么类型的问题? - PachinSV

1
  • 在Windows下,您绝对需要使用NFSRSYNC来共享文件夹。
  • RSYNC是一个好的解决方案,当自动模式被激活时,但它不是双向的

尝试使用这个config.yaml(用PuPHPet制作):https://github.com/comexpertise/PuPHPet-config-lamp-webdev 针对Windows进行了优化:使用NFS共享或RSYNC。

非常快但不免费:使用Vagrant VMWare插件将VirtualBox切换到VMWare(并使用NFS或RSYNC共享类型)。

另一种解决方案(最佳性能):需要禁用Vagrant共享文件夹以使用VM的本地文件系统,并配置您喜欢的IDE / FTP以使用SFTP,并简单上传修改后的文件(Netbeans可以自动上传新创建/修改的文件)

编辑:在阅读我的评论#2之前,请查看Vagrant的最新版本。您需要更快的速度吗?尝试VMware + Vagrant VMware插件,这是最好的(y)


你说得对。默认情况下,Vagrant的rsync功能不是双向的。我在我的答案中添加了更多信息,说明如何实现双向同步。 - Sidney Gijzen
是的 :) 但现在,最新版本的Vagrant中包含的新的本地共享系统可能是最好的解决方案(双向且非常快速),无需额外的软件/插件...尽情享受吧! - David DIVERRES
我仍然认为rsync比NFS快得多,至少在处理大型PHP框架(如Drupal)方面是如此。最近,Jeff Geerling对rsync和NFS进行了基准测试,其中rsync是明显的赢家:http://www.midwesternmac.com/blogs/jeff-geerling/nfs-rsync-and-shared-folder - Sidney Gijzen

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接