我的rails应用程序有Apache + Haproxy + Mongrel设置。当我点击特定的服务器页面时,mongrel需要大约100毫秒来处理请求,由于我的慢速家庭连接上的数据传输时间,我在大约5秒内得到页面。
现在我看到,在这5秒的数据传输期间,mongrel不会提供任何其他请求。我很惊讶,因为这意味着mongrel正在向客户端提供响应html并被阻止直到客户端收到它。服务响应不应该是Apache的工作吗?
这给Mongrel可以服务的请求带来了严重的瓶颈,因为这取决于客户端连接的速度。是否有任何方式由mongrel生成的html由apache / haproxy或任何其他网络服务器如nginx提供?
我想知道其他高流量网站是如何管理它的?
答案 0 :(得分:1)
大多数使用mongrel的网站会使用大量网站,因为它们会像您遇到的那样阻塞。
你可能想要调查乘客,因为这是他们现在的方式。
答案 1 :(得分:0)
mongrel本身是多线程的,但默认情况下rails一次只能处理一个进程,尽管可以通过config更改。如果是杂种,请使用mongrel-cluster。
FYI乘客还设置了一个应用程序池,但部署更好,压力更好,现在更受欢迎。