26 Aug 2021 12:38 PM - last edited on 15 Jun 2023 01:09 PM by Karolina_Linda
Hi all,
what are the exact conditions when Dynatrace raises the Memory Resources Exhausted problem for a process? Where can I view the conditions for every Dynatrace problem?
Regards, Josep Maria
Solved! Go to Solution.
26 Aug 2021 01:04 PM - last edited on 20 Dec 2024 11:58 AM by MaciejNeumann
You can view the resource exhaustion from the problem page or even at that particular hosts page.
Memory health
Host pages include two memory-related metrics for your hosts, Memory used and Page faults. Both measurements and other factors, are used to correlate and calculate host high memory incidents.
Memory used
Percentage of total RAM used by processes. RAM used by system caches and buffers isn't included in this metric. Dynatrace calculates memory usage as:
memory_used = total_memory_size - (free_memory + active_memory + inactive_memory + reclaimamble_memory)
Page faults
Number of major page faults per second. Major page faults involve loading a page from disk, thereby adding disk latency to the interrupted program’s execution.
Virtualized hosts show additional measurements related to virtual machine memory usage. These metrics, along with other measurements, are used to detect memory saturation incidents.
Memory compressed
The rate of memory compression or decompression. Virtual machine management platforms use memory compression to reduce memory usage. Memory compression saves memory but requires additional CPU cycles. Content that had been previously compressed must be decompressed before it can be used by a virtual machine.
Memory swapped
Rate at which memory is swapped from disk into active memory, and vice-versa, from active memory to disk.
26 Aug 2021 01:14 PM
Hi @ChadTurner ,
I think your detailed explanation is related to "Memory saturation" (host problem) but not to "Memory Resources Exhausted" (process problem), it's possible?
Regards, Josep Maria
26 Aug 2021 01:26 PM
Exhausted Memory can happen at both levels. if a Host has 50 GB of memory and a process or processes use up all 50 GB then an alert will be raised at the host level stating that Memory is exhausted on Host X.
If you have a process say Java that is allocated to use 3 GB of memory, and that processes uses all of the 3 GB it is allowed/allocated to use then yes an exhaustion alert will be raised and more likely even crash which would then be in the collected crash logs. Meanwhile the host is running fine at 10 GB memory consumed with 40 GB still free.
Exhaustion can happen at all levels.
26 Aug 2021 02:09 PM
Thanks! But what are the exact conditions checked by Dynartace in order to trigger the "Memory Resources Exhausted" problem for a Java process?
Regards! Josep Maria
26 Aug 2021 02:23 PM
The check would be basically How much Memory is being used, vs how much is allowed. Much like 6 GB being used - 8 GB allowed = 2 GB remaining. or 6 GB used - 6 GB allowed = Memory Exhausted.