[Mono-dev] mod_mono and xsp patches
Joshua Tauberer
jit at occams.info
Mon Jan 21 13:45:54 EST 2008
Marek Habersack wrote:
> They're OK to go in, thanks!
Great, in that case, I'm attaching another patch for mod_mono that
implements rate limiting. I had found that under relatively heavy load,
mod-mono-server would deadlock. Incoming requests would hang forever,
with the result that all of the Apache child processes would get tied up
as more requests came in, and so all websites on the server would stop.
There are only so many worker threads in the XSP thread pool, and at a
certain point they're going to get used up. I forget how many threads
there are by default, maybe 128, but at a few workers per request, that
number gets used up quickly. Obviously the right thing to do would be to
make sure mod-mono-server doesn't hang when it runs out of worker
threads (if this was even the problem), but barring a fix there, this
did the job.
In my case, I was having problems when the number of concurrent requests
went above 20 or 25. (I forget the details. I've been using this patch
for around 3-4 months... modulo changes I made today.)
The patch by default limits the number of concurrent requests passed to
mod-mono-server to 20. After that, it holds onto (by default) up to 20
more, checking periodically until the initial 20 decreases or a timeout
(hard-coded at 10 seconds). The two 20's are configurable with
MonoMaxActiveRequests and MonoMaxWaitingRequests.
This will only work on Apache2 since it relies on the shared memory
dashboards.
--
- Josh Tauberer
http://razor.occams.info
"Yields falsehood when preceded by its quotation! Yields
falsehood when preceded by its quotation!" Achilles to
Tortoise (in "Gödel, Escher, Bach" by Douglas Hofstadter)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mod_mono.diff
Type: text/x-patch
Size: 9105 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20080121/816baeec/attachment.bin
More information about the Mono-devel-list
mailing list