我怎样才能确定mongrel_cluster中的每个进程都在处理请求?

时间:2009-09-01 15:17:11

标签: ruby-on-rails nginx mongrel-cluster

我有一个rails应用程序需要一段时间来处理某些请求(因为它处理图像上传)。我目前在一个集群中有三个mongrel进程,如果第一个请求忙,我希望其他两个中有一个处理第二个请求。

然而,这似乎并没有发生。如果我在服务器上观察来自top的输出,我可以判断它何时调整图像大小,所以如果我尝试使用简单的请求(通常会快速完成)点击应用程序,它似乎要等到已完成的长期请求。

当我查看log / mongrel.xxxx.log文件时,我看到的只是应用程序启动的输出。

如何验证哪个进程实际处理每个请求?

我可以让他们记录每个请求的mongrels(即使它只是一个时间戳,还有'GET / path / to / resource')?

为什么群集可能不会首先分担负载?

前端Web服务器是nginx,所以也许这就是我应该看的地方? nginx access_log似乎没有关于代理请求的位置的任何内容。

1 个答案:

答案 0 :(得分:1)

前一段时间我们在reevoo.com遇到过类似的问题。看看resultant blog post

特别感兴趣的是使用mongrel_proctitle来诊断问题。它将允许ps aux查看特定杂种正在处理的内容。