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
java_mem_init = -Xms1024m
java_mem_max = -Xmx2048m
Is this behavior expected?
Release : 20.3, 20.4
Component : UIM - ALARM_ENRICHMENT
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.