Symfony2 +Vagrant 性能 - 运行缓慢 - 加速?
Posted
技术标签:
【中文标题】Symfony2 +Vagrant 性能 - 运行缓慢 - 加速?【英文标题】:Symfony2 +Vagrant performance - running slow - speeding up? 【发布时间】:2014-07-21 22:18:45 【问题描述】:我已经开始使用 vagrant 和 Symfony2.* 来开发 Web 项目。我用的是Windows,性能很慢,因为不支持nfs挂载。
我已将缓存放入内存,这提供了奇异的提升,禁用了 xdebug(如 here 发布的那样)。但是,在 Windows 机器上的开发环境中,页面仍然加载超过 14 秒。任何帮助将不胜感激。
Symfony >=2.3,php >= 5.4,Windows 7,Dell Precission m6700 四核 i7/16GB/SSD
【问题讨论】:
【参考方案1】:尽管在开发 Drupal 站点(也基于 PHP)时,我也遇到过同样的性能问题。最近我通过使用在 Vagrant 1.5 中引入的新 rsync folder feature 取得了相当大的成功。
如果您正在处理大量文件(10.000 - 100.000),我发现内置的 rsync-auto 功能很难跟上。切换到this neat little plugin 拯救了我的一天。就像 vagrant rsync 文件夹功能一样,gatling rsync 插件也只提供单向同步(主机 -> 来宾)。由于许多 Drupal 工具和指南针在客户机上生成文件,this plugin 将有助于同步客户机到主机的更改。
如果您正在寻找比较:here you can find a recent benchmark blog post on rsync vs NFS。
【讨论】:
终于成功了!谢谢你,西德尼,我只有一个小问题。您需要在网络文件夹中发布资产(似乎符号链接有一些问题) Simone 什么类型的问题?【参考方案2】:有一个很棒的插件可以在 Windows 上为 Vagrant 启用 NFS:vagrant-winnfsd
$ vagrant plugin install vagrant-winnfsd
https://github.com/GM-Alex/vagrant-winnfsd
【讨论】:
【参考方案3】: 在 Windows 下,您绝对需要使用 NFS 或 RSYNC 进行共享 带有 Vagrant 的文件夹。 当激活自动模式时,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 可以自动上传新创建/修改的文件)
编辑:请阅读我关于最新版本 Vagrant 的评论 #2。你需要更快的速度吗?试试 VMware + Vagrant VMware 插件,它是最好的(y)
【讨论】:
你是对的。开箱即用的 Vagrant rsync 功能不是双向的。我在我的答案中添加了一些关于如何实现双向同步的更多信息。 是的 :) 但是现在,最新版本的 Vagrant 中包含的新(本机)共享系统可能是现在最好的解决方案(双向且非常快速),无需额外的软件/插件......享受吧! 嗯,我仍然认为 rsync 比 NFS 快得多,至少在使用大型 PHP 框架(如 Drupal)时。最近 Jeff Geerling 对 rsync 与 NFS 进行了基准测试,其中 rsync 显然是赢家:midwesternmac.com/blogs/jeff-geerling/…以上是关于Symfony2 +Vagrant 性能 - 运行缓慢 - 加速?的主要内容,如果未能解决你的问题,请参考以下文章
Vagrant,共享文件夹:利用 inotify over NFS