linux 2.4.23 SMP, two processors, i386.
after there are about 120 apache processes spawned
the server quickly bumps up to the MAX_CLIENTS limit.
strace shows lots (over 1000) continous
select(0, NULL, NULL, NULL, [0, 100]) calls
and occasionaly the usal stuff betwen them, when a request
finally gets served.
vmstat shows 30 000 to over 140 000 context switches per
second and machine becomes rather unresponsive and
setting MaxRequestsPerChild to 1 in httpd.conf helps a lot
load comes back to normal, vmstat reportings are sane,
but this workaround is a bit too harsh for the backend
database, which then goes crazy forking.
I've increased that magic value of 100 to 10000 in
mmcache.c and x86_spinlocks.h. It is easier on CPU, but
I would like to see more elegant solution.
Log in to post a comment.