Brian Williams wrote:
We recently ran into exactly this issue. Some rails requests were
making external requests that were taking 5 minutes (networking issues
out of our control). If your request got queued behind one of these
stuck mongrels, the experience was terrible. I experimented with
adjusting the mod_proxy_balance settings to try to get it to fail over
to the next mongrel (I had hoped that the min,max,smax could all be
set to one, and force only one connection to a mongrel at a time) but
this didn't seem to work.
Solution - I stuck lighttpd in between. Lighttp has a proxying
algorithm that does exactly this - round robin but to worker with
lightest load.
Were you on Apache 2.0 or 2.2?
mod_proxy_balancer is 2.2 only. It has the same features as lighty's
balancer, and many important ones that it doesn't. We had 2.0 <->
lighttpd <-> mongrel_cluster. I like 2.2/mod_proxy_balancer better.
Lighty missed some features we needed and I wasn't prepared to implement.
I made heavy use of the following logging features in Apache and m_p_b
for diagnostics:
-- request duration in microseconds ( lighty only offers seconds ...
ugh )
-- client session cookie
-- balancer member ( which load balancer member Apache sent the
request to )
-- client socket status at end of request
I should correct the Round Robin misperception. More accurately
mod_proxy_balancer does request balancing. The module sends an equal
number of requests to each back end, at least according to the docs.
It has another mode where it balances by bytes transferred.
The icing on the cake for me was mod_proxy_balancer's status page. It
gives a live view of configured balancer pools and stats for each pool
member.
I'd love to hear that there's a way to use mod_proxy_balancer, but I
couldn't get to work.
--Brian
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
[email protected]
http://rubyforge.org/mailman/listinfo/mongrel-users