Definitely makes sense to me. I decided to try this 1 to 1 setup
anyway, but having read your email I now have a clearer idea of what
properties are likely useful to measure and compare. If I find
something interesting or unexpected, I'll post it here. Thanks a lot.

Wol



On Wed, Feb 16, 2011 at 10:47 AM, Graham Dumpleton
<[email protected]> wrote:
> On 15 February 2011 20:41, Wol Degodver <[email protected]> wrote:
>> I have Apache (2.2, worker mpm) dedicated to serving only mod_wsgi
>> (django) stuff (a nginx frontend does the rest). mod_wsgi is running
>> in daemon mode with the default of 1 process and 15 threads
>> (susceptible to change if I get more visitors). Since those values are
>> set as hard limits, I figure I set Apache to limit the process and
>> thread count to the same values like so:
>>
>> ServerLimit 1
>> StartServers 1
>> MaxClients 15
>> MinSpareThreads 1
>> MaxSpareThreads 15
>> ThreadsPerChild 15
>>
>> Is this indeed a good idea? If not, why does my dedicated apache
>> perhaps need to get some extra leeway?
>
> Because nginx only uses HTTP/1.0 when it proxies and doesn't support
> keep alive connections, then technically a 1 to 1 relationship of
> number of threads in Apache processes with number of threads across
> daemon mode processes should be fine.
>
> The only implication of this is that if more concurrent requests queue
> up than number of threads that they will queue up on the main listener
> socket of the Apache processes themselves. If the number of threads in
> Apache processes were more than across the number in the daemon
> processes, then instead of queueing up as socket connects on listener
> socket, they would get accepted by Apache processes and instead queue
> up on the listener socket used by the daemon processes internally.
>
> Right now not sure there is any significance to the distinction. May
> only be relevant if nginx was load balancing between multiple
> Apache/mod_wsgi backends and only for requests which have more than
> about 1MB in body of request. This is because if the connection to
> Apache fails, for a >1MB size request, because it hasn't started
> streaming the request content, can still possibly fail over to another
> backend if the connection ultimately fails. If Apache has instead
> accepted it, then it would have already started streaming the data and
> can't fail over if there is an error with socket connection being lost
> before a response is received.
>
> Overall, would need a nginx proxying/load balancing expert to comment
> about all that though as I am not sure how nginx load balancing and
> failover works.
>
> Not sure if that is helpful or just confusing.
>
> Graham
>
> --
> You received this message because you are subscribed to the Google Groups 
> "modwsgi" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/modwsgi?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/modwsgi?hl=en.

Reply via email to