[ILUG] Apache gobbling CPU
Justin Mason
jm at jmason.org
Wed Aug 6 09:49:30 IST 2008
Niall O Broin writes:
> I just encountered an odd situation on a webserver where the load had
> become rather high, and top was showing me two apache processes each
> consuming > 45% of CPU. Running strace on one of the processes I saw
> that it was doing the below (and nothing else, or nothing else strace-
> able) in a loop:
>
> open("/etc/hosts", O_RDONLY) = 55
> fcntl64(55, F_GETFD) = 0
> fcntl64(55, F_SETFD, FD_CLOEXEC) = 0
> fstat64(55, {st_mode=S_IFREG|0644, st_size=300, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) = 0xb6477000
> read(55, "127.0.0.1 localhost loc"..., 4096) = 300
> read(55, "", 4096) = 0
> close(55) = 0
> munmap(0xb6477000, 4096) = 0
>
> So, I killed it whereupon the CPU usage of its partner in crime jumped
> to over 90% and strace revealed it to be engaged in the same
> behaviour, which got it the same treatment, and load is back down to a
> sensible figure.
>
> In all likelihood, this was caused by some piece of PHP gone mad but
> the question is, what, and how to find out? Given such a situation, is
> there any way of mapping a particular apache process to a request?
mod_status is your friend!
--j.
More information about the ILUG
mailing list