我无法弄清楚如何让我的独角兽工作人员在他们真正“准备好”处理请求时接受连接。我发现前几个请求很慢,然后它们急剧加速(从几秒到几百毫秒)。这个问题似乎更加复杂的是独角兽似乎在一定时间后杀死了工人,这意味着我经常面临缓慢的第一次请求的性能打击。有没有其他人看过这个或有我能做什么的想法?独角兽工作人员的第一反应速度较慢几秒
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 –