uCosminexus Application Server, Expansion Guide

[Contents][Index][Back][Next]

8.3 Overview of memory space used in the Explicit Memory Management functionality

This subsection describes the structure of an Explicit heap, which is the memory space used by the Explicit Memory Management functionality. For details on the configuration of memory space used by JavaVM, see 7.1.2 Configuration of memory spaces used by JavaVM and JavaVM options in the uCosminexus Application Server System Design Guide.

TheExplicit heap is a memory space that is not targeted for the garbage collection. It is configured from multiple memory blocks. Memory blocks that configure an Explicit heap are called Explicit memory blocks. The Explicit heap is a concept that represents all Explicit memory blocks.

Execute operations such as initialization and release for each Explicit memory block unit.

The following figure shows the concept of an Explicit heap.

Figure 8-4 Concept of Explicit heap

[Figure]

Set the maximum size of an Explicit heap in the JavaVM startup option -XX:HitachiExplicitHeapMaxSize. For details on the -XX:HitachiExplicitHeapMaxSize option, see -XX:HitachiExplicitHeapMaxSize (Maximum size specification option of the Explicit memory block) in the uCosminexus Application Server Definition Reference Guide. You can generate (initialize) maximum 1,048,575 Explicit memory blocks. You cannot generate Explicit memory blocks more than the maximum number.

There are two types of methods to secure the memory; the method of securing memory area in a batch when starting JavaVM and the method of securing memory area as and when required. This subsection describes both the methods.

Method of securing the memory area in a batch when starting JavaVM
This method is applicable when you are using the automatic placement functionality of the Explicit Memory Management functionality (when you have specified -XX:+HitachiAutoExplicitMemory option) or when you are using the 64-bit version Application Server.
The actual memory area of the maximum size of the Explicit heap, that you have specified in the -XX:HitachiExplicitHeapMaxSize option, is secured when JavaVM is started. The area is secured as a continued area from the Java heap and Permanent area.
If the memory required to place Java objects in the Explicit memory blocks is insufficient, the memory area for Explicit memory blocks is secured from the area of the Explicit heap that was secured when starting JavaVM. For this reason, the memory area in the Explicit memory blocks is divided into multiple areas.
The following figure shows the image of using the virtual memory space.

Figure 8-5 Image of using the virtual memory space (for 64-bit version)

[Figure]
Although the area for an Explicit heap is a continued area, the area used in a single Explicit memory block is non-continuous.

Method of securing memory area as and when required
This method is applicable when you are not using automatic placement functionality of the Explicit Memory Management functionality (when you have specified -XX:-HitachiAutoExplicitMemory option) and you are using the 32-bit version Application Server.
In this case, the memory is not secured in a batch. The memory is secured when the Explicit memory block requires memory. Therefore, the Explicit heap is a non-continuous area.
If the memory required to place objects in Explicit memory blocks is insufficient, the memory area is secured from OS as and when required. For this reason, the memory area in Explicit memory blocks is also divided into multiple areas.
The following figure shows the image of using the virtual memory space.

Figure 8-6 Image of using the virtual memory space (for 32-bit version)

[Figure]
The area for an Explicit heap and the area used in a single Explicit memory block are non-continuous areas.