我有一个rails应用程序需要一段时间来处理某些请求(因为它处理图像上传)。我目前在一个集群中有三个mongrel进程,如果第一个请求忙,我希望其他两个中有一个处理第二个请求。
然而,这似乎并没有发生。如果我在服务器上观察来自top
的输出,我可以判断它何时调整图像大小,所以如果我尝试使用简单的请求(通常会快速完成)点击应用程序,它似乎要等到已完成的长期请求。
当我查看log / mongrel.xxxx.log文件时,我看到的只是应用程序启动的输出。
如何验证哪个进程实际处理每个请求?
我可以让他们记录每个请求的mongrels(即使它只是一个时间戳,还有'GET / path / to / resource')?
为什么群集可能不会首先分担负载?
前端Web服务器是nginx,所以也许这就是我应该看的地方? nginx access_log似乎没有关于代理请求的位置的任何内容。
答案 0 :(得分:1)
前一段时间我们在reevoo.com遇到过类似的问题。看看resultant blog post。
特别感兴趣的是使用mongrel_proctitle来诊断问题。它将允许ps aux
查看特定杂种正在处理的内容。