2009-10-09 123 views
2

我向我的服務器發出一個簡單的GET請求,它平均在〜1.2秒後回來(使用firebug NET選項卡,「等待響應」部分 - 甚至不是整個響應時間)如何檢查HTTP請求延遲/等待時間的原因?

我ping到服務器是0.250

使用客運與導軌2.3.3,在軌登錄請求正在〜0.023

我的服務器是在GoDaddy的,所以我檢查自己的網頁上螢火須─在「等待reqponse 「他們的頁面的時間是〜0.320

最糟糕的情況應該是0.4 ...那麼我在哪裏失去了另一個0.8秒?

我還能檢查什麼?

編輯:

好像它無關rails- 的圖像請求(即只阿帕奇響應,行得打軌的話)需要〜1.2秒也

回答

0

嘗試在您的Servers或VHosts配置中將PassengerPoolIdleTime設置爲0。 也許您的服務器正在關閉應用程序實例以快速生成新的實例,並且每次請求都需要很長的時間。

看看文檔的詳細信息,在此設置: http://modrails.com/documentation/Users%20guide%20Apache.html#PassengerPoolIdleTime

+0

已經在0 :) – amitkaz 2009-10-09 21:37:39

+0

嘗試運行你的應用程序的一個實例與雜種或瘦。如果問題仍然存在,那麼您知道這是一個應用程序錯誤,否則它是apache + mod_rails的問題。你有沒有安裝最新版本的mod_rails?如果沒有,你應該嘗試更新。 – Mato 2009-10-09 21:59:07

+0

實際上,它看起來像是與軌道無關 - 正如我對9191所評論的那樣,從apache發出的圖像請求需要 – amitkaz 2009-10-09 22:01:14

0

文件所在的文件從託管對於GoDaddy與其主頁的託管位置不一樣。

您是否檢查過您託管在同一服務器上的其他頁面?可能由於數據庫連接或像這樣的「慢速」連接可能會導致頁面在發送回客戶端之前需要一段時間。

+0

我檢查了一個圖像(來自apache的海峽,根本沒有碰到rails服務器),並且它也花費了大約1.2 ... – amitkaz 2009-10-09 21:34:11

0

聽起來不像是你們的問題,但ISP的。

你可以做一個wget到一個內部IP /端口到你的Rails應用程序直接(或apache)從同一臺服務器? 這會告訴你probaby是否在應用程序堆棧中或更上游。

如果可以,可以使用apache工具,稱爲ab「apache benchmark」來提供幫助。

關鍵是有一個ssh訪問您的計算機。

1

GoDaddy可能在您和HTTP服務器之間有反向代理。

他們可能正在做一些事情,比如馬上向你發送響應標題,然後可能爲你提供緩存響應的內容。

因此,從您的HTTP服務器的角度來看,傳輸的響應。然後它轉到GoDaddy的反向代理,然後到達您的Web瀏覽器。

+1

我敢打賭,這正是問題所在。作爲一名活躍的podcaster和前WordPress的顧問,我聽說GoDaddy拉扯各種奇怪的垃圾來管理帶寬和/或安全 - 並找到有線索的人可以告訴你什麼時候發生什麼事情是不可能的。 如果此應用很重要,_do不會在GoDaddy上託管它。從某處(例如SliceHost)獲取虛擬服務器片或者將其部署到專用的Rails服務(如Heroku)。 – SFEley 2009-11-18 22:02:02