我无法弄清楚如何让我的独角兽工人在他们真正“准备好”处理请求时才接受连接。我发现前几个请求很慢,然后它们会急剧加速(从几秒到几百毫秒)。这个问题似乎更加复杂,因为独角兽似乎在一段时间后杀死了工人,这意味着我经常面临缓慢的第一次请求的性能损失。有没有人看过这个或者知道我能做些什么?
答案 0 :(得分:6)
事实证明我们的i18n yml文件在第一个请求的视图中被延迟加载导致性能问题。简单地将以下内容添加到我的config / 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