[Nitro] Nitro on Apache

Kirk Haines wyhaines at gmail.com
Wed Oct 3 11:18:11 EDT 2007


On 10/3/07, Robert Mela <rob at robmela.com> wrote:

> NB: There's a major problem with the way Mongrel 1.0.1 handles
> connection limits.  If it's over it's configured connection limit It
> accepts, then immediately closes with no processing.  Things would work
> much better with mod_proxy_balancer if monger were modified ( perhaps
> configurably ) to simply not call accept() when it's reached its
> configured connection limit.

Use evented_mongrel or swiftiply w/ swiftiplied_mongrel.  It will help
this.  It was an oversight on my part that evented mongrel doesn't use
epoll if it is available.  This has been patched and will be available
in the next version, which means you could have more than 1024 (the
limit on select()) connections queued up without any problems, if you
had to (on Linux 2.6.x based systems).

> The problem is less likely to be triggered if Mongrel is running Nitro,
> but it's still a flaw.   It's a MAJOR headache on a busy Rails site with
> slow-loading pages.

evented_mongrel will let you queue up lots of requests without
incurring the RAM and performance killing overhead of threads in
Mongrel.

Swiftiply with swiftiplied_mongrel will load balance your slow
requests across your backends optimally, with no crowding on any one
backend, while again ensuring that you don't have RAM and performance
killing overhead of threads in Mongrel.

George had said that he was going to make sure Nitro 0.50 had builtin
support for using both of these.  I am not sure of the status of that
or if he needs anything from me.  George?


Kirk Haines


More information about the Nitro-general mailing list