Jed Reynolds wrote: > > Merely increasing the number of workers might make performance worse. > > Use ps or top to figure out how much each apache worker is using. Then > decide how much ram you want to dedicate on your server to Apache, > without going into swap. (Over-allocating and then paging out memory > will only make performance much worse.) For example, if I have 2G or > ram, and I want 1.5 for apache workers, my average apache worker size > (resident memory) is 65MB, then I have room for 23 workers. (1024 * 1.5 > ) / 65. (There are more accurate ways to calculate this usage, like > taking shared memory into account.) Pay attention to shared memory when doing this. A freshly-forked process shares virtually all RAM with its parent. How much and how quickly this changes varies wildly with the application type and activity that causes the child's data to become unique. With some types of applications (especially mod_perl) you may want to tune down the number of hits each child services to increase memory sharing. Also, if you are running external cgi programs you must take them into account. > Upgrading the ram in your web server is a pretty fast interim solution. > > Consider your application performance, too. The longer a request in your > application takes, the more workers are in use on your web server, > taking up more memory. If you have long-running queries in your > database, take care of those first. You may also have to turn off or tune down the HTTP 1.1 connection keepalives, trading the time it takes to establish a new connection for the RAM it takes to keep the associated process waiting for another request from the same client. -- Les Mikesell lesmikesell at gmail.com