Skip to Content

Java memory usage in SMP

We're having some issues on a SMP installation (3.0 SP11 on ASE on Windows) where the java process is misbehaving. Although the settings in the administrator tool have been set (max heap at 2GB and max permanent space at 512MB), the actual process on OS level takes a whopping 5.5GB of memory. It's only able to so so when the swap space defined on the system is at a minimum of 16GB (server has 8GB of RAM).

I would have expected an OOM to be thrown at about 2.5GB of memory use by java, but this is not the case. When looking at the process using jconsole, the actual used heap is about 1.5GB (the top of the graph is also at 2GB which corresponds with the settings).

What could explain the high memory use on OS level by java.exe, as it doesn't seem to be actually addressed by the process?

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Jan 23 at 07:39 AM

    Hello all,

    When looking at a thread dump of the affected java process, we can see this:

    "Start Level Event Dispatcher" #21 daemon prio=5 os_prio=0 cpu=26734.38 [reset 26734.38] ms elapsed=52714.69 [reset 52714.69] s allocated=7825647712 B (7.29 GB) [reset 7825647712 B (7.29 GB)] defined_classes=6439
    io= file i/o: 207935510/3776546 B, net i/o: 26953/10259 B, files opened:3192, socks opened:6 [reset file i/o: 207935510/3776546 B, net i/o: 26953/10259 B, files opened:3192, socks opened:6 ]
    tid=0x00000000241d3000 nid=0xd6c / 3436 in Object.wait() [_thread_blocked (_at_safepoint), stack(0x0000000025540000,0x0000000025640000)] [0x000000002563f000]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(J)V(Native Method)
    - waiting on <0x000000067001ae08> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
    at java.lang.Object.wait()V(Object.java:502)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent()Lorg/eclipse/osgi/framework/eventmgr/EventManager$EventThread$Queued;(EventManager.java:400)
    - locked <0x000000067001ae08> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run()V(EventManager.java:336)

    Anybody have any idea why this thread would need 7+GB's of memory, or what it's trying to do?

    Regards, Wilbert

    Add comment
    10|10000 characters needed characters exceeded