MPM Prefork Apache Uses Absurd Amount of Memory
- by Charlie JM
Help! My apache processes are all using 115MB of memory on startup.
Relevant information:
Linux version (uname -a)
Linux 2.6.31-14-generic-pae #48-Ubuntu SMP Fri Oct 16 15:22:42 UTC 2009 i686 GNU/Linux
Apache version (/usr/sbin/apache2 -v)
Server version: Apache/2.2.8 (Ubuntu)
Server built: Mar 9 2010 20:45:36
Top display (top -u www-data)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23377 www-data 20 0 115m 94m 3908 S 28 1.6 0:04.59 apache2
23375 www-data 20 0 119m 99m 5892 S 9 1.6 0:05.04 apache2
23324 www-data 20 0 116m 96m 5144 S 2 1.6 0:04.73 apache2
23283 www-data 20 0 115m 95m 4480 S 1 1.6 0:04.89 apache2
23259 www-data 20 0 116m 96m 5380 S 0 1.6 0:05.55 apache2
23370 www-data 20 0 115m 94m 4396 S 0 1.6 0:04.75 apache2
23229 www-data 20 0 116m 96m 6096 S 0 1.6 0:05.43 apache2
... and so on ...
Memory map (pmap $(pidof apache2)) (actually, just one apache2 process)
Most of the memory is [anon], see line 5
23324: /usr/sbin/apache2 -k start
08048000 332K r-x-- /usr/sbin/apache2
0809b000 8K rw--- /usr/sbin/apache2
0809d000 12K rw--- [ anon ]
093a0000 92812K rw--- [ anon ]
b5b6c000 4K rw--- [ anon ]
b5b6d000 512K rw-s- [ shmid=0x13528003 ]
b5fa8000 16K r-x-- /lib/tls/i686/cmov/libnss_dns-2.7.so
b5fac000 8K rw--- /lib/tls/i686/cmov/libnss_dns-2.7.so
b5fae000 120K r-x-- /usr/lib/php5/20060613+lfs/suhosin.so
b5fcc000 16K rw--- /usr/lib/php5/20060613+lfs/suhosin.so
b5fd0000 4K rw--- [ anon ]
b5fd1000 76K r-x-- /usr/lib/php5/20060613+lfs/pdo.so
b5fe4000 8K rw--- /usr/lib/php5/20060613+lfs/pdo.so
b5fe6000 92K r-x-- /usr/lib/php5/20060613+lfs/mysqli.so
b5ffd000 8K rw--- /usr/lib/php5/20060613+lfs/mysqli.so
b5fff000 1648K r-x-- /usr/lib/libmysqlclient.so.15.0.0
b619b000 268K rw--- /usr/lib/libmysqlclient.so.15.0.0
b61de000 4K rw--- [ anon ]
b61f0000 92K r-x-- /usr/lib/libxcb.so.1.0.0
b6207000 4K rw--- /usr/lib/libxcb.so.1.0.0
b6208000 164K r-x-- /usr/lib/libfontconfig.so.1.3.0
b6231000 4K rw--- /usr/lib/libfontconfig.so.1.3.0
b6232000 124K r-x-- /usr/lib/libjpeg.so.62.0.0
b6251000 4K rw--- /usr/lib/libjpeg.so.62.0.0
b6252000 136K r-x-- /usr/lib/libpng12.so.0.15.0
b6274000 4K rw--- /usr/lib/libpng12.so.0.15.0
b6275000 60K r-x-- /usr/lib/libXpm.so.4.11.0
b6284000 4K rw--- /usr/lib/libXpm.so.4.11.0
b6285000 912K r-x-- /usr/lib/libX11.so.6.2.0
b6369000 12K rw--- /usr/lib/libX11.so.6.2.0
b636c000 424K r-x-- /usr/lib/libfreetype.so.6.3.16
b63d6000 12K rw--- /usr/lib/libfreetype.so.6.3.16
b63d9000 236K r-x-- /usr/lib/libt1.so.5.1.1
b6414000 12K rw--- /usr/lib/libt1.so.5.1.1
b6417000 84K rw--- [ anon ]
b642c000 116K r-x-- /usr/lib/libgd.so.2.0.0
b6449000 128K rw--- /usr/lib/libgd.so.2.0.0
b6469000 16K rw--- [ anon ]
b646d000 88K r-x-- /usr/lib/php5/20060613+lfs/gd.so
b6483000 16K rw--- /usr/lib/php5/20060613+lfs/gd.so
b6487000 192K r-x-- /usr/lib/libidn.so.11.5.30
b64b7000 4K rw--- /usr/lib/libidn.so.11.5.30
b64b8000 232K r-x-- /usr/lib/libcurl.so.4.0.1
b64f2000 4K rw--- /usr/lib/libcurl.so.4.0.1
b64f8000 44K r-x-- /usr/lib/php5/20060613+lfs/mysql.so
b6503000 4K rw--- /usr/lib/php5/20060613+lfs/mysql.so
b6504000 268K r-x-- /usr/lib/libgmp.so.3.4.2
b6547000 4K rw--- /usr/lib/libgmp.so.3.4.2
b6548000 648K r-x-- /usr/lib/libclamav.so.5.0.4
b65ea000 44K rw--- /usr/lib/libclamav.so.5.0.4
b65f8000 52K r-x-- /usr/lib/php5/20060613+lfs/curl.so
b6605000 4K rw--- /usr/lib/php5/20060613+lfs/curl.so
b6606000 148K r-x-- /usr/lib/libmcrypt.so.4.4.7
b662b000 8K rw--- /usr/lib/libmcrypt.so.4.4.7
b662d000 28K rw--- [ anon ]
b6634000 24K r-x-- /usr/lib/php5/20060613+lfs/pdo_mysql.so
b663a000 4K rw--- /usr/lib/php5/20060613+lfs/pdo_mysql.so
b663b000 16K r-x-- /usr/lib/libXdmcp.so.6.0.0
b663f000 4K rw--- /usr/lib/libXdmcp.so.6.0.0
b6640000 12K r-x-- /usr/lib/php5/20060613+lfs/clamav.so
b6643000 4K rw--- /usr/lib/php5/20060613+lfs/clamav.so
b6644000 1036K r-x-- /usr/lib/libc-client.so.2007.0
b6747000 28K rw--- /usr/lib/libc-client.so.2007.0
b674e000 4K rw--- [ anon ]
b6750000 24K r-x-- /usr/lib/libltdl.so.3.1.6
b6756000 4K rw--- /usr/lib/libltdl.so.3.1.6
b6757000 32K r-x-- /usr/lib/php5/20060613+lfs/mcrypt.so
b675f000 4K rw--- /usr/lib/php5/20060613+lfs/mcrypt.so
b6760000 88K r-x-- /usr/lib/php5/20060613+lfs/imap.so
b6776000 4K rw--- /usr/lib/php5/20060613+lfs/imap.so
b6777000 104K r-x-- /usr/local/lib/libssh2.so
b6791000 4K rw--- /usr/local/lib/libssh2.so
b6792000 1324K r-x-- /usr/lib/ZendOptimizer.so
b68dd000 68K rw--- /usr/lib/ZendOptimizer.so
b68ee000 20K rw--- [ anon ]
b68f3000 8K r-x-- /usr/lib/libXau.so.6.0.0
b68f5000 4K rw--- /usr/lib/libXau.so.6.0.0
b68f6000 52K r-x-- /usr/lib/php5/20060613+lfs/ssh2.so
b6903000 4K rw--- /usr/lib/php5/20060613+lfs/ssh2.so
b6904000 252K r---- /usr/lib/locale/en_US.utf8/LC_CTYPE
b6974000 64K rw-s- /dev/zero (deleted)
b6984000 36K r-x-- /lib/tls/i686/cmov/libnss_files-2.7.so
b698d000 8K rw--- /lib/tls/i686/cmov/libnss_files-2.7.so
b698f000 32K r-x-- /lib/tls/i686/cmov/libnss_nis-2.7.so
b6997000 8K rw--- /lib/tls/i686/cmov/libnss_nis-2.7.so
b6999000 28K r-x-- /lib/tls/i686/cmov/libnss_compat-2.7.so
b69a0000 8K rw--- /lib/tls/i686/cmov/libnss_compat-2.7.so
b69a2000 36K r-x-- /lib/libpam.so.0.81.6
b69ab000 4K rw--- /lib/libpam.so.0.81.6
b69ac000 28K r--s- /usr/lib/gconv/gconv-modules.cache
b69b3000 8K r-x-- /usr/lib/apache2/modules/mod_userdir.so
b69b5000 4K rw--- /usr/lib/apache2/modules/mod_userdir.so
b69b6000 148K r-x-- /usr/lib/apache2/modules/mod_ssl.so
b69db000 8K rw--- /usr/lib/apache2/modules/mod_ssl.so
b69dd000 8K rw--- [ anon ]
b69df000 8K r-x-- /usr/lib/apache2/modules/mod_setenvif.so
b69e1000 4K rw--- /usr/lib/apache2/modules/mod_setenvif.so
b69e2000 1128K r-x-- /usr/lib/libxml2.so.2.6.31
b6afc000 20K rw--- /usr/lib/libxml2.so.2.6.31
b6b01000 4K rw--- [ anon ]
b6b02000 80K r-x-- /lib/tls/i686/cmov/libnsl-2.7.so
b6b16000 8K rw--- /lib/tls/i686/cmov/libnsl-2.7.so
b6b18000 8K rw--- [ anon ]
b6b1a000 140K r-x-- /lib/tls/i686/cmov/libm-2.7.so
b6b3d000 8K rw--- /lib/tls/i686/cmov/libm-2.7.so
b6b3f000 60K r-x-- /lib/libbz2.so.1.0.4
b6b4e000 4K rw--- /lib/libbz2.so.1.0.4
b6b4f000 4K r-x-- /usr/lib/libxcb-xlib.so.0.0.0
b6b50000 4K rw--- /usr/lib/libxcb-xlib.so.0.0.0
b6b51000 56K r-x-- /usr/lib/apache2/modules/mod_rewrite.so
b6b5f000 4K rw--- /usr/lib/apache2/modules/mod_rewrite.so
b6b60000 5060K r-x-- /usr/lib/apache2/modules/libphp5.so
b7051000 208K rw--- /usr/lib/apache2/modules/libphp5.so
b7085000 20K rw--- [ anon ]
b708a000 28K r-x-- /usr/lib/apache2/modules/mod_negotiation.so
b7091000 4K rw--- /usr/lib/apache2/modules/mod_negotiation.so
b7092000 12K r-x-- /usr/lib/apache2/modules/mod_mime.so
b7095000 4K rw--- /usr/lib/apache2/modules/mod_mime.so
b7096000 36K r-x-- /usr/lib/apache2/modules/mod_include.so
b709f000 4K rw--- /usr/lib/apache2/modules/mod_include.so
b70a0000 4K r-x-- /usr/lib/apache2/modules/mod_env.so
b70a1000 4K rw--- /usr/lib/apache2/modules/mod_env.so
b70a2000 4K r-x-- /usr/lib/apache2/modules/mod_dir.so
b70a3000 4K rw--- /usr/lib/apache2/modules/mod_dir.so
b70a4000 20K r-x-- /usr/lib/apache2/modules/mod_cgi.so
b70a9000 4K rw--- /usr/lib/apache2/modules/mod_cgi.so
b70aa000 28K r-x-- /usr/lib/apache2/modules/mod_autoindex.so
b70b1000 4K rw--- /usr/lib/apache2/modules/mod_autoindex.so
b70b2000 4K r-x-- /usr/lib/apache2/modules/mod_authz_user.so
b70b3000 4K rw--- /usr/lib/apache2/modules/mod_authz_user.so
b70b4000 8K r-x-- /usr/lib/apache2/modules/mod_authz_host.so
b70b6000 4K rw--- /usr/lib/apache2/modules/mod_authz_host.so
b70b7000 8K r-x-- /usr/lib/apache2/modules/mod_authz_groupfile.so
b70b9000 4K rw--- /usr/lib/apache2/modules/mod_authz_groupfile.so
b70ba000 8K rw--- [ anon ]
b70bc000 12K r-x-- /lib/libgpg-error.so.0.3.0
b70bf000 4K rw--- /lib/libgpg-error.so.0.3.0
b70c0000 4K rw--- [ anon ]
b70c1000 8K r-x-- /lib/libkeyutils-1.2.so
b70c3000 4K rw--- /lib/libkeyutils-1.2.so
b70c4000 28K r-x-- /usr/lib/libkrb5support.so.0.1
b70cb000 4K rw--- /usr/lib/libkrb5support.so.0.1
b70cc000 136K r-x-- /usr/lib/libk5crypto.so.3.1
b70ee000 4K rw--- /usr/lib/libk5crypto.so.3.1
b70ef000 300K r-x-- /lib/libgcrypt.so.11.2.3
b713a000 8K rw--- /lib/libgcrypt.so.11.2.3
b713c000 80K r-x-- /usr/lib/libz.so.1.2.3.3
b7150000 4K rw--- /usr/lib/libz.so.1.2.3.3
b7151000 4K rw--- [ anon ]
b7152000 60K r-x-- /usr/lib/libtasn1.so.3.0.12
b7161000 4K rw--- /usr/lib/libtasn1.so.3.0.12
b7162000 160K r-x-- /usr/lib/libgssapi_krb5.so.2.2
b718a000 4K rw--- /usr/lib/libgssapi_krb5.so.2.2
b718b000 8K r-x-- /lib/libcom_err.so.2.1
b718d000 4K rw--- /lib/libcom_err.so.2.1
b718e000 556K r-x-- /usr/lib/libkrb5.so.3.3
b7219000 8K rw--- /usr/lib/libkrb5.so.3.3
b721b000 1192K r-x-- /usr/lib/i686/cmov/libcrypto.so.0.9.8
b7345000 84K rw--- /usr/lib/i686/cmov/libcrypto.so.0.9.8
b735a000 16K rw--- [ anon ]
b735e000 248K r-x-- /usr/lib/i686/cmov/libssl.so.0.9.8
b739c000 16K rw--- /usr/lib/i686/cmov/libssl.so.0.9.8
b73a0000 452K r-x-- /usr/lib/libgnutls.so.13.9.1
b7411000 20K rw--- /usr/lib/libgnutls.so.13.9.1
b7416000 88K r-x-- /usr/lib/libsasl2.so.2.0.22
b742c000 4K rw--- /usr/lib/libsasl2.so.2.0.22
b742d000 60K r-x-- /lib/tls/i686/cmov/libresolv-2.7.so
b743c000 8K rw--- /lib/tls/i686/cmov/libresolv-2.7.so
b743e000 8K rw--- [ anon ]
b7440000 8K r-x-- /lib/tls/i686/cmov/libdl-2.7.so
b7442000 8K rw--- /lib/tls/i686/cmov/libdl-2.7.so
b7444000 36K r-x-- /lib/tls/i686/cmov/libcrypt-2.7.so
b744d000 8K rw--- /lib/tls/i686/cmov/libcrypt-2.7.so
b744f000 160K rw--- [ anon ]
b7477000 28K r-x-- /lib/tls/i686/cmov/librt-2.7.so
b747e000 8K rw--- /lib/tls/i686/cmov/librt-2.7.so
b7480000 12K r-x-- /lib/libuuid.so.1.2
b7483000 4K rw--- /lib/libuuid.so.1.2
b7484000 124K r-x-- /usr/lib/libexpat.so.1.5.2
b74a3000 8K rw--- /usr/lib/libexpat.so.1.5.2
b74a5000 396K r-x-- /usr/lib/libsqlite3.so.0.8.6
b7508000 8K rw--- /usr/lib/libsqlite3.so.0.8.6
b750a000 120K r-x-- /usr/lib/libpq.so.5.1
b7528000 4K rw--- /usr/lib/libpq.so.5.1
b7529000 1172K r-x-- /usr/lib/libdb-4.6.so
b764e000 8K rw--- /usr/lib/libdb-4.6.so
b7650000 4K rw--- [ anon ]
b7651000 48K r-x-- /usr/lib/liblber-2.4.so.2.0.5
b765d000 4K rw--- /usr/lib/liblber-2.4.so.2.0.5
b765e000 244K r-x-- /usr/lib/libldap_r-2.4.so.2.0.5
b769b000 4K rw--- /usr/lib/libldap_r-2.4.so.2.0.5
b769c000 8K rw--- [ anon ]
b769e000 1316K r-x-- /lib/tls/i686/cmov/libc-2.7.so
b77e7000 4K r---- /lib/tls/i686/cmov/libc-2.7.so
b77e8000 8K rw--- /lib/tls/i686/cmov/libc-2.7.so
b77ea000 12K rw--- [ anon ]
b77ed000 80K r-x-- /lib/tls/i686/cmov/libpthread-2.7.so
b7801000 8K rw--- /lib/tls/i686/cmov/libpthread-2.7.so
b7803000 8K rw--- [ anon ]
b7805000 136K r-x-- /usr/lib/libapr-1.so.0.2.11
b7827000 4K rw--- /usr/lib/libapr-1.so.0.2.11
b7828000 4K rw--- [ anon ]
b7829000 100K r-x-- /usr/lib/libaprutil-1.so.0.2.11
b7842000 4K rw--- /usr/lib/libaprutil-1.so.0.2.11
b7843000 152K r-x-- /usr/lib/libpcre.so.3.12.1
b7869000 4K rw--- /usr/lib/libpcre.so.3.12.1
b786a000 4K r-x-- /usr/lib/apache2/modules/mod_authz_default.so
b786b000 4K rw--- /usr/lib/apache2/modules/mod_authz_default.so
b786c000 4K r-x-- /usr/lib/apache2/modules/mod_authn_file.so
b786d000 4K rw--- /usr/lib/apache2/modules/mod_authn_file.so
b786e000 24K r-x-- /usr/lib/apache2/modules/mod_auth_digest.so
b7874000 4K rw--- /usr/lib/apache2/modules/mod_auth_digest.so
b7875000 8K r-x-- /usr/lib/apache2/modules/mod_auth_basic.so
b7877000 4K rw--- /usr/lib/apache2/modules/mod_auth_basic.so
b7878000 8K r-x-- /usr/lib/apache2/modules/mod_alias.so
b787a000 4K rw--- /usr/lib/apache2/modules/mod_alias.so
b787b000 8K rw--- [ anon ]
b787d000 4K r-x-- [ anon ]
b787e000 104K r-x-- /lib/ld-2.7.so
b7898000 8K rw--- /lib/ld-2.7.so
bfd68000 76K rwx-- [ stack ]
bfd7b000 8K rw--- [ anon ]
total 119008K
I have no idea what's going on. I've tried adjusting the usual parameters (MaxClients, MaxRequestsPerClient, etc, but those don't do anything.) Note, also, that this is memory usage on startup - it doesn't grow, it just starts like this and then stays more or less constant.
Ideas?