On 6/6/06, John Morrissey <jwm@xxxxxxxxx> wrote:
I'm having a problem with Apache 2.0.54 (we're running the Debian packages for 2.0.54-5). Periodically, a single Apache child will rapidly consume all available memory on the machine - once the memory consumption starts, it only takes five or ten minutes (at most) for it to exhaust available memory. We're running it on a cluster of four identical machines (hardware, OS, configuration, etc.) and are seeing this problem across all of them. Right now, we have a cron job that spawns every five minutes to kill off errant children, and it's triggered a handful of times per day on these machines. Some configuration details: - Prefork MPM - Modules: cgi headers include ldap_userdir mime_magic php4 rewrite userdir Most content is static (HTML pages, images, etc.). This cluster takes fairly little PHP traffic, but what PHP it does do is important, so I can't disable PHP for testing. We have another cluster that takes heavy PHP traffic (~95% of its total hits) on identical hard/software versions that run with no problem, so I'm inclined to rule PHP out. Here's an example of an errant process before it was killed by our cron job: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND www-data 10354 0.0 88.5 2861024 1839504 ? D 14:06 0:37 /usr/sbin/apache2+-k start -DSSL
Change your LogFormat to include the PID of the serving process. Then you can go back and correlate teh PID of the memory hog with the requests it recently served. (See also mod_log_forensic, which will be necessary if the bad request never finishes.) 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@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx