Rails Windows Vagrant响应时间非常慢

时间:2014-12-15 02:02:34

标签: ruby-on-rails windows performance vagrant

我正在跑步:

 - Vagrant 1.7.1
 - Rails 4.1.4
 - Thin 1.6.1
 - Windows 7

每个静态文件都需要超过一秒的时间才能发送。一个页面可能需要大约20秒才能加载到我的PC上,而在同事的Linux机器上则需要一瞬间。有some posts说webrick的反向DNS查找是问题所在,但没有人说Thin遇到了同样的问题。

Vagrant档案:

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "custom_box"
  config.vm.network :forwarded_port, guest: 3000, host: 3000
end

4 个答案:

答案 0 :(得分:4)

尝试了几件事后,没有任何效果。我无法让nfs在Windows上运行。 然后我发现了rsync!它完美地解决了性能问题。 在此处查看有关rsync和vagrant的更多信息: http://docs.vagrantup.com/v2/synced-folders/rsync.html

在Windows上,使用它与mingw,它立即工作: http://www.mingw.org/

答案 1 :(得分:1)

Windows上的

Synced folder性能与Virtualbox(这是默认设置)相比非常糟糕。我建议为Vagrant安装WinNFSd plugin,然后将这两行添加到您的Vagrant文​​件中:

config.vm.network "private_network", type: "dhcp"
config.vm.synced_folder ".", "/vagrant", type: "nfs" 

这将在Windows上添加NFS支持,它有一些扭结,但仍比默认值好10倍。

答案 2 :(得分:0)

为其分配主机名和私有IP。

$ cat Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "custom_box"
     config.vm.host_name = "rails.example.com"
     config.vm.network :private_network, ip: "192.168.1.1"
     config.vm.network :forwarded_port, guest: 3000, host: 3000
  end   
end

更新Vagrantfile后,请以:

开头
vagrant up
vagrant ssh

然后从您自己的计算机访问网站http://192.168.1.1:3000,现在应该更快。

答案 3 :(得分:0)

现在我正在运行Windows 10并决定在Windows上尝试Linux子系统。它运行良好,这是迄今为止在Windows上开发Rails应用程序的最佳解决方案。