You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Evert Lammerts <ev...@gmail.com> on 2008/03/19 15:42:11 UTC
[users@httpd] Re: apache process locks at 100% cpu usage
And how about this: after benchmarking apache with ab -c 100 -n 10000 an
apache process is left in the process list for a while with <defunct>
appended - it disappears after a minute or so.
If I benchmark the server from two different machines with two different
requests, apache locks up, the benchmarks time out and the server is
left with a process list filled with apache2 processes that need to be
killed with killall. It does seem to be a concurrency problem but I
can't figure out where it comes from. Any help would be great!
Evert
Evert Lammerts wrote:
> Hi all,
>
> On a php driven webpage we do 2 asynchronous requests with an
> xmlhttprequest immediately after the page loads. The first request
> returns without a problem, the second never returns and leaves the
> server (ubuntu dapper drake with apache 2.2.4) with an apache process
> using (according to the top command) 100% CPU. If you try, in the same
> browser window, to go to an other page the request wont load and
> stopping the server does not kill the process.
>
> I did some debugging with xDebug on the second request after the
> pageload (which does not use any database functions) and doing this,
> or in other words delaying the response of the service, lets the
> request finish fine and doesn't leave the server with an unfinished
> process.
>
> Any idea what to do?
>
> I have the impression this has something to do with concurrent request
> handling, MPM. We're using prefork and the settings are:
>
> # prefork
> MPM
>
> # StartServers: number of server processes to
> start
>
> # MinSpareServers: minimum number of server processes which are kept
> spare #
> MaxSpareServers: maximum number of server processes which are kept
> spare # MaxClients:
> maximum number of server processes allowed to
> start #
> MaxRequestsPerChild: maximum number of requests a server process
> serves <IfModule
> mpm_prefork_module>
>
> StartServers
> 10
>
> MinSpareServers
> 10
>
> MaxSpareServers
> 100
>
> MaxClients
> 150
>
> MaxRequestsPerChild
> 0
>
> </IfModule>
>
> Thanks, Evert
>
>
>
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org
Re: [users@httpd] Re: apache process locks at 100% cpu usage
Posted by Joshua Slive <jo...@slive.ca>.
On Wed, Mar 19, 2008 at 10:42 AM, Evert Lammerts
<ev...@gmail.com> wrote:
> And how about this: after benchmarking apache with ab -c 100 -n 10000 an
> apache process is left in the process list for a while with <defunct>
> appended - it disappears after a minute or so.
>
> If I benchmark the server from two different machines with two different
> requests, apache locks up, the benchmarks time out and the server is
> left with a process list filled with apache2 processes that need to be
> killed with killall. It does seem to be a concurrency problem but I
> can't figure out where it comes from. Any help would be great!
Session locking?
This is almost surely some kind of lock contention in your php code.
You can grab a live backtrace of a "stuck" process to see where the
problem is:
http://httpd.apache.org/dev/debugging.html#backtrace
Joshua.
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org