我为我的rails应用程序设置了Apache + Haproxy + Mongrel。当我访问一个特定的服务器页面时,mongrel需要大约100ms来处理请求,而由于我缓慢的家庭连接上的数据传输时间,我在大约5秒内就得到了这个页面。
现在我看到,在这5秒的数据传输期间,mongrel不服务于任何其他请求。我很惊讶,因为这意味着mongrel正在向客户端提供响应html,并被阻止,直到客户端接收到它。服务响应不应该是Apache的工作吗?
这在Mongrel可以服务的请求数量上造成了严重的瓶颈,这取决于客户端连接的速度。有没有办法使mongrel生成的html由apache/haproxy或任何其他web服务器(如nginx )提供服务?
我想知道其他高流量网站是如何管理它的?
发布于 2009-05-11 22:21:45
大多数使用mongrel的站点都会大量使用它们,因为它们确实会像您所经历的那样阻塞。
你可能会想去看看passenger,因为这是他们最近的发展方向。
发布于 2010-06-14 18:37:43
mongrel本身是多线程的,但默认情况下,rails一次只能处理一个进程,尽管这可以通过配置进行更改。如果是mongrel,请使用mongrel-cluster。
FYI passenger也设置了一个应用程序池,但它更易于部署,有更好的媒体,而且现在更受欢迎。
https://stackoverflow.com/questions/849963
复制相似问题