由于某些 gem 只能在 *nix 上运行,因此我使用装有 Ubuntu 10.4 的 VMware 7 vm 来运行我的 Rails 3 应用程序,同时在 Windows 上进行编码。我注意到的一件事是,从主机向客户操作系统发送 HTTP 请求时,性能非常糟糕,在主机操作系统的浏览器上按下 F5 键和请求显示在 Rails 控制台之间最多需要 5 秒钟。
请注意,我使用干净的 Rails 应用程序进行测试(rails testproject
或rails new testproject
,取决于版本),在 VM 中使用 Firefox 时没有明显的延迟。
经过一些测试,我注意到使用 Rails 2.2(.3) 时也没有明显的延迟,这几乎排除了 VMware 是导致此问题的原因。由于我更喜欢使用 Rails 3,因此我尝试了以下方法;
- 安装有 Debian/Kubuntu 的干净 VM,结果相同。
- Rails 2.3/3 绑定到特定端口/ip (>2.2 默认为 0.0.0.0),结果相同。
- 不同的 VMware 连接器设置,没有区别。
- 不同的 Ruby 版本(1.8.6、1.9.1、1.9.2-head),没有区别。
谷歌在这里没有提供太多帮助,希望 serverfault 能够提供;我可以尝试什么来摆脱每个请求中的这 5 秒延迟?