ruby-on-rails - 在 Virtual Box Ubuntu 12.04 中运行 Rails 非常慢

标签 ruby-on-rails ruby-on-rails-3 virtualbox vagrant

我有 VirtualBox 和 Ubuntu 12.04。我使用 Vagant 来设置我的环境。我在 thin (rails s) 上运行 Rails 3.2.9,然后从主机上的浏览器转到 VirtualBox 的 IP 地址 (10.10.11.xxx:3000)。此刻我遇到了麻烦——页面加载非常非常慢,在 Rails 控制台上我看到它响应文件(css、js、图像)的速度有多慢:每个文件最多 5 秒!但是:如果我在 Ubuntu 中运行 0.0.0.0:3000 - 它运行完美。

Inside VM, there are two Network interface
eth0 --> it is set by Vagrant (NAT)
eth1 --> bridge, has an external IP 10.10.11.xxx

问题出在哪里?去哪里寻找解决方案?

人们说这与反向 DNS 查找问题有关。我该如何解决?有人知道吗?

最佳答案

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

Webrick 反向 DNS 查询

看起来你正在使用 Webrick(thin 似乎没有这个问题),编辑它的 config.rb 以禁用反向 DNS 查找以加快速度。

对于 rbenv 管理的 ruby ,例如=> ~/.rbenv/versions/1.9.3-p448/lib/ruby/1.9.1/webrick/config.rb

:DoNotReverseLookup => nil 更改为 :DoNotReverseLookup => true

NOTE: People mentioned stopping the avahi-daemon, you can try to stop it if you use it. My understanding is that it is NOT installed by default on Ubuntu Server (or other base installs) (but desktop).

类似问题详解

关于ruby-on-rails - 在 Virtual Box Ubuntu 12.04 中运行 Rails 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19278596/

相关文章:

ruby-on-rails - RVM 不适用于 Vagrant

ruby-on-rails - 代码适用于本地服务器但不适用于 heroku

mysql - Rails 3.1 + Daemons gem 不允许我访问我的数据库

java - jdbc无法通过端口转发连接到nat后面的mysql

ruby-on-rails - 按多个唯一属性过滤 ActiveRecord 查询并合并结果

ruby-on-rails - Rails ActiveRecord 关系 - 有很多并且属于关联

ruby-on-rails-3 - 无法在轨道上的可安装引擎中加载模型

ruby - 无法使用 pdfkit 创建 pdf - PDFKit::NoExecutableError

compiler-errors - 无法在gentoo上编译dev86软件包

virtualbox - vboxmanage.exe错误无法重命名目录