apache 100% cpu usage

Payam Poursaied me at payam124.com
Sat Feb 19 05:10:03 UTC 2011


Hi all
I faced with a problem using apache 1.3.42 on FreeBSD 8.0-RELEASE.
The problem is that httpd processes frequently reach 100% CPU usage and stay
at this level of CPU usage. 
This is a sample of top output. 

  PID USERNAME   THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
77051 www          1 118    0   208M 86080K CPU4    4  87.6H 100.00% httpd
 9403 www          1 118    0   215M 93340K CPU2    2  65.0H 100.00% httpd
78430 www          1 118    0   226M   100M CPU0    0  58:57 100.00% httpd
95332 www          1  50    0   205M 83624K sbwait 12   0:02  4.49% httpd
89664 www          1  46    0   210M 88144K sbwait 11   0:05  2.59% httpd
95331 www          1  46    0   205M 83464K sbwait 12   0:01  1.66% httpd
46157 www          1  47    0   258M   134M sbwait 15   3:03  1.17% httpd
89493 www          1  44    0   212M 90152K accept 13   0:20  0.10% httpd
22801 www          1  44    0   264M   137M accept 13   5:40  0.00% httpd
25440 www          1  44    0   275M   145M accept 11   5:35  0.00% httpd
30396 www          1  44    0   262M   135M accept 14   4:47  0.00% httpd
82456 www          1  44    0   233M   109M accept 12   1:37  0.00% httpd
80407 www          1  44    0   239M   110M accept 10   0:49  0.00% httpd
80097 www          1  44    0   265M   135M accept  1   0:35  0.00% httpd
88622 www          1  46    0   216M 94588K accept 15   0:16  0.00% httpd
88968 www          1  44    0   208M 86316K accept  6   0:03  0.00% httpd
89686 www          1  44    0   201M 80216K accept 11   0:01  0.00% httpd
95330 www          1  44    0   201M 77088K sbwait 10   0:00  0.00% httpd

I think there might be a bug that caused something like endless loop but I
am newbie to gdb and debugging and I could not find any relevant point to
get into it.
I tried to compile apache in debug mode and then wait to see a suspicious
process and then attached GDB66 to that cpu intensive httpd process to find
out what is going on. It seems the problem is related to something in
/lib/libc.so.7 which I could not find out how to compile it in debug mode.

The result of "list" and "where" command of GDB are as below, I appreciate
if you could point me to right direction to examine this problem deeply.
As an extra information, mod_perl is heavily used trough this apache

(gdb) l
5640
5641    #ifdef TPF
5642        EBW_AREA input_parms;
5643        ecbptr()->ebrout = PRIMECRAS;
5644        input_parms = * (EBW_AREA *)(&(ecbptr()->ebw000));
5645    #endif
5646
5647        MONCONTROL(0);
5648
5649        common_init();
(gdb) w
Ambiguous command "w": watch, wh, whatis, where, while, while-stepping,
winheight, ws.
(gdb) where
#0  0x000000080093a9f5 in ?? () from /lib/libc.so.7
#1  0x000000080093d505 in ?? () from /lib/libc.so.7
#2  0x000000080093d702 in ?? () from /lib/libc.so.7
#3  0x000000080094352e in ?? () from /lib/libc.so.7
#4  0x0000000800944924 in realloc () from /lib/libc.so.7
#5  0x000000080307a50f in Perl_safesysrealloc () from
/usr/local/lib/perl5/5.10.1/mach/CORE/libperl.so
#6  0x00000008030a6156 in Perl_sv_grow () from
/usr/local/lib/perl5/5.10.1/mach/CORE/libperl.so
#7  0x000000080309e32e in Perl_sv_vcatpvfn () from
/usr/local/lib/perl5/5.10.1/mach/CORE/libperl.so
#8  0x00000008030a7b42 in Perl_vnewSVpvf () from
/usr/local/lib/perl5/5.10.1/mach/CORE/libperl.so
#9  0x00000008030a7bf8 in Perl_newSVpvf () from
/usr/local/lib/perl5/5.10.1/mach/CORE/libperl.so
#10 0x000000080303da32 in Perl_gv_fetchmethod_autoload () from
/usr/local/lib/perl5/5.10.1/mach/CORE/libperl.so
#11 0x000000080308edca in S_method_common () from
/usr/local/lib/perl5/5.10.1/mach/CORE/libperl.so
#12 0x000000080308f462 in Perl_pp_method () from
/usr/local/lib/perl5/5.10.1/mach/CORE/libperl.so
#13 0x000000080308eb9e in Perl_runops_standard () from
/usr/local/lib/perl5/5.10.1/mach/CORE/libperl.so
#14 0x0000000803036191 in Perl_call_sv () from
/usr/local/lib/perl5/5.10.1/mach/CORE/libperl.so
#15 0x0000000802eabe36 in perl_call_handler () from
/usr/local/libexec/apache/libperl.so
#16 0x0000000802eac87a in perl_run_stacked_handlers () from
/usr/local/libexec/apache/libperl.so
#17 0x0000000802eae2b0 in perl_handler () from
/usr/local/libexec/apache/libperl.so
#18 0x000000000040ee42 in ap_invoke_handler (r=0x804624060) at
http_config.c:476
#19 0x0000000000427849 in process_request_internal (r=0x804624060) at
http_request.c:1299
#20 0x00000000004278a4 in ap_process_request (r=0x804624060) at
http_request.c:1315
#21 0x000000000041d423 in child_main (child_num_arg=14) at http_main.c:4885
#22 0x000000000041d734 in make_child (s=0x800c05060, slot=14,
now=1297853738) at http_main.c:5055
#23 0x000000000041db6b in perform_idle_server_maintenance () at
http_main.c:5256
#24 0x000000000041e159 in standalone_main (argc=1, argv=0x7fffffffebd8) at
http_main.c:5520
#25 0x000000000041e7a4 in main (argc=1, argv=0x7fffffffebd8) at
http_main.c:5773
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5686 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-apache/attachments/20110219/5eefed55/smime.bin


More information about the freebsd-apache mailing list