Hi!
We're currently tracking down a memory usage issue that is keeping JBoss from
completing some performance tests of our application. These currently run
under WebLogic and WebSphere - but I'm pushing JBoss as a solution.
Our questions are:
1) Why is JBoss using so much memory in the thread local variable? Please see
the memory map below for more info. Is this normal? Is there something
special we have to do in order to clear this out?
2) Does JBoss pass by reference for local calls by default? For us WebLogic
does and we had to enable a setting in WebSphere to enable this. Is there a
similar setting in JBoss or is it the default behaviour?
In our latest test, we ran with the IBM JDK, so that we could get a heapdump
and analyze it using their tools (useful for breaking down memory usage).
Below is the memory graph/map created by IBMs heapdump analyzer tool.
Thanks in advance,
Chris Plough
| Dumping object(s) : 63443 roots, sorted by total-size
| Filter : total-size = 10,485,760 and depth at most 100
| Prune : N
|
|
| 0 [1,019,475,328] 0x002d8d68 [304] class com/ibm/jvm/ExtendedSystem
| 1 [1,019,090,504] 0x002d6c28 [304] class java/io/ObjectStreamClass
| 2 [1,018,581,104] 0x101ec490 [40] sun/misc/SoftCache
| 3 [1,018,581,064] 0x101ec430 [56] java/util/HashMap
| 4 [1,018,581,008] 0x496c3850 [112] array of
java/util/HashMap$Entry
| 5 [1,018,517,232] 0x15711e08 [32] java/util/HashMap$Entry
| 6 [1,018,516,712] 0x15711ea0 [32]
java/io/ObjectStreamClass$FieldReflectorKey
| 7 [1,018,516,552] 0x06341318 [304] class
java/lang/reflect/Proxy
| 8 [1,017,499,736] 0x10668168 [40]
java/util/Collections$SynchronizedMap
| 9 [1,017,499,696] 0x106681a8 [56] java/util/WeakHashMap
| 10 [1,017,499,640] 0x1ebf7a38 [11,160] array of
java/util/WeakHashMap$Entry
| 11 [1,012,199,400] 0x1eaeab90 [40]
java/util/WeakHashMap$Entry
| 12 [1,012,189,720] 0x462546e8 [40]
java/util/WeakHashMap$Entry
| 13 [1,012,182,360] 0x1614f7b8 [40]
java/util/WeakHashMap$Entry
| 14 [1,012,182,320] 0x1062abb0 [304] class
$Proxy2785
| 15 [1,012,174,152] 0x161500b0 [72]
java/lang/reflect/Method
| 16 [1,012,174,080] 0x1cfaf948 [72]
java/lang/reflect/Method
| 17 [1,012,173,944] 0x020b8c38 [304] class
java/util/ResourceBundle
| 18 [1,012,173,520] 0x10269478 [40]
sun/misc/SoftCache
| 19 [1,012,173,480] 0x102861e0 [56]
java/util/HashMap
| 20 [1,012,173,424] 0x1a860890 [288] array
of java/util/HashMap$Entry
| 21 [1,012,029,248] 0x1b860e58 [32]
java/util/HashMap$Entry
| 22 [1,012,028,496] 0x1b860e78 [48]
sun/misc/SoftCache$ValueCell
| 23 [1,011,801,880] 0x10283208 [32]
java/lang/ref/ReferenceQueue
| 24 [1,011,801,832] 0x1b91f2a8 [48]
sun/misc/SoftCache$ValueCell
| 25 [1,011,801,712] 0x1b895408 [48]
sun/misc/SoftCache$ValueCell
| 26 [1,011,801,592] 0x1b91f218 [48]
sun/misc/SoftCache$ValueCell
| 27 [1,011,799,504] 0x1b91f240 [32]
java/util/ResourceBundle$ResourceCacheKey
| 28 [1,011,799,472] 0x1b91f260 [40]
java/lang/ref/SoftReference
| 29 [1,011,799,432] 0x101eb158 [176]
org/jboss/mx/loading/UnifiedClassLoader3
| 30 [999,482,456] 0x101eb5d0 [128]
org/jboss/system/server/NoAnnotationURLClassLoader
| 31 [999,456,200] 0x10313cb8 [32]
java/util/Vector
| 32 [999,456,168] 0x10a0d540 [2,368] array
of java/lang/Object
| 33 [999,338,480] 0x103137c8 [304] class
org/jboss/util/timeout/TimeoutFactory
| 34 [999,338,176] 0x11dc8fa0 [32]
org/jboss/util/timeout/TimeoutFactory
| 35 [999,335,560] 0x11903e90 [64]
org/jboss/util/threadpool/BasicThreadPool
| 36 [999,335,048] 0x143cf930 [56]
java/lang/ThreadGroup
| 37 [999,334,856] 0x1029b410 [56]
java/lang/ThreadGroup
| 38 [999,324,872] 0x101f61d8 [56]
java/lang/ThreadGroup
| 39 [999,324,584] 0x101f6280 [56]
java/lang/ThreadGroup
| 40 [612,919,104] 0x101ffd08 [24] array of
java/lang/ThreadGroup
| 41