High Virtual Memory usage by pure Java Process running on SUSE Linux

I have a pure java process which is running on SUSE Linux installed on a VM (Virtual Machine). The max heap of java process is set to 128 MB.
What i am observing is,

  • Virtual memory consumed by this process is very high, more than 900MB.
  • The Resident memory is below 250MB.
  • The process is running for days without any OOM issue. So, there is no java memory leak.
  • The process does not use any JNI calls directly. So, chances of native memory leak is less (only if JVM has some leaks).

I am not able to understand why the process is holding on to 900 MB of virtual memory.

More details about the process is given below -
The process spawns around 40 Java threads to handle incoming HTTP requests.
It uses Java sockets to communicate to the back end.

Any suggestions on how to proceed with the investigation will be highly appreciated.

Hi
These are the openSUSE forums (not the Enterprise product), can you
please re-ask your question on the SUSE forum at http://forums.suse.com


Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel 3.0.13-0.27-default
up 1 day 16:29, 2 users, load average: 0.04, 0.04, 0.05
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU

On 2012-02-27 20:16, unnisworld wrote:
> I am not able to understand why the process is holding on to 900 MB of
> virtual memory.

Perhaps if you ask in the programming subforum… :-?


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)