2014-01-21 24 views
0

我已經用我的Rails 4應用程序部署了Heroku,它證明是非常慢的。我不知道如果我的位置有一個因素,因爲我在澳大利亞Heroku上的Rails 4極其緩慢的加載

我有插件NewRelic的以下是我看到的問題。

Category  Segment     % Time Avg calls Avg Time (ms) 
View   layouts/users Template 98.4 1.0   16,800 

基於此細目,我發現佈局用戶是性能問題(接近16.8秒!)。

有沒有一種很好的方法來分析這個問題,找出究竟哪些函數導致了這個問題,以及解決這些問題的最佳方法是什麼?

另外一個重要的是要注意的是,當我去map報告顯示012.19.5秒,這佔用了很多時間。

+1

這是隻有一個Dyno運行?在同一分鐘內發出多個請求後,加載時間是否緩慢? – Ecnalyr

+0

@Ecnalyr我有三個dynos,但是我聽說dynos更具擴展性。當我在本地運行應用程序時,它運行得更快...... –

+0

我提到了多個dynos,因爲正如Guarish Sharma指出的那樣,如果您使用一個dyno,應用程序會「進入睡眠」狀態 - 具有多於1個dyno活動可防止此「睡眠'功能。該應用程序將始終保持清醒狀態,因此您的初始加載時間不會太長。 – Ecnalyr

回答

0

當在Heroku上的應用程序只有一個網頁賽道和賽道不接收在1小時內的任何流量,測功機進入睡眠狀態。

當有人訪問應用程序時,dyno管理器會自動喚醒web dyno來運行web進程類型。這會導致此第一個請求的延遲。

你注意到類似的行爲嗎?

+0

好的謝謝。我們如何防止這種情況發生,以便它從第一次運行得很快 –

+0

擁有超過1臺網絡測試儀的應用程序運行時間永遠不會sleep.Incase,您不想爲額外的測試儀支付費用,那麼您可以每小時對網站進行ping操作,以保持它使用像http://www.pingdom.com/,http://monitive.com/等服務喚醒。 – CuriousMind

+0

你也可以使用免費的寶石:https://github.com/kubenstein/dynopoker – wawka