# High Virtual Mem usage by pure Java Process running on SUSE

**URL:** https://forums.suse.com/t/high-virtual-mem-usage-by-pure-java-process-running-on-suse/22272
**Category:** SLES Virtualization
**Created:** [February 28, 2012, 6:06am UTC](https://forums.suse.com/t/high-virtual-mem-usage-by-pure-java-process-running-on-suse/22272 "2012-02-28T06:06:53Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![unnisworld](https://avatars.discourse-cdn.com/v4/letter/u/77aa72/32.png) [@unnisworld](https://forums.suse.com/u/unnisworld)
#### Post date: [February 28, 2012, 6:06am UTC](https://forums.suse.com/t/high-virtual-mem-usage-by-pure-java-process-running-on-suse/22272/1 "2012-02-28T06:06:53Z")

</div>

I have a pure java process which is running on SUSE Linux installed on a VM (Vmware 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 (can happen only if JVM has some leaks).

I am not able to understand why the process is holding on to 900 MB of virtual memory. At present there is lot of swap space left on the machine.  
Is the OS behaving lazy here by not reclaiming the virtual memory allocated to processes, until the OS runs out of virtual memory space?

More details about the process is given below -  
The process spawns Java threads to handle incoming HTTP requests. I do not see any thread leaks (from thread dump).  
It uses Java sockets to communicate to the back end in-memory cache store (Coherence).

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

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex022/uploads/suse/original/2X/5/5012ba89e3ffb5220dac47d5ea0ba032e2fe1cb6.png) [@system](https://forums.suse.com/u/system)
#### Post date: [February 28, 2012, 7:01am UTC](https://forums.suse.com/t/high-virtual-mem-usage-by-pure-java-process-running-on-suse/22272/2 "2012-02-28T07:01:03Z")

</div>

-----BEGIN PGP SIGNED MESSAGE-----  
Hash: SHA1

There’s a big difference between the heap available to a JVM and the  
memory used by Java for that same environment. heap is always going to  
be less, maybe a lot less, than what the system actually has in use for  
the Java process itself. As an example, your ‘java’ binary, its  
built-in JARs, and all of the libraries that interface with the OS  
reside outside of the heap, and anything those use directly will be  
outside the heap. The heap is only there for use by the JVM, which  
doesn’t know/care about all of that stuff happening outside of it to  
make it nicely cross-platform.

Good luck.  
-----BEGIN PGP SIGNATURE-----  
Version: GnuPG v2.0.18 (GNU/Linux)  
Comment: Using GnuPG with Mozilla - [http://enigmail.mozdev.org/](http://enigmail.mozdev.org/)

iQIcBAEBAgAGBQJPTF+OAAoJEF+XTK08PnB5YXcQAI7sE9KLzxB3P+z0f2XGVvxx  
rNrtYcHWXVWqPimI3yGqtYFoo0xzoxWfheKaMh0Kv5YQr/KCA1lgCLGvoWfpNQ1Q  
CL5c4EI6WO2zUC2I9Uhd2fkgVD8hXkT9l1VUK7qMcRIHJlUEcwDbmV5Za2a7Al0A  
84R6d0wFfagVGxXLtZTm/Ka1D5zQY/ES9i+Ao8EedRSljwhUZLgzW7CmVyaHinLW  
47sZw47BHVf48BObfgHO0FeSAd/i0RY/t39RmtJPUSGGozNC+z3mttpY+jNVY6CL  
XCnvH7gQ2mhbTDjoI+d2GixXv6wOfrHIQDv2VIiAH4BQK/yCWW2X0MOwlW8HHwLy  
vEg0TScavW1DNHdKYIvkFeyQ1asNYBweJjS+K69AjmTgrmGguNOgq1xMZ1fVCuso  
jTbvz8YWSPGzxwox7O8cpoRqPpvwin8oVr3aMdLEnNRiKp4iHyov68uGtmaFHl68  
vn5v+BNhNchMhBK1rsBp/nedgcJgvpDglVDfzOnv0k262BvaHojij9ubmcYZeETy  
PlCre/tBkTjnhJNOEhnHrM9bVbtWLKyn7q7yLOnuyUIuYTesPp7cIivNRnQN7YCX  
8QmMhA1cj/fZH+CXWkpxBg7AEp5fPSk5CrcbadBNdzhwjzf68gmCFX7qcPl2LyY/  
LQdylMBy28pf5Z8TtqJr  
=u0ix  
-----END PGP SIGNATURE-----

---

<div class="post-metadata">

### Author: ![unnisworld](https://avatars.discourse-cdn.com/v4/letter/u/77aa72/32.png) [@unnisworld](https://forums.suse.com/u/unnisworld)
#### Post date: [February 28, 2012, 11:02am UTC](https://forums.suse.com/t/high-virtual-mem-usage-by-pure-java-process-running-on-suse/22272/3 "2012-02-28T11:02:39Z")

</div>

ab, thanks for the reply. I should have been more specific. What is concerning is not the difference between heap memory allocated and the virtual memory size. It is the constant growth in virtual memory of this process which is seen as an potential problem. The load on this process is same throughout the day, but the VM size keeps on increasing. Attaching a graph below, which shows the virtual memory growth of this process taken from collectl output - [http://www.flickr.com/photos/unnisworld/6937446297/](http://www.flickr.com/photos/unnisworld/6937446297/)

From /proc//status i can see that it is VmData which is growing consistently.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex022/uploads/suse/original/2X/5/5012ba89e3ffb5220dac47d5ea0ba032e2fe1cb6.png) [@system](https://forums.suse.com/u/system)
#### Post date: [February 28, 2012, 4:00pm UTC](https://forums.suse.com/t/high-virtual-mem-usage-by-pure-java-process-running-on-suse/22272/4 "2012-02-28T16:00:22Z")

</div>

-----BEGIN PGP SIGNED MESSAGE-----  
Hash: SHA1

I’m learning a bit from this:

[http://serverfault.com/questions/138427/top-what-does-virtual-memory-size-mean-linux-ubuntu](http://serverfault.com/questions/138427/top-what-does-virtual-memory-size-mean-linux-ubuntu)

Good luck.  
-----BEGIN PGP SIGNATURE-----  
Version: GnuPG v2.0.18 (GNU/Linux)  
Comment: Using GnuPG with Mozilla - [http://enigmail.mozdev.org/](http://enigmail.mozdev.org/)

iQIcBAEBAgAGBQJPTN31AAoJEF+XTK08PnB5fcYP/3GGFpTLbyl9EWhA78Pk0IHy  
i6UKaimjzYm8PsNC+vadBaUjMHlb6AT6c69HSjxalcgr+AkHaEo0FwMVgxws2n6q  
S4pO+iGtESfAGRSdTdlYl1XYtlOSS5/aUr9uDIDMC1mj/VM0WApX4NodciSW/fMf  
9bzXrxiqa0RT2WxmiQqyeVYdIhBTfoHbaz8Lw7xOZqR2JRZegOyf9BbGKe1U2aJj  
6XmNS2nP1WXMIndLe4LoXSVDclCvSDIeGZXILkvtkXDjaHYyb42yTRms/qy5r31Y  
plHDl4ShWOTQdZ0dSUZL+J6mLCfbYXusjhDZ4iSAPm5/y0mlTMzR65YsIMnNnBYZ  
kCNhRIiyEL4lTuo0IUy9TsE1QRrzEWMLZxnZeExBtFQgPXO3Bp+N8FfL5CdfUrxX  
TlZt+7kcNypo8Q0jdFKaC8a5DSIxwoPgFT7wPxFYA/tF4eP0mHFUGDynUIcCiuVJ  
LkfiCVKiwUFFMlb8+ON5IF42SOiDP7A9L2IiefQlC7HBBhtlx3zZxr9+R5Z5+ooB  
kZCAbbt83jXVYdRirUAfp6KHvWowFUGU4KkqFYl/Dnm4UShNey5H1+gqvyDjXhOm  
Q9lw+jO7HGCO/ojiPB7H5ABLI0syCFg+1RLm0CSg6zojxAvDg/taDqpGs/zdj6JZ  
Pzasuqjq4STJYCYl5RzG  
=e3Kp  
-----END PGP SIGNATURE-----

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex022/uploads/suse/original/2X/5/5012ba89e3ffb5220dac47d5ea0ba032e2fe1cb6.png) [@system](https://forums.suse.com/u/system)
#### Post date: [February 28, 2012, 4:35pm UTC](https://forums.suse.com/t/high-virtual-mem-usage-by-pure-java-process-running-on-suse/22272/5 "2012-02-28T16:35:59Z")

</div>

-----BEGIN PGP SIGNED MESSAGE-----  
Hash: SHA1

Another good post:

[http://stackoverflow.com/questions/561245/virtual-memory-usage-from-java-under-linux-too-much-memory-used](http://stackoverflow.com/questions/561245/virtual-memory-usage-from-java-under-linux-too-much-memory-used)

Good luck.  
-----BEGIN PGP SIGNATURE-----  
Version: GnuPG v2.0.18 (GNU/Linux)  
Comment: Using GnuPG with Mozilla - [http://enigmail.mozdev.org/](http://enigmail.mozdev.org/)

iQIcBAEBAgAGBQJPTOZPAAoJEF+XTK08PnB52IAP/ix09RhmfA5EMkH5VO27iuE1  
BruVHTdrEccM6VDtvyYI/YVuE0a5ImXTXfhV3XgCU8xU05s/NQSNVkly4XDbgvGV  
Z3ujVZUpfPIgo5l+AQLFArFMDlS25IXhQcn00X0sythWj5GtZpDNUJvqOMv67iWU  
7A0RMHnw1vaRymvtTGHqWlECBX8dbU32IQ9Jaa5X0kiwY9RB8FlhX8j38C1I4a6Q  
isfvkgeMUFTDk4Tpgc+DiCJEDQADDVbkdGcWpHjUgRRPUfK7J2PhcbmZb80qBBLQ  
LhZVIUWRV1NilQy9oi3b0pRNtS654H28GFNnXrdW5C7GuQ7Sp5YHovvPyZgpfiP0  
sFOfBN5YbRElpHJjpEU3V8Z+P4r8bfGk85eM3LFb5NiIm8lKWO2cbM98HdGLTEhB  
iw65Ci+PeoZnzUmQGkRVUde9yEgzSXPAORI1CZ1uckUmpdMqnzGuFsTP/UEdR89x  
Zp+S1CKit4ZdE74+l+rPcpKKa+vUwYsVafth4BCW3tjLu7d1BaAywgfwelnC7VRh  
b5dxWwpXa5mfvXZdnbxXkqCkuKX0ctJiuFRsf5A1qvk4gfrZtSfkM+2oYPFagnU0  
PI9cjQtampitbrZhbR6hnQtLu3bVRrtdYb2P8CUiPx2NYBV+dQc8phVjoLx3mnxT  
dNjhmHfwLPqofZV8Fc/J  
=fCnZ  
-----END PGP SIGNATURE-----
