2011-04-12 45 views
5

我在服務器機器上運行Rails應用程序(運行Webrick)。當我登錄到本機並訪問應用程序(通過localhost:3000)時,應用程序運行平穩。但是,當我嘗試從另一臺機器(通過主機名:3000)訪問應用程序時,該應用程序運行速度超慢。Rails應用程序在服務器上快速,但從另一臺機器訪問時速度很慢

我不知道如何去調試問題;有什麼理由爲什麼會這樣?我還擁有像託管在同一臺服務器計算機上的SQL Server數據庫之類的東西,並且可以從其他計算機訪問數據庫。

正在更新以添加:服務器機器和其他機器,我試圖從中訪問它們,都在公司內部網上。

+0

我有同樣的問題。這不是Rails,它不是DNS,因爲我使用IP訪問。 Ping很快:0.04ms。 – 2011-06-14 18:18:13

回答

4

最明顯的答案是問題不在於rails,而在於您的域名託管(即您的DNS速度超慢)。

嘗試並加載一個不同的應用程序(也許是一個Sinatra「你好世界」),看看它是否表現出相同的症狀。
如果是 - 您的域名提供商應該負責。

如果問題仍然存在,請增加日誌的詳細程度並檢查是否有任何SQL查詢是明顯的瓶頸。

此外,問題可能與Webrick有關。它只是不適合生產,如果有幾個人一次使用該應用程序,速度可能會變慢。嘗試使用不同的服務器。 Apache是​​一個合理的選擇:http://www.modrails.com/

+0

嗯,是的,謝謝!,它看起來像是一個DNS問題 - 通過IP地址直接訪問(與主機名相對)工作正常,Sinatra「hello world」也非常慢(當通過主機名訪問時)。但是,如果這是一個DNS問題,不應該ping主機名也超慢? (ping主機名似乎工作正常,所以我有點困惑。) – grautur 2011-04-13 08:27:35

+2

呃,我不知道那個:)你問了一個Rails的問題,並得到了一個對Rails感興趣的人的回答。你應該關閉這個問題,併爲你現在知道的另一個問題打開一個不同的問題。 – x10 2011-04-13 14:55:28

+0

哈,明白了,謝謝! =) – grautur 2011-04-13 18:22:51

1

Webrick是不是世界上最快的,我相當積極它不是爲了生產,而是本地測試。當你連接到另一臺機器時,它是在本地網絡還是通過互聯網?

+0

當我連接到另一臺機器時,它在本地網絡上。 (這兩臺機器都在企業內部網上。) – grautur 2011-04-13 01:35:32

1

查看您的rails日誌文件中列出的響應時間。如果它們對於本地和遠程訪問是相同的,那麼你知道你的問題在堆棧中的其他位置(DNS,路由,軟件防火牆等)。

這很可能是問題不在於rails本身。

14

以下答案適用於我。請注意,如果您正在運行rvm,答案就在底部。

Webrick is very slow to respond. How to speed it up?

查找文件/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

+1

這對Win 7的工作適用。Thx。 – 2012-12-03 23:26:16

3

,我遲到了,但你可以用薄的,而不是使用WEBrick。

只需添加到Gemfile中

gem 'thin' 
相關問題