Graham,

I played a little bit with worker MPM parameters. In particular I tested your suggestion to increase to 2 StartServers. This has no effect on the problem. I also tried to raise MaxSpareThread to MaxClient and suppressed child recycling (MaxRequestPerChild=0) to suppress restart of child as it seems to trig the problem with mod_pyton. No effect.

I also checked the load during all these tests. Almost no request. So the heavy load syndroma you described doesn't seem to apply in this case.

Again, one month ago I tested during 2 or 3 days an Apache configuration with mod_python loaded and without any url to trig its usages. And the problem was already the same. So it seems this is not related to mod_python usage (it happens even if you didn't execute any Python code) but rather to mod_python interaction with other Apache components.

Michel

--On mardi 22 novembre 2005 00:37 -0500 Graham Dumpleton <[EMAIL PROTECTED]> wrote:

Sorry, a couple more questions.

When you kill the child process, is Apache under load, ie., receiving
lots of requests or in an idle state with no requests being received?
Also, do you get the same results if you set "StartServers" to 2 and
kill off only one child process?

If you only have one child process and kill it, and lots of requests are
coming in, am wandering if Apache gets confused, thinking that the newly
spawned child process isn't ready and thus it decides to start a new
one. If this were happening but you have "StartServers" at 2 to begin
with such that you always have at least 1 child process even when you
kill off one of the originals, all those requests coming in would get
bumped off to the remaining child process and Apache may decide
not to create additional child processes.

Hope you can see what I am thinking.

Graham


Michel Jouvin wrote ..
Graham,

Sorry for the ambiguity. With worker MPM, the max number of process is
the
max number of threads divided by the number of thread per process. My
config is :

# 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

<IfModule worker.c>
MaxClients       245
StartServers     1
MinSpareThreads  5
MaxSpareThreads 10
ThreadsPerChild 35
</IfModule>

In our case that means that one process can handle 35 requessts and
normally we have only one httpd slave running.

After mod_python receives a signal like KILL or SEGV (in fact anything
except TERM or HUP if  I am right, you can test with kill command), I
have 8 httpd slave processes and the following message in main Apache
error log
file :

[error] server reached MaxClients setting, consider raising the
MaxClients setting

The only solution is to stop and start (not graceful restart) Apache.

Cheers,

Michel

--On lundi 21 novembre 2005 19:28 -0500 Graham Dumpleton
<[EMAIL PROTECTED]> wrote:

> Michel Jouvin wrote ..
>> Hi,
>>
>> I recently installed mod_python 3.2b5 on Apache 2.0.54. I am running
with
>> problems if httpd slave process segfaults or is killed. In this case,
>> master process restart the max number of processes/threads. We are
>> running Apache with the MPM worker (on Tru64 platform).
>>
>> This behaviour appears only if mod_python is loaded into Apache. this
>> doesn't seem to be related to mod_python usage : this can happen if
you
>> load mod_python even if no URL is configured to use it. You can easily
>> reproduce the problem by doing 'kill -KILL' of an Apache slave
>> process.
>>
>> Is it a known issue ? Are they any workaround ?
>
> What settings do you have in Apache config for:
>
> <IfModule worker.c>
># StartServers         2
> StartServers         1
> MaxClients         150
> MinSpareThreads     25
> MaxSpareThreads     75
> ThreadsPerChild     25
> MaxRequestsPerChild  0
> </IfModule>
>
> Can you then relate your problem to your configuration with actual
> numbers?
>
> Note that with "worker" configuration, there isn't generally a
> MaxSpareServers or MinSpareServers setting as I understand, that is for
> prefork only.
>
> <IfModule prefork.c>
> StartServers         5
> MinSpareServers      5
> MaxSpareServers     10
> MaxClients         150
> MaxRequestsPerChild  0
> </IfModule>
>
> So not sure when you say that it creates maximum number of processes
> what you are exactly talking about. I might expect it to create number
> of processes as specified by StartServers.
>
> Thus, can you please clarify.
>
> Graham



     *************************************************************
     * Michel Jouvin                 Email : [EMAIL PROTECTED] *
     * LAL / CNRS                    Tel : +33 1 64468932        *
     * B.P. 34                       Fax : +33 1 69079404        *
     * 91898 Orsay Cedex                                         *
     * France                                                    *
     *************************************************************



    *************************************************************
    * Michel Jouvin                 Email : [EMAIL PROTECTED] *
    * LAL / CNRS                    Tel : +33 1 64468932        *
    * B.P. 34                       Fax : +33 1 69079404        *
    * 91898 Orsay Cedex                                         *
    * France                                                    *
    *************************************************************


Reply via email to