Ruby on rails 如何找到导致麒麟工人超时的原因

Ruby on rails 如何找到导致麒麟工人超时的原因,ruby-on-rails,logging,nginx,timeout,unicorn,Ruby On Rails,Logging,Nginx,Timeout,Unicorn,人们一直声称我的网站总是挂在一些页面上。我检查了unicorn stderr日志,发现了许多超时错误,如: E, [2013-08-14T09:27:32.236478 #30027] ERROR -- : worker=5 PID:11619 timeout (601s > 600s), killing E, [2013-08-14T09:27:32.252252 #30027] ERROR -- : reaped #<Process::Status: pid=11619,sign

人们一直声称我的网站总是挂在一些页面上。我检查了unicorn stderr日志,发现了许多超时错误,如:

E, [2013-08-14T09:27:32.236478 #30027] ERROR -- : worker=5 PID:11619 timeout (601s > 600s), killing
E, [2013-08-14T09:27:32.252252 #30027] ERROR -- : reaped #<Process::Status: pid=11619,signaled(SIGKILL=9)> worker=5
I, [2013-08-14T09:27:32.266141 #4720]  INFO -- : worker=5 ready
不完全。这些请求中的大多数都得到了成功的处理。我不知道为什么在随机的时间,它挂在那里

我不知道这是什么原因。有谁能给我一个线索,如何找到导致独角兽工人超时的真正原因

更新:

我们使用NSC将请求和响应传输到unicorn。为了改善超时问题,我们在NSC和unicorn之间添加了nginx。事实证明,unicorn worker超时仍然发生,并且每个超时都与nginx错误日志中的nginx上游超时相匹配


有人知道独角兽的TCP连接是否存在某种瓶颈吗

我使用Rack::Timeout在unicorn之前超时。Unicorn timeout使用kill-9,我不认为这给了您任何方法来做任何事情。

可能是您的站点太忙了,有时页面加载时间超过600毫秒?Sql执行只是整个响应的一部分。或者你能把麒麟的超时设置为一个更大的值,然后再试一次吗?@Bigxiang,它是600秒而不是600秒。我们有上传功能,所以我们需要配置它这么长时间,以防连接速度慢。非常抱歉,我误读了它。我读了独角兽的文件,但还没有找到足够有用的东西。有人提到他们在网络流量或cpu高或使用gem mysql的低版本时遇到问题。@Bigxiang,谢谢你的信息。我们使用gem mysql2 0.3.7,我将尝试找出它是否与版本相关。
Processing by XXXController#index as HTML
  Rendered xxx/index.html.erb within layouts/application (41.4ms)
  Rendered shared/_sidebar.html.erb (200.9ms)