0

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

然而,这似乎并没有发生。如果我观察top服务器上的输出,我可以知道它何时调整图像大小,所以如果我尝试用一​​个简单的请求(通常会很快完成)点击应用程序,它似乎要等到长时间运行的请求在完成。

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

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

我可以让他们杂种来记录每个请求(即使它只是一个时间戳,比如“GET /path/to/resource”)?

任何想法为什么集群可能不会首先共享负载?

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

4

1 回答 1

1

我们前段时间在reevoo.com上遇到过类似的问题。查看生成的博客文章

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

于 2009-09-01T17:42:09.303 回答