high default JVM memory usage / memory footprint on AMD 64

I'm seeing a default java 1.6 memory usage of over 250MB when running an empty main() that just sleeps when the jvm's run with -Xms16m -Xmx32m. I've already read this thread:

http://forum.java.sun.com/thread.jspa?threadID=651637&start=0&tstart=0

I've tried tweaking -XX:ReservedCodeCacheSize but I can only get that number down to about 200MB. pmap shows a bunch of anonymous r/w areas that are consuming much of the memory.

This problem is exacerbated when running Tomcat. I see memory usage shoot up to 750MB - 1GB despite limiting max heap size.

Any help is greatly appreciated.

java version "1.6.0"

Java(TM) SE Runtime Environment (build 1.6.0-b105)

Java HotSpot(TM) 64-Bit Server VM (build 1.6.0-b105, mixed mode)

Linux 2.6.16.29-xen #3 SMP Sun Oct 15 13:15:34 BST 2006 x86_64 GNU/Linux

Here's MyMain:

package com.me;

publicclass MyMain

{

publicstaticvoid main(String[] args)throws Exception

{

Thread.sleep(60000);

}

}

Here's the pmap:

12170:java -Xms16m -Xmx32m -cp /home/me com.me.MyMain

AddressKbytes Mode OffsetDeviceMapping

000000004000000036 r-x-- 0000000000000000 008:00001 java

00000000401080008 rwx-- 0000000000008000 008:00001 java

000000004010a000132 rwx-- 000000004010a000 000:00000[ anon ]

000000004012b00012 -- 000000004012b000 000:00000[ anon ]

000000004012e0001016 rwx-- 000000004012e000 000:00000[ anon ]

000000004022c0004 -- 000000004022c000 000:00000[ anon ]

000000004022d0001024 rwx-- 000000004022d000 000:00000[ anon ]

000000004032d00012 -- 000000004032d000 000:00000[ anon ]

00000000403300001016 rwx-- 0000000040330000 000:00000[ anon ]

000000004042e00012 -- 000000004042e000 000:00000[ anon ]

00000000404310001016 rwx-- 0000000040431000 000:00000[ anon ]

000000004052f00012 -- 000000004052f000 000:00000[ anon ]

00000000405320001016 rwx-- 0000000040532000 000:00000[ anon ]

000000004063000012 -- 0000000040630000 000:00000[ anon ]

00000000406330001016 rwx-- 0000000040633000 000:00000[ anon ]

000000004073100012 -- 0000000040731000 000:00000[ anon ]

00000000407340001016 rwx-- 0000000040734000 000:00000[ anon ]

000000004083200012 -- 0000000040832000 000:00000[ anon ]

00000000408350001016 rwx-- 0000000040835000 000:00000[ anon ]

00000000409330004 -- 0000000040933000 000:00000[ anon ]

00000000409340001024 rwx-- 0000000040934000 000:00000[ anon ]

00002aaaaaab300028 r-x-- 0000000000000000 008:00001 librt-2.3.6.so

00002aaaaaaba0001024 -- 0000000000007000 008:00001 librt-2.3.6.so

00002aaaaabba0008 rwx-- 0000000000007000 008:00001 librt-2.3.6.so

00002aaaaabbc0004 r-x-- 00002aaaaabbc000 000:00000[ anon ]

00002aaaaabbd0004 rwx-- 00002aaaaabbd000 000:00000[ anon ]

00002aaaaabbe00028 r-x-- 0000000000000000 008:00001 libhpi.so

00002aaaaabc50001028 -- 0000000000007000 008:00001 libhpi.so

00002aaaaacc60008 rwx-- 0000000000008000 008:00001 libhpi.so

00002aaaaacc80004 rwx-- 00002aaaaacc8000 000:00000[ anon ]

00002aaaaaccd00080 r-x-- 0000000000000000 008:00001 libnsl-2.3.6.so

00002aaaaace10001020 -- 0000000000014000 008:00001 libnsl-2.3.6.so

00002aaaaade00008 rwx-- 0000000000013000 008:00001 libnsl-2.3.6.so

00002aaaaade20008 rwx-- 00002aaaaade2000 000:00000[ anon ]

00002aaaaade400028 r-x-- 0000000000000000 008:00001 libnss_compat-2.3.6.so

00002aaaaadeb0001024 -- 0000000000007000 008:00001 libnss_compat-2.3.6.so

00002aaaaaeeb0008 rwx-- 0000000000007000 008:00001 libnss_compat-2.3.6.so

00002aaaaaeed00036 r-x-- 0000000000000000 008:00001 libnss_nis-2.3.6.so

00002aaaaaef60001024 -- 0000000000009000 008:00001 libnss_nis-2.3.6.so

00002aaaaaff60008 rwx-- 0000000000009000 008:00001 libnss_nis-2.3.6.so

00002aaaaaff800040 r-x-- 0000000000000000 008:00001 libnss_files-2.3.6.so

00002aaaab0020001020 -- 000000000000a000 008:00001 libnss_files-2.3.6.so

00002aaaab1010008 rwx-- 0000000000009000 008:00001 libnss_files-2.3.6.so

00002aaaab10300032 rwxs- 0000000000000000 008:00001 12170

00002aaaab10b00052 r-x-- 0000000000000000 008:00001 libverify.so

00002aaaab1180001020 -- 000000000000d000 008:00001 libverify.so

00002aaaab21700012 rwx-- 000000000000c000 008:00001 libverify.so

00002aaaab21a000160 r-x-- 0000000000000000 008:00001 libjava.so

00002aaaab2420001024 -- 0000000000028000 008:00001 libjava.so

00002aaaab34200028 rwx-- 0000000000028000 008:00001 libjava.so

00002aaaab34900056 r-x-- 0000000000000000 008:00001 libzip.so

00002aaaab3570001032 -- 000000000000e000 008:00001 libzip.so

00002aaaab45900012 rwx-- 0000000000010000 008:00001 libzip.so

00002aaaab45c0002500 rwx-- 00002aaaab45c000 000:00000[ anon ]

00002aaaab6cd00046656 rwx-- 00002aaaab6cd000 000:00000[ anon ]

00002aaaae45d00040 rwx-- 00002aaaae45d000 000:00000[ anon ]

00002aaaae467000728 rwx-- 00002aaaae467000 000:00000[ anon ]

00002aaaae5200005440 rwx-- 00002aaaae520000 000:00000[ anon ]

00002aaaaea700005440 rwx-- 00002aaaaea70000 000:00000[ anon ]

00002aaaaefc000010944 rwx-- 00002aaaaefc0000 000:00000[ anon ]

00002aaaafa7000010944 rwx-- 00002aaaafa70000 000:00000[ anon ]

00002aaab052000021248 rwx-- 00002aaab0520000 000:00000[ anon ]

00002aaab19e000064768 rwx-- 00002aaab19e0000 000:00000[ anon ]

00002aaab592000012 rwx-- 00002aaab5920000 000:00000[ anon ]

00002aaab59230008 rwx-- 00002aaab5923000 000:00000[ anon ]

00002aaab592500024 rwx-- 00002aaab5925000 000:00000[ anon ]

00002aaab592b00020 rwx-- 00002aaab592b000 000:00000[ anon ]

00002aaab593000044 rwx-- 00002aaab5930000 000:00000[ anon ]

00002aaab593b000124 rwx-- 00002aaab593b000 000:00000[ anon ]

00002aaab595a00028 rwx-- 00002aaab595a000 000:00000[ anon ]

00002aaab596100020 rwx-- 00002aaab5961000 000:00000[ anon ]

00002aaab596600044 rwx-- 00002aaab5966000 000:00000[ anon ]

00002aaab5971000128 rwx-- 00002aaab5971000 000:00000[ anon ]

00002aaab59910001184 rwx-- 00002aaab5991000 000:00000[ anon ]

00002aaab5ab90001512 r-xs- 00000000027a6000 008:00001 rt.jar

00002b2edb33c00092 r-x-- 0000000000000000 008:00001 ld-2.3.6.so

00002b2edb3530008 rwx-- 00002b2edb353000 000:00000[ anon ]

00002b2edb4520008 rwx-- 0000000000016000 008:00001 ld-2.3.6.so

00002b2edb45400064 r-x-- 0000000000000000 008:00001 libpthread-2.3.6.so

00002b2edb4640001020 -- 0000000000010000 008:00001 libpthread-2.3.6.so

00002b2edb5630008 rwx-- 000000000000f000 008:00001 libpthread-2.3.6.so

00002b2edb56500020 rwx-- 00002b2edb565000 000:00000[ anon ]

00002b2edb56a00028 r-x-- 0000000000000000 008:00001 libjli.so

00002b2edb5710001028 -- 0000000000007000 008:00001 libjli.so

00002b2edb6720008 rwx-- 0000000000008000 008:00001 libjli.so

00002b2edb6740008 r-x-- 0000000000000000 008:00001 libdl-2.3.6.so

00002b2edb6760001020 -- 0000000000002000 008:00001 libdl-2.3.6.so

00002b2edb7750008 rwx-- 0000000000001000 008:00001 libdl-2.3.6.so

00002b2edb7770001156 r-x-- 0000000000000000 008:00001 libc-2.3.6.so

00002b2edb8980001024 -- 0000000000121000 008:00001 libc-2.3.6.so

00002b2edb99800084 r-x-- 0000000000121000 008:00001 libc-2.3.6.so

00002b2edb9ad00012 rwx-- 0000000000136000 008:00001 libc-2.3.6.so

00002b2edb9b000024 rwx-- 00002b2edb9b0000 000:00000[ anon ]

00002b2edb9b60006632 r-x-- 0000000000000000 008:00001 libjvm.so

00002b2edc0300001032 -- 000000000067a000 008:00001 libjvm.so

00002b2edc1320001200 rwx-- 000000000067c000 008:00001 libjvm.so

00002b2edc25e000236 rwx-- 00002b2edc25e000 000:00000[ anon ]

00002b2edc29d000516 r-x-- 0000000000000000 008:00001 libm-2.3.6.so

00002b2edc31e0001020 -- 0000000000081000 008:00001 libm-2.3.6.so

00002b2edc41d0008 rwx-- 0000000000080000 008:00001 libm-2.3.6.so

00007fffffbba00084 rwx-- 00007fffffbba000 000:00000[ stack ]

ffffffffff6000008192 -- 0000000000000000 000:00000[ anon ]

mapped: 215700Kwriteable/private: 181384Kshared: 1544K

[8613 byte] By [velshina] at [2007-11-27 4:20:03]
# 1
Can anyone enlighten me on this issue?
velshina at 2007-7-12 9:27:01 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 2

I'd second this. We're also seeing a gradual growth in virtual allocations (I can't tell if their committed or just reserved). This is on Redhat AS4. We're going to try to turn off JIT compilation to see if the growth in the native heap continues.

But it would be nice if Sun could tell us what the source of, at a minimum, the large initial allocations are.

brettw1a at 2007-7-12 9:27:01 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 3
I'm also seeing this on Red Hat AS 4 (Nahant Update 3) with jdk1.5.0_07.The anon blocks seem to appear when I create a jmx MBeanServers and never disappear, even after the mbeanserver has long since been GCed.Anyone got any ideas?
Rob1232334534a at 2007-7-12 9:27:01 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 4
I still haven't seen any solutions to this issue. Anyone know where to look for answers?
velshina at 2007-7-12 9:27:01 > top of Java-index,Java HotSpot Virtual Machine,Specifications...