【问题标题】:Slow Vagrant performance?流浪者表现缓慢?
【发布时间】:2014-05-27 21:57:05
【问题描述】:

我有一个 PHPUnit 测试套件..

在我的双核笔记本电脑上,完成执行需要 7 分钟.. 使用 vagrant box(virtualbox 提供程序)

~/project/module/ModuleName/tests:$ phpunit
PHPUnit 3.7.37 by Sebastian Bergmann.

Configuration read from ~/project/module/ModuleName/tests/phpunit.xml.dist

..F..FFF..FFFFFF..FFFFF...FFFFFFFFF

Time: 6.82 minutes, Memory: 6.00Mb

然而,在我运行 Ubuntu 14.04 LTS 的虚拟机客户映像上……它只占用了其中的一小部分。有人对为什么有想法吗? guest 执行的唯一区别是它是通过 ant 脚本而不是 Vagrant

phpunit:
     [exec] PHPUnit 3.7.37 by Sebastian Bergmann.
     [exec]
     [exec] Configuration read from <~/tests/phpunit.xml.dist>
     [exec]
     [exec] .. [41;37mF [0m.. [41;37mF [0m [41;37mF [0m [41;37mF [0m.. [41;37mF [0m [41;37mF [0m [41;37mF [0m [41;37mF [0m [41;37mF [0m [41;37mF [0m.. [41;37mF [0m [41;37mF [0m [41;37mF [0m [41;37mF [0m [41;37mF [0m... [41;37mF [0m [41;37mF [0m [41;37mF [0m [41;37mF [0m [41;37mF [0m [41;37mF [0m [41;37mF [0m [41;37mF [0m [41;37mF [0m
     [exec]
     [exec] Time: 760 ms, Memory: 6.00Mb
     [exec]
     [exec] There were 24 failures:
     [exec]

【问题讨论】:

  • 您是否使用共享文件夹来保存数据?如果是这样,使用 vboxfs 挂载的共享文件夹提供读取缓存,这解释了糟糕的性能。请改用 NFS。
  • 整个项目和任何日志文件都出现在共享的 Vagrant 文件夹下。我会查找如何开始使用 NFS,谢谢
  • 我将该信息包含在我的答案中。我的流浪盒子也有这个问题。

标签: ant phpunit vagrant


【解决方案1】:

由于您将正在使用的文件存储在 Vagrant 主机和 VM 之间的共享上,原因可能正是如此。在主机上挂载目录的标准方法是使用vboxfswhich does not have read caching

由于这不会很快改变(看起来)你最好通过将共享文件夹的类型设置为using NFS"nfs"

Vagrant.configure("2") do |config|
  # ...

  config.vm.synced_folder ".", "/vagrant", type: "nfs"
end

但请注意,这仅适用于 UNIX 主机,例如 Linux 和 Mac OS X。但由于 Windows 上不存在此问题,因此这应该不是问题。

【讨论】:

  • 作为一个附带问题,切换到 VMWare 提供程序会改变这种性能损失吗?
  • 我不知道,但我认为是的。这里的问题是 vboxfs 内核模块的实现,它没有缓存。编辑:Yes this would solve the issue.
  • 对不起,我的意思是我剃了 1 分钟.. 但与无流浪者的亚分钟时间相比,这仍然算不了什么...... :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
  • 2014-07-04
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
相关资源
最近更新 更多