ruby-on-rails - Vagrant 减慢对 Rails 服务器的 http 请求

标签 ruby-on-rails networking virtualbox vagrant apachebench

我有一个项目(Rails 4.0.2),目前正在运行 VirtualBox(4.3.4)的 Vagrant(1.3.5)中运行。 guest 操作系统是 Debian 6.0。当我在主机操作系统上运行应用程序或手动启动 Virtualbox 时,我发现响应能力有了显着提高。一旦我使用“vagrant up”,性能似乎就变得非常差。以下是相关的 Apache Bench 结果:

Apache Bench 命令

ab -n 10 -c 1 http://127.0.0.1:3000/application.js

主机操作系统

              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:    27   44  28.3     33     118
Waiting:       25   41  28.6     31     116
Total:         27   44  28.3     33     118

虚拟盒

              min  mean[+/-sd] median   max
Connect:        0    0   0.4      0       1
Processing:    57   71  19.1     67     119
Waiting:       46   59  19.3     57     110
Total:         57   71  19.1     68     119

Vagrant

              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:   849  916  76.2    901    1115
Waiting:      831  892  72.6    883    1081
Total:        849  916  76.2    901    1115

我预计在 Virtualbox 中运行应用程序会出现速度减慢,但不是一个数量级。我也没有对我的 Vagrantfile 做任何花哨的事情:

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

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

我已尝试 this github issue 中指定的修复和 this HackerNews comment但没有效果。

最佳答案

确保您没有将项目放在同步文件夹中(默认情况下,它使用 vboxsf ,它已知存在大量文件/目录的性能问题)。

这也可能与“Webrick反向DNS查找”有关,看看https://stackoverflow.com/a/19284483/1801697

希望有帮助。

关于ruby-on-rails - Vagrant 减慢对 Rails 服务器的 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20460036/

相关文章:

ruby-on-rails - Ruby on Rails - 未定义方法 `admin?' for nil :NilClass

python - 如何处理python中的[WinError 10057]错误?

java - 通过 HTTP 调用将更多值从一台服务器传输到另一台服务器的最佳方式?

php - Laravel 黄昏错误 : Failed to connect to localhost port 9515: Connection refused

python - 是否有任何库允许 Python 或 Ruby 从 SVN 获取信息?

ruby-on-rails - Rails 设计禁用某些用户类型的密码恢复

kubernetes - 与服务器 10.0.x.x :6443 was refused after restarting the VM where kubernetes master was installed using kubeadm 的连接

python - Vagrant 检测到您安装了不受支持的 VirtualBox 版本

ruby-on-rails - 将参数从 Angular 传递到 Rails

c++ - 使用原始套接字未检测到 UDP 数据包