Search this blog for other interesting articles

Tuesday, 16 July 2013

Explain Java Virtual Memory in SAP

This article answers following queries :

Explain memory management of Java Virtual Machine(JVM) in SAP
Explain JVM memory areas in SAP
Explain Young generation, Tenured generation and Permanent Generations
How to maintain JVM parameters  in SAP?
Which tool is used to configure Java VM settings in SAP?
How JVM automatically takes care of memory allocation?
Explain Used memory, Allocated memory, Virtual memory

----------------------------------------------------------------------------------


The JVM automatically takes care of allocation of memory space for java applications.

A “generation” reserves space in the address area of the host.

While starting sap system, the java virtual machine allocates operating system memory for each of the generations. This initially allocated memory is termed as “initial” or “initial size”. After complete usage of initial size, the java virtual machine further allocates memory in stages upto a maximum defined value termed as “max size”.

The memory space that is available is called the available memory or allocated memory. Since this space is reserved by the operating system, it is also called as “reserved space”. The space that is not reserved is called as “virtual memory”. 

The “ reserved space”  is available to the JVM. However, not all the memory is used always. It will be used based on the requirement. The memory that is actually used by the java applications is termed as “used memory”. If less space is required by the java application, the memory is returned to the operating system in stages. 

The memory area of JVM is mainly divided into 3 areas as listed below
Young generation
Tenured generation
Permanent generation

The 3 memory areas Young, Tenured and Permanent differ based on the data stored in them. Each of these generations has an initial and maximum size.

Young Generation : The objects that have been newly created by the applications are stored in the younger generation.

For younger generation, we can define initial size and maximum size with the parameters  -XX:NewSize and –XX:MaxNewSize respectively

 Tenured Generation: The objects that have been required for a longer period of time by an application are automatically moved to the tenured generation
For tenured generation, we cannot directly set initial size and maximum size directly. These are calculated from the parameters of the younger generation and the parameters  –Xms and  –Xmx.

The parameter –Xms is the “start heap size” or “initial heap size” and it defines the total initial size of the young and tenured generations.

The parameter  -Xmx is the “max heap size” and it defines the total size of the young and tenured generations.

So indirectly, it means that 
Initial size of tenured generation =  (-Xms)  -  (-XX:NewSize)
Maximum size of tenured generation = (-Xmx) – (–XX:MaxNewSize)

Permanent Generation : The objects that are permanently required by the JVM such as classes and objects are stored in the Permanent Generation.

For permanent generation, we can define initial size and maximum size with the parameters –XX:PermSize and  –XX:MaxPermSize respectively

Config Tool is the only tool used to set JVM parameters in an SAP java system.






11 comments:

Deepak NV said...

Why there is no recent updates in the blog??
After may we are able to see only one blog....

DurgaPrasad said...

Hi Deepak..Thanks for your concern. Was bit occupied in last couple of months. Will try to spend more time on blog.

Anonymous said...

Wow Its Nice Article. Thanks For Sharing

sap fico said...

Thanks for the sharing best information.

Anonymous said...

Excellent piece of knowledge, I had come back to read concerning your web site from my friend shiva, bangalore. I have readed atleast eight posts of your website and let me tell you, your website provides the most fascinating information. This is the knowledge that I had been craving for, I am already your rss reader currently and that I would frequently be careful for the new posts. Thanks plenty another time

magnific said...

Have you ever considered adding more videos to your blog posts to keep the readers more entertained? I mean I just read through the entire article of yours and it was quite good but since Im more of a visual learner,I found that to be more helpful well let me know how it turns out! I love what you guys are always up too. Such clever work and reporting! Keep up the great works guys Ive added you guys to my blogroll. This is a great article thanks for sharing this informative information.. I will visit your blog regularly for some latest post.

Anonymous said...

Hi there,I enjoy reading through your article post, I wanted to write a little comment to support you and wish you a good continuationAll the best for all your blogging efforts. Appreciate the recommendation! Let me try it out. Keep working ,great job!

--- Sirisha siri

Ashik said...

This is a great article thanks for sharing this informative information..

Anonymous said...

Thank you for sharing such a nice article with us, I was little confused in Java Virtual Memory in SAP, but after reading this article it helps me a lot to understand. --- John Wilson

Unknown said...

durga you well talented person.thanks for sharing your thouts to us.

Unknown said...

Very good blog Durga...very simple and easy to understand

Search this blog for other interesting articles

Please subscribe & activate link received to your email id to receive latest articles

Enter your email address:

Delivered by FeedBurner