回答
如果您在處理第一個請求時發佈日誌的內容,那麼或許我們可以弄清楚是什麼讓它變得如此緩慢。例如,這是我的日誌作爲第一個用戶訪問該網站
Booting Mongrel (use 'script/server webrick' to force WEBrick)
Rails 2.1.0 application starting on http://0.0.0.0:3000
Debugger enabled
Call with -d to detach
Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment...
/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/mime_type.rb:66: warning: already initialized constant CSV
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart).
** Rails signals registered. HUP => reload (without restart). It might not work well.
** Mongrel 1.1.5 available at 0.0.0.0:3000
** Use CTRL-C to stop.
Processing SessionsController#new (for 127.0.0.1 at 2009-05-26 12:26:00) [GET]
Session ID: de2acf074759026e1ed6205724f547a9
Parameters: {"action"=>"new", "controller"=>"sessions"}
Rendering sessions/new
Completed in 0.00587 (170 reqs/sec) | Rendering: 0.00298 (50%) | DB: 0.00092 (15%) | 200 OK [http://localhost/]
我覺得170個請求數/秒罰款我們的應用程序,但其他人可能會發現很慢。您可以從統計數據看出,Rails規定,所需時間的一半用於呈現響應 - 在這種情況下,會爲登錄屏幕生成HTML。如果這個請求花了很長時間,我的第一個停靠港就是與登錄屏幕相關的意見和幫助者。
如果你確實有一個系統需要很長時間才能在第一個請求上初始化自己,那麼爲什麼不偷偷編寫自己的啓動程序,它首先運行rails,然後通過curl發送一個假請求。這樣你的用戶就不會看到問題。
Chris
這可能是同樣的理由,我們的應用程序需要很長的時間,我們第一次踢他們關在WebSphere。
當安裝新版本的應用程序(或重新啓動WAS)時,WAS必須做許多初始工作來設置容器。
我們使用的解決方法是修改安裝腳本和WAS啓動腳本,以便它們在運行後立即自動瀏覽到應用程序(主頁面和選定的其他頁面)。這樣,第一次真正的訪問是全速。
我不知道如何用Ruby來做到這一點,甚至是否有可能。你必須找出一個。
這是可能的 - 你可以使用一個簡單的腳本來使用curl/wget從所有的rails應用程序請求一個頁面來達到同樣的效果。 – Petesh 2009-05-26 08:30:11
我猜你正在使用Ferret進行全文搜索?可能是雪貂連接需要一段時間才能初始化?當我檢查你的日誌時,似乎db和view都需要一段正常的時間,但總數仍然是10秒。所以我一定是別的,這就是爲什麼我猜測費雷特可能是問題所在。
這可能是因爲你是:
要求,並加載了一些 插件和寶石
使得外部 服務的連接(然後緩存)
緩存自己的頁面,並且只有在第一次請求後纔會發生 ,除非 「加熱」緩存
其中任何一個都不可避免地會增加第一個請求的響應時間。
也許你需要在apache conf中調整PassengerPoolIdleTime
var。將其設置爲0永不停止您的導軌進程。
- 1. 第一次請求導軌應用程序非常緩慢
- 2. 爲什麼第一次Rails請求測試非常慢?
- 3. 第一個Web API會話請求是非常緩慢
- 4. My Angular 2應用第一次加載非常緩慢
- 5. 燒瓶應用程序非常緩慢
- 6. Visual Studio 2015 Web應用程序非常緩慢的請求響應
- 7. 非常緩慢的MySQL請求+ php
- 8. Android webview請求應用程序緩慢
- 9. Heroku中的Rails應用程序啓動非常緩慢
- 10. http請求響應在混合應用程序中非常緩慢
- 11. 第一次請求的網頁緩慢響應
- 12. Rails應用程序#調用非常緩慢
- 13. Rails應用程序與乘客+ nginx非常緩慢
- 14. 在iPad上第一次調用glDrawArrays的速度非常緩慢
- 15. Flex緩慢的第一個Http請求
- 16. pycuda.gpuarray.dot()在第一次調用時非常緩慢
- 17. 頁非常緩慢@第一次加載(使用與漆清漆)
- 18. setContentView與包含MapView的佈局非常緩慢的第一次
- 19. Winform應用程序的第一個Web請求很慢
- 20. zend社區服務器非常緩慢的第一個請求與OS X 10.6
- 21. 爲什麼python程序第一次運行非常慢?
- 22. Ionic2「ionViewDidEnter」方法第一次非常慢
- 23. 詹金斯第一次訪問非常緩慢
- 24. 實體框架非常緩慢加載第一次
- 25. 春季第一次請求很慢
- 26. XML-RPC Python在第一次請求之前緩慢
- 27. PictureBox.Load方法從第一次請求緩慢加載圖像
- 28. Rails 3.2,Ruby 1.9和Unicorn - 第一個請求非常慢 - 如何調試?
- 29. sliksvn第一次犯第二次緩慢
感謝您的提示。這裏是我的日誌文件:http://pastie.org/private/ih2mpcmjpofp5jmfsvw 有時候,它會持續比1600毫秒更長的時間來回答我的請求。我真的沒有線索...... – Stefan 2009-05-26 13:33:27