Hi Graham,

>> I am starting a second thread with the same name, but it's not exactly
>> the same case:
>> I have trac accessed via mod_wsgi, and pretty much every day - my apache
>> gets stuck and being automatically restarted by monit after a few minutes.
>>     
>
> How are you determining that Apache is stuck?
>   
It does not respond to a simple http request for an empty (static) file:
http://flux.firefang.net/empty
monit detects that, and restarts apache after a short while.

> What Apache MPM are you using and what configuration are you using for
> that MPM? Ie., what do you have for:
>   
I am using apache2-mpm-prefork
relevant configuration:
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          200
    MaxRequestsPerChild   0
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          200
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>


Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15

> Have you fiddled with any of these defaults?
>   
I probably increased the MaxClients settings to 200.
I don't think I changed any of the other values.



>> using siege on the timeline URL gets the server to a bad spot (with 45
>> concurrent clients, I can bring my server down in seconds).
>> I tried to inspect the apache backtrace using gdb , I get this in the
>> first thread:
>>
>> (gdb) bt
>>     
>
> As per:
>
>   
> http://code.google.com/p/modwsgi/wiki/DebuggingTechniques#Debugging_Crashes_With_GDB
>
> Use:
>
>   thread apply all bt
>
> This will dump all C thread stacks.
>
> The dump of all C thread stack traces is still useful to me even if of
> no use to others.
>
> Graham
>   
I will configure monit to use this command before it restarts apache in 
the next time it hangs:

pgrep apache2 | xargs -i bash -c "gdb -ex \"set height 0\" -ex \"thread 
apply all bt\" --batch -p {}"  > apache.backtrace.txt

it's supposed to dump the backtrace of all apache processes to a file.
hopefully it will contain something useful.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Trac 
Development" 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/trac-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to