慢客户端连接阻止Mongrel

时间:2009-05-11 20:36:12

标签: ruby-on-rails apache mongrel

我的rails应用程序有Apache + Haproxy + Mongrel设置。当我点击特定的服务器页面时,mongrel需要大约100毫秒来处理请求,由于我的慢速家庭连接上的数据传输时间,我在大约5秒内得到页面。

现在我看到,在这5秒的数据传输期间,mongrel不会提供任何其他请求。我很惊讶,因为这意味着mongrel正在向客户端提供响应html并被阻止直到客户端收到它。服务响应不应该是Apache的工作吗?

这给Mongrel可以服务的请求带来了严重的瓶颈,因为这取决于客户端连接的速度。是否有任何方式由mongrel生成的html由apache / haproxy或任何其他网络服务器如nginx提供?
我想知道其他高流量网站是如何管理它的?

2 个答案:

答案 0 :(得分:1)

大多数使用mongrel的网站会使用大量网站,因为它们会像您遇到的那样阻塞。

你可能想要调查乘客,因为这是他们现在的方式。

答案 1 :(得分:0)

mongrel本身是多线程的,但默认情况下rails一次只能处理一个进程,尽管可以通过config更改。如果是杂种,请使用mongrel-cluster。

FYI乘客还设置了一个应用程序池,但部署更好,压力更好,现在更受欢迎。