Mongrel Timeout / Throttle Misnomer

Earlier today I made an intriguing discovery while perusing through the Mongrel documentation. Perhaps an oversight on my part, but arguably also a real misnomer by Zed: the timeout (-t) config flag is exactly the last thing I would expect it to be - a throttle mechanism! I've gone around setting up my mongrel clusters and recommending mongrel configs to dozens of people not realizing the unintended behavior. Hence, while I can't claim that this has adversely affected the overall performance, it's definitely something to be cautious about.

Timeouts are really a throttle

Viewing the usual help flag on the command line for mongrel_cluster presented me with a nifty timeout (-t) option which I quickly adopted in all my configs. Intuitively, I expected the timeout flag to resemble the Apache config: kill threads and/or stale clients which reach the timeout time period threshold. Apparently, this is not so:

-t, timeout (:timeout) Time to pause between accepting clients. Used as a throttle mechanism. * Default: 0

The saving grace for most people is the fact that the throttle is defaulted to 0 (off). Having said that, I think you should be aware of this misnomer and I hope that Zed will address this issue in some future release.

Monitoring Mongrel: Monit makes Mongrel play nice!


Ilya Grigorik

Ilya Grigorik is a web performance engineer and developer advocate at Google, where his focus is on making the web fast and driving adoption of performance best practices at Google and beyond.