search cancel

alarm_enrichment probe uses memory beyond the default Heap max amount on Unix OS type

book

Article ID: 243656

calendar_today

Updated On:

Products

DX Unified Infrastructure Management (Nimsoft / UIM) CA Infrastructure Management CA Unified Infrastructure Management On-Premise (Nimsoft / UIM)

Issue/Introduction

NAS Probe on Linux OS Type with default configuration. 

We have noticed that alarm_enrichment probe uses more memory than the specific Heap memory setting in startup opt section.

Memory usage ranges from 5gb to 7gb. Note: used  ps -ef | grep alarm_enrichment followed by pmap to display the process memory map

Default java memory settings for alarm_enrichment

   <opt>
      java_mem_init = -Xms1024m
      java_mem_max = -Xmx2048m
   </opt>

Question:

Is this behavior expected?

Environment

Release : 20.3, 20.4

Component : UIM - ALARM_ENRICHMENT

Resolution

In our probe we can only specify the Heap Memory(Xmx and Xms) not the others.
 
The JVM memory consists of the following segments:
1. Heap Memory, which is the storage for Java objects
2. Non-Heap Memory, which is used by Java to store loaded classes and other meta-data
3. JVM code itself, JVM internal structures, loaded profile agent code and data, etc.
 
The JVM has a heap that is the run-time data area from which memory for all class instances and arrays are allocated. It is created at the JVM start-up.
The heap size may be configured with the following VM options:
-Xmx<size> - to set the maximum Java heap size
-Xms<size> - to set the initial Java heap size
By default, the maximum heap size is 64 MB.
 
Heap memory for objects is reclaimed by an automatic memory management system which is known as a garbage collector. 
The heap may be of a fixed size or may be expanded and shrunk, depending on the garbage collector's strategy.

When using these settings, keep in mind that these settings are for the JVM's heap, and that the JVM can/will use more memory 
than just the size allocated to the heap.

For more information please refer to the Oracle's documentation http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/garbage_collect.html.
 
JVM uses more memory than just the heap. For example Java methods, thread stacks and native handles are allocated in memory separate from the heap, as well as JVM internal data structures.