[users@httpd] Excessive memory consumption

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

The machine is actively swapping by this point, so I presume that's why it's
in disk wait. Backtraces for some recently killed processes are below; I'm
unsure of how many of them to trust, since some have sections like:

#30 0x0837d970 in ?? ()
#31 0x00000004 in ?? ()
#32 0x0837d970 in ?? ()

I checked the changelog for 2.0.58 as well as issues.a.o/bugzilla/, and
nothing pops out as a likely fix. If the Apache configuration on these
machines would be useful, I can also provide that. Any thoughts?

thanks!
john


#0  0x401a6599 in apr_brigade_cleanup () from /usr/lib/libaprutil-0.so.0
#1  0x401a660a in apr_brigade_destroy () from /usr/lib/libaprutil-0.so.0
#2  0x0808ee3b in ap_core_translate ()
#3  0x08086111 in ap_pass_brigade ()
#4  0x08086111 in ap_pass_brigade ()
#5  0x080676d1 in ap_http_header_filter ()
#6  0x08086111 in ap_pass_brigade ()
#7  0x08088bae in ap_content_length_filter ()
#8  0x08086111 in ap_pass_brigade ()
#9  0x08069128 in ap_byterange_filter ()
#10 0x08086111 in ap_pass_brigade ()
#11 0x4058bd05 in ?? () from /usr/lib/apache2/modules/mod_headers.so
#12 0x083683f8 in ?? ()
#13 0x0837c5d0 in ?? ()
#14 0x0837c1b0 in ?? ()
#15 0x00000000 in ?? ()
#16 0x081ad860 in ?? ()
#17 0x4058c360 in ?? () from /usr/lib/apache2/modules/mod_headers.so
#18 0xbfffe1f8 in ?? ()
#19 0x0837c5d4 in ?? ()
#20 0x08366368 in ?? ()
#21 0x083677a8 in ?? ()
#22 0xbfffe1f8 in ?? ()
#23 0x08086111 in ap_pass_brigade ()
#24 0x08086111 in ap_pass_brigade ()
#25 0x0808e387 in ap_core_translate ()
#26 0x08078375 in ap_run_handler ()
#27 0x08078980 in ap_invoke_handler ()
#28 0x08069c6a in ap_process_request ()
#29 0x0806512d in _start ()
#30 0x083677a8 in ?? ()
#31 0x00000004 in ?? ()
#32 0x083677a8 in ?? ()
#33 0x0808370c in ap_run_pre_connection ()
#34 0x080835c5 in ap_run_process_connection ()
#35 0x08076974 in ap_graceful_stop_signalled ()
#36 0x08076ac7 in ap_graceful_stop_signalled ()
#37 0x08076d59 in ap_graceful_stop_signalled ()
#38 0x08077445 in ap_mpm_run ()
#39 0x0807da8d in main ()

#0  0x4030afc0 in apr_allocator_set_mutex () from /usr/lib/libapr-0.so.0
#1  0x401a72f9 in apr_brigade_vprintf () from /usr/lib/libaprutil-0.so.0
#2  0x4030a76d in apr_pool_cleanup_run () from /usr/lib/libapr-0.so.0
#3  0x40309ead in apr_pool_destroy () from /usr/lib/libapr-0.so.0
#4  0x08075fc9 in ap_run_status_hook ()
#5  0x080768a5 in ap_graceful_stop_signalled ()
#6  0x08076ac7 in ap_graceful_stop_signalled ()
#7  0x08076d59 in ap_graceful_stop_signalled ()
#8  0x08077445 in ap_mpm_run ()
#9  0x0807da8d in main ()

#0  0x4035688c in accept () from /lib/tls/libpthread.so.0
#1  0x40302d29 in apr_socket_accept () from /usr/lib/libapr-0.so.0
#2  0x403033fd in apr_accept () from /usr/lib/libapr-0.so.0
#3  0x0809449e in unixd_accept ()
#4  0x080768f6 in ap_graceful_stop_signalled ()
#5  0x08076ac7 in ap_graceful_stop_signalled ()
#6  0x08076d59 in ap_graceful_stop_signalled ()
#7  0x08077445 in ap_mpm_run ()
#8  0x0807da8d in main ()

#0  0x4030afc0 in apr_allocator_set_mutex () from /usr/lib/libapr-0.so.0
#1  0x401a72f9 in apr_brigade_vprintf () from /usr/lib/libaprutil-0.so.0
#2  0x4030a76d in apr_pool_cleanup_run () from /usr/lib/libapr-0.so.0
#3  0x40309ead in apr_pool_destroy () from /usr/lib/libapr-0.so.0
#4  0x08075fc9 in ap_run_status_hook ()
#5  0x080768a5 in ap_graceful_stop_signalled ()
#6  0x08076ac7 in ap_graceful_stop_signalled ()
#7  0x08076d59 in ap_graceful_stop_signalled ()
#8  0x08077445 in ap_mpm_run ()
#9  0x0807da8d in main ()

-- 
John Morrissey          _o            /\         ----  __o
jwm@xxxxxxxxx        _-< \_          /  \       ----  <  \,
www.horde.net/    __(_)/_(_)________/    \_______(_) /_(_)__

---------------------------------------------------------------------
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



[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux