rails app在服务器上快速,但从另一台机器访问时速度很慢

gra*_*tur 5 web-applications ruby-on-rails webrick

我有一个托管在服务器机器上的Rails应用程序(运行Webrick).当我登录到这台机器并访问应用程序(通过localhost:3000)时,该应用程序运行顺畅.但是当我尝试从另一台机器(通过主机名:3000)访问该应用程序时,该应用程序运行速度非常慢.

我不确定如何调试问题; 有什么理由可以这样吗?我也有像在同一服务器机器上托管的SQL服务器数据库,并从其他机器访问数据库工作正常.

更新添加:服务器计算机和我尝试访问的其他计算机都在公司内部网上.

B S*_*ven 14

以下答案对我有用.请注意,如果您正在运行rvm,答案就在底部.

Webrick的回应非常缓慢.如何加快速度?

查找文件/usr/lib/ruby/1.9.1/webrick/config.rb并进行编辑.

更换线

:DoNotReverseLookup => nil,

:DoNotReverseLookup => true,

rvm文件是 ~/.rvm/rubies/ruby-your-version/lib/ruby/your-version/webrick/config.rb


x10*_*x10 4

最明显的答案是问题不在于 Rails,而在于您的域名托管(即您的 DNS 非常慢)。

尝试加载不同的应用程序(可能是 Sinatra“hello world”),看看它是否表现出相同的症状。
如果是,则应归咎于您的域名提供商。

如果问题仍然存在,请增加日志的详细程度并检查任何 SQL 查询是否是明显的瓶颈。

另外,问题可能出在 Webrick 上。它只是不适合生产,如果几个人同时使用该应用程序可能会很慢。使用不同的服务器尝试一下。Apache 是一个合理的选择:http ://www.modrails.com/

  • 呃,我不知道这个 :) 你问了一个 Rails 问题,并从一个对 Rails 感兴趣的人那里得到了答案。您应该关闭这个问题,并针对您现在知道的不同问题打开另一个问题。 (2认同)
  • 作为 ping 响应的注释,不要相信它的查找速度。在某些操作系统上,ping 可能会使用缓存的 DNS,而 Rails 可能每次都会进行查找。 (2认同)