- I am running a server application using JVM
sunjava-1.6.0_21
. - My application is data heavy and acts as a cache server. So it stores a lot of long living data that we do not expect to get GC throughout the application is running.
- I am setting following JVM parameters
-Xmx16384M
and-Xms16384M
. - After the required data has been loaded, following is the memory usage of application
- Total heap space is :
13969522688
- Maximum heap space is :
15271002112
- Free heap space is :
3031718040
- Long term (old gen) heap storage:
Used=10426MB Max=10922MB Used/Max=95%
Old gen usage - I have confirmed that is due to actual data and is not expected to get free. My question is that by default JVM sizing of heap space ( it is allocating 10922MB old gen), that is leaving very little free space in old gen section.
- Can less free space in old gen impact the application?
- If yes, how should I handle this? Should I experiment with JVM tuning parameters like
newratio
and try to increase space available for old gen or any other way I should tune the application.