<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Monitor JVM Heap Metrics in Dynatrace in Dynatrace tips</title>
    <link>https://community.dynatrace.com/t5/Dynatrace-tips/Monitor-JVM-Heap-Metrics-in-Dynatrace/m-p/21601#M3</link>
    <description>&lt;P&gt;&lt;EM&gt;Summary:&amp;nbsp;Dynatrace provides JVM heap metrics to monitor memory allocation and garbage collection. This thread explains how to access these metrics, interpret them, and optimise application performance using Dynatrace dashboards.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The most crucial information for optimizing the performance of a JVM is the allocation of memory heaps, knowing when the garbage collection activity suspends a process, and how much memory was utilized during this cycle.&lt;/P&gt;
&lt;P&gt;How can you see the real-time JVM metrics for your application?&lt;/P&gt;
&lt;P&gt;Dynatrace provides visibility into all the JVM metrics. This information is available for each Java process in the following way: &lt;IMG src="https://community.dynatrace.com/legacyfs/online/11850-jvm-metrics.png" border="0" /&gt;&lt;/P&gt;
&lt;P&gt;The memory pool sizes need to be configured to obtain the optimum garbage collection behavior. In this blog post, I will discuss the various memory pools and their impact on the application's performance.&lt;/P&gt;
&lt;P&gt;Eden Space: also known as Young Generation. This space contains all the newly created objects. Most objects are dereferenced or made unreachable soon after their creation.&lt;/P&gt;
&lt;P&gt;Survivor space: The objects that were not dereferenced in the young generation will be copied to survivor space by the garbage collector.&lt;/P&gt;
&lt;P&gt;Old Generation: The largest memory pool is for long living objects. The objects get copied to this space as they leave the survivor spaces.&lt;/P&gt;
&lt;P&gt;Perm Gen: This pool keeps information about the application classes. For most applications, this space does not require any configuration.&lt;/P&gt;
&lt;P&gt;Code Cache: The memory used for compilation and storage of native code.&lt;/P&gt;
&lt;P&gt;The basic principle guiding these memory pools is that the Eden space should be large enough to hold all temporary objects, and the old gen space should hold all permanent objects. The old gen space needs to be configured such that after a major GC, at least 50% of the space remains free, or the GC run times are too high.&lt;/P&gt;
&lt;P&gt;Garbage collections are “Stop the World” events, as all the application threads are stopped until the operation completes. As the Eden space keeps short-lived objects, minor GC is a fast process that does not affect the application, whereas major GC takes significantly longer as it needs to check all the live objects. This operation needs to be minimized because it will render the application unresponsive for its duration. The unresponsiveness of the application is measured only by Dynatrace and displayed as a value called Suspension, indicating the duration during which the application was in a suspended state due to the Major GC. This is an important variable to measure as increased GC activity causes a problem only when it is rendering an application unresponsive.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://community.dynatrace.com/legacyfs/online/11851-jvm-metrics1.png" border="0" /&gt;&lt;/P&gt;
&lt;P&gt;A large number of Major GCs eventually leads to timeout errors for the application. These are diagnosed by Dynatrace and are shown as Garbage Collection Problems on the dashboard. If there are no problems reported, you can navigate to the Java process and click on the area showing Suspension on the infographic, and get all the information.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What to read next:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:299,&amp;quot;335559739&amp;quot;:299}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;span class="lia-unicode-emoji" title=":open_book:"&gt;📖&lt;/span&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;A href="https://community.dynatrace.com/t5/Dynatrace-tips/PRO-TIP-Alert-on-OneAgent-running-outdated-version/m-p/281706#M1703" target="_blank" rel="noopener"&gt;PRO TIP: Alert on OneAgent running outdated version&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;span class="lia-unicode-emoji" title=":open_book:"&gt;📖&lt;/span&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&amp;nbsp;&lt;A href="https://community.dynatrace.com/t5/Dynatrace-tips/TIP-1-Extracting-values-from-a-JSON-ARRAY-using-DQL/m-p/281181#M1698" target="_blank" rel="noopener"&gt;TIP#1: Extracting values from a JSON_ARRAY using DQL&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;span class="lia-unicode-emoji" title=":open_book:"&gt;📖&lt;/span&gt;&amp;nbsp;&lt;A href="https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Solving-the-Unsolved-Automating-Dynatrace-SSL/td-p/286002" target="_blank" rel="noopener"&gt;Pro Tip: Solving the Unsolved - Automating Dynatrace SSL Certificate Monitoring&amp;nbsp;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 09 Dec 2025 07:46:18 GMT</pubDate>
    <dc:creator>safia_habib</dc:creator>
    <dc:date>2025-12-09T07:46:18Z</dc:date>
    <item>
      <title>Monitor JVM Heap Metrics in Dynatrace</title>
      <link>https://community.dynatrace.com/t5/Dynatrace-tips/Monitor-JVM-Heap-Metrics-in-Dynatrace/m-p/21601#M3</link>
      <description>&lt;P&gt;&lt;EM&gt;Summary:&amp;nbsp;Dynatrace provides JVM heap metrics to monitor memory allocation and garbage collection. This thread explains how to access these metrics, interpret them, and optimise application performance using Dynatrace dashboards.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The most crucial information for optimizing the performance of a JVM is the allocation of memory heaps, knowing when the garbage collection activity suspends a process, and how much memory was utilized during this cycle.&lt;/P&gt;
&lt;P&gt;How can you see the real-time JVM metrics for your application?&lt;/P&gt;
&lt;P&gt;Dynatrace provides visibility into all the JVM metrics. This information is available for each Java process in the following way: &lt;IMG src="https://community.dynatrace.com/legacyfs/online/11850-jvm-metrics.png" border="0" /&gt;&lt;/P&gt;
&lt;P&gt;The memory pool sizes need to be configured to obtain the optimum garbage collection behavior. In this blog post, I will discuss the various memory pools and their impact on the application's performance.&lt;/P&gt;
&lt;P&gt;Eden Space: also known as Young Generation. This space contains all the newly created objects. Most objects are dereferenced or made unreachable soon after their creation.&lt;/P&gt;
&lt;P&gt;Survivor space: The objects that were not dereferenced in the young generation will be copied to survivor space by the garbage collector.&lt;/P&gt;
&lt;P&gt;Old Generation: The largest memory pool is for long living objects. The objects get copied to this space as they leave the survivor spaces.&lt;/P&gt;
&lt;P&gt;Perm Gen: This pool keeps information about the application classes. For most applications, this space does not require any configuration.&lt;/P&gt;
&lt;P&gt;Code Cache: The memory used for compilation and storage of native code.&lt;/P&gt;
&lt;P&gt;The basic principle guiding these memory pools is that the Eden space should be large enough to hold all temporary objects, and the old gen space should hold all permanent objects. The old gen space needs to be configured such that after a major GC, at least 50% of the space remains free, or the GC run times are too high.&lt;/P&gt;
&lt;P&gt;Garbage collections are “Stop the World” events, as all the application threads are stopped until the operation completes. As the Eden space keeps short-lived objects, minor GC is a fast process that does not affect the application, whereas major GC takes significantly longer as it needs to check all the live objects. This operation needs to be minimized because it will render the application unresponsive for its duration. The unresponsiveness of the application is measured only by Dynatrace and displayed as a value called Suspension, indicating the duration during which the application was in a suspended state due to the Major GC. This is an important variable to measure as increased GC activity causes a problem only when it is rendering an application unresponsive.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://community.dynatrace.com/legacyfs/online/11851-jvm-metrics1.png" border="0" /&gt;&lt;/P&gt;
&lt;P&gt;A large number of Major GCs eventually leads to timeout errors for the application. These are diagnosed by Dynatrace and are shown as Garbage Collection Problems on the dashboard. If there are no problems reported, you can navigate to the Java process and click on the area showing Suspension on the infographic, and get all the information.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What to read next:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:299,&amp;quot;335559739&amp;quot;:299}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;span class="lia-unicode-emoji" title=":open_book:"&gt;📖&lt;/span&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;A href="https://community.dynatrace.com/t5/Dynatrace-tips/PRO-TIP-Alert-on-OneAgent-running-outdated-version/m-p/281706#M1703" target="_blank" rel="noopener"&gt;PRO TIP: Alert on OneAgent running outdated version&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;span class="lia-unicode-emoji" title=":open_book:"&gt;📖&lt;/span&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&amp;nbsp;&lt;A href="https://community.dynatrace.com/t5/Dynatrace-tips/TIP-1-Extracting-values-from-a-JSON-ARRAY-using-DQL/m-p/281181#M1698" target="_blank" rel="noopener"&gt;TIP#1: Extracting values from a JSON_ARRAY using DQL&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;span class="lia-unicode-emoji" title=":open_book:"&gt;📖&lt;/span&gt;&amp;nbsp;&lt;A href="https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Solving-the-Unsolved-Automating-Dynatrace-SSL/td-p/286002" target="_blank" rel="noopener"&gt;Pro Tip: Solving the Unsolved - Automating Dynatrace SSL Certificate Monitoring&amp;nbsp;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Dec 2025 07:46:18 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dynatrace-tips/Monitor-JVM-Heap-Metrics-in-Dynatrace/m-p/21601#M3</guid>
      <dc:creator>safia_habib</dc:creator>
      <dc:date>2025-12-09T07:46:18Z</dc:date>
    </item>
    <item>
      <title>Re: JVM Heap Metrics on Dynatrace</title>
      <link>https://community.dynatrace.com/t5/Dynatrace-tips/Monitor-JVM-Heap-Metrics-in-Dynatrace/m-p/21602#M4</link>
      <description>&lt;P&gt;Even if GC suspension doesn't slow down your app it might consume a lot of resources. Dynatrace also shows you how much CPU the GC is using as can be seen &lt;A href="https://blog.ruxit.com/view-garbage-collection-cpu-consumption/"&gt;here&lt;/A&gt;. Dynatrace now covers CPU consumption for all GCs, even CMS.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Aug 2015 05:32:47 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dynatrace-tips/Monitor-JVM-Heap-Metrics-in-Dynatrace/m-p/21602#M4</guid>
      <dc:creator>michael_kopp</dc:creator>
      <dc:date>2015-08-05T05:32:47Z</dc:date>
    </item>
    <item>
      <title>Re: JVM Heap Metrics on Dynatrace</title>
      <link>https://community.dynatrace.com/t5/Dynatrace-tips/Monitor-JVM-Heap-Metrics-in-Dynatrace/m-p/230473#M1107</link>
      <description>&lt;P&gt;Thanks for the great information you shared but I have a question.&lt;BR /&gt;How are these details captured by Dynatrace? I'm looking to understand what is the process how JVM metrics are being monitored by dynatrace. Can you please share the details around it.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Nov 2023 17:22:13 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dynatrace-tips/Monitor-JVM-Heap-Metrics-in-Dynatrace/m-p/230473#M1107</guid>
      <dc:creator>alijamshed</dc:creator>
      <dc:date>2023-11-30T17:22:13Z</dc:date>
    </item>
    <item>
      <title>Re: JVM Heap Metrics on Dynatrace</title>
      <link>https://community.dynatrace.com/t5/Dynatrace-tips/Monitor-JVM-Heap-Metrics-in-Dynatrace/m-p/245148#M1236</link>
      <description>&lt;P&gt;&lt;a href="https://community.dynatrace.com/t5/user/viewprofilepage/user-id/69413"&gt;@alijamshed&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;SPAN&gt;OneAgent gets the memory values directly from the JVM via default API&amp;nbsp;&lt;BR /&gt;&lt;A href="https://docs.oracle.com/javase/8/docs/api/java/lang/management/MemoryMXBean.html" rel="nofollow noreferrer" target="_blank"&gt;https://docs.oracle.com/javase/8/docs/api/java/lang/management/MemoryMXBean.html&lt;/A&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 09 May 2024 03:17:26 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dynatrace-tips/Monitor-JVM-Heap-Metrics-in-Dynatrace/m-p/245148#M1236</guid>
      <dc:creator>PierreGutierrez</dc:creator>
      <dc:date>2024-05-09T03:17:26Z</dc:date>
    </item>
  </channel>
</rss>

