scott_list at mischko.com
Fri Feb 28 10:17:29 EST 2003
In the meantime, you might set up a cron job at 7:45am that accesses the web pages before the rush starts so the stuff is "preloaded" and not swapped. On Thursday 27 February 2003 11:38 pm, Mike Looijmans wrote: >Your best bet is the prefork MPM. Remember that the 10M per child is >actually a lot less because pages for executables are shared between >processes on (most) UNIXes, certainly on Solaris they are. I find it hard >to believe that it is slower than regular CGI - it should be at least >several times faster, though not nearly as efficient as using the >publisher or a native handler. The trouble with performance is in our clients' access patterns. Basically, at 8:00 the whole world comes falling dowon on the machine and everybody wants to use it, accessing it many times each second. The rest of the day it's rather quiet. What appears to happen is that the apache child processes get their data segments swapped out during the quiet day to make room for other stuff that is running on the same machine. Then in the morning, that must all be swapped back and the first requests are incredibly slow. I noticed that the 'startup' effect almost vanished when i migrated from apache 1.3 to 2.0 (worker mpm). I think that's because the worker system can keep 20 child threads ready for action whereas the preforked processes tend to fall into coma. Also, the CGI scripts are run in a separate process by the server, which seems to reduce the overhead compared to the prefork way of starting the CGI. Apache 2.0 with prefork behaved similar to that.