如果超时超时,则实例将不再回复

时间:2016-01-16 13:14:47

标签: ruby nginx thin

我有这个设置:

  • Ruby 1.8.7
  • Rails 2.3.18
  • 三个瘦身实例
  • Nginx作为代理

这是一个高并发网站。有时,有一些请求会在其中一个精简实例中引发超时(由于操作非常繁重)。发生这种情况时,实例CPU将转为100%,并停止回复任何新请求。

NGinx默认情况下有一个选项可以将请求转发到下一个上游,当请求以超时结束时,它以使用100%CPU的所有三个实例结束,而不是回复任何请求。

我们已将此NGinx选项修改为:

proxy_next_upstream off;

但仍有问题。如果用户刷新页面,它将最终破坏我们所有的精简实例。

  • 如果请求以超时结束,为什么瘦保持100%CPU运行?
  • 如果其中一个请求以超时结束,有没有办法让瘦继续正常运行?
  • 如果它们被阻塞,那么自动重启实例的最佳方法是什么?如果Nginx挂钩在接收到超时时调用命令?

我知道我们需要升级ruby和rails版本,而且我知道繁重的操作应该在后台完成,但请不要对此做任何评论,并坚持我的问​​题。

0 个答案:

没有答案