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.
You can view the resource exhaustion from the problem page or even at that particular hosts page.
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.
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)
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.
Additional performance measurements for virtualized hosts
Virtualized hosts show additional measurements related to virtual machine memory usage. These metrics, along with other measurements, are used to detect memory saturation incidents.
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.
Rate at which memory is swapped from disk into active memory, and vice-versa, from active memory to disk.
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
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.
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
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.