You're coming in just after a discussion about this -- the problem of request queuing in Mongrel. It occurs when a round-robin style load balancer cycles back to a Mongrel that still hasn't finished processing the request that the load balancer had sent in its previous cycle through the pool.

If you're running Apache's mod_proxy_balancer then see this:

http://rubyforge.org/pipermail/mongrel-users/2007-October/004145.html

and a correction here: http://rubyforge.org/pipermail/mongrel-users/2007-October/004146.html


Andrew Arrow wrote:
We have a load balancer sending requests to one of X boxes and one of N mongrel processes on that box.

Since each mongrel processes is multi-threaded but it has a mutex around the section that calls rails, we end up with several requests queued up waiting when they could have gone to another box with a free process.

For example, boxA, and boxB.

boxA has mongrels 1 through 10
boxB has mongrels 11 through 20

Load balancer sends a request to boxA mongrel 5.
Load balancer sends a request to boxB mongrel 12.
Load balancer sends a request to boxA mongrel 5 again.
It has to wait for the 1st request still running on boxA mongrel 5.

How can we help the load balancer know it should have sent the request to any number of other free mongrels vs. queuing up threads that have to wait?

Thanks.


_______________________________________________
Mongrel-users mailing list
Mongrel-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-users



begin:vcard
fn:Robert Mela
n:Mela;Robert
email;internet:[EMAIL PROTECTED]
x-mozilla-html:FALSE
version:2.1
end:vcard

_______________________________________________
Mongrel-users mailing list
Mongrel-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-users

Reply via email to