我無法弄清楚如何讓我的獨角獸工作人員在他們真正「準備好」處理請求時接受連接。我發現前幾個請求很慢,然後它們急劇加速(從幾秒到幾百毫秒)。這個問題似乎更加複雜的是獨角獸似乎在一定時間後殺死了工人,這意味着我經常面臨緩慢的第一次請求的性能打擊。有沒有其他人看過這個或有我能做什麼的想法?獨角獸工作人員的第一反應速度較慢幾秒
4
A
回答
6
事實證明,我們的i18n yml文件在第一次請求的視圖中被延遲加載導致性能問題。只需添加以下到我的配置/ unicorn.rb似乎已經解決了這個問題:
before_fork do |server, worker|
# The following is highly recomended for Rails + "preload_app true" as
# there's no need for the master process to hold a connection.
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
# No need to disconnect from Redis servers--they are connected to lazily.
# Force translations to be loaded into memory.
I18n.t('activerecord')
end
+2
可能是更好的代碼組織在rails初始化程序中執行'I18n.t('activerecord')'而不是隱藏在before_fork鉤子中。當獨角獸執行應用程序預加載時,初始化程序會運行前叉。 – dbenhur
+0
@dbenhur啊,很好的電話,謝謝! –
+0
謝謝!我從來沒有想到會發現這一點。看起來,這並不適用於我的初始化程序。 –
相關問題
- 1. 獨角獸工作人員如何分享導軌會話?
- 2. 獨角獸工作人員產生太多線程(mem leaks)
- 3. 獨角獸認爲什麼是「快速」和「慢」的要求?
- 4. monit在生產服務器中未找到獨角獸工作人員
- 5. nginx和獨角獸不工作
- 6. 殺死獨角獸工作者進程?
- 7. DirectX 11 - 第二塊GPU速度較慢?
- 8. 如何讓我的Rails應用程序的每個獨角獸工作人員登錄到不同的文件?
- 9. 減慢Laravel工作人員
- 10. Unicorn/Capistrano,在新的PID後部署獨角獸工作人員,應用程序不刷新
- 11. 獨角獸!和PostgreSQL
- 12. 獨角獸不USR2
- 13. 如何找出導致獨角獸工人超時的原因
- 14. 改變「速度」幾秒
- 15. 獨角獸+ NGINX:無法啓動獨角獸
- 16. 工頭不會開始與獨角獸
- 17. 角度附加速度很快,但破壞速度很慢(1秒)
- 18. 獨角獸零宕機不起作用
- 19. Struts上傳速度較慢
- 20. JProfiler快照速度較慢
- 21. CURAND運行速度較慢
- 22. 第一次調用WebViewClient時頁面加載速度較慢
- 23. 反射速度有多慢
- 24. 獨角獸發展工作的不是生產
- 25. AWS盒子上的獨角獸工作者超時
- 26. 獨角獸未能啓動
- 27. 獨角獸多機設置
- 28. 獨角獸超時處理
- 29. 獨角獸自動死亡
- 30. 設置獨角獸超時
請檢查該https://github.com/ooyala/barkeep/issues/237可能是它會幫助你。 –
你是[預加載你的應用](http://unicorn.bogomips.org/Unicorn/Configurator.html#preload_app-method)? – dbenhur
,因爲第一個請求還沒有被緩存,並且如果你再次發送請求,你將使用來自第一個請求的緩存查詢。 如果你想提高你的獨角獸性能,請檢查http://blog.railsonfire.com/2012/05/06/Unicorn-on-Heroku.html –