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 下,您绝对需要使用 NFSRSYNC 进行共享 带有 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 和 symfony2

Vagrant,共享文件夹:利用 inotify over NFS

加快 Vagrant 上主机和来宾之间的同步延迟(NFS 同步文件夹)

运行 vagrant 时方法丢失错误

从 vagrant 运行类型安全激活器

Jenkins / Vagrant / VirtualBox - Virtualbox 以系统用户身份运行?