• Home
  • Platform modules
  • Applications and Microservices
  • Profiling and optimization
  • Memory dump analysis

Memory dump analysis

Dynatrace can store and analyze memory dumps for Java, .NET, and Node.js applications.

  • OneAgent first stores memory dumps locally on the disk of the monitored application-server machine.
  • It can subsequently upload the memory dumps automatically to an ActiveGate, which can act as a long-term storage center for memory dumps.

This approach ensures that memory dumps are available only to users who have access to the network location of your ActiveGate. This precaution provides an additional security layer to ensure that no personal data leaves your data center unless you configure it that way.

Memory dump page

Before you begin

  • You must configure an ActiveGate to store memory dumps.
  • Your application server must have adequate space to store the heap dump.
  • You need the View sensitive request data user permission to trigger memory dumps.

Note: .NET memory dumps are not supported in Alpine Linux based containers.

Trigger memory dumps

To trigger a memory dump

  1. Navigate to the Memory dumps page:
    • On the page of the entity that you want to analyze, select the Browse […] button and select Memory dump details.
    • In the Dynatrace menu, go to Profiling and optimization > Memory dumps.
  2. Select the process you want to analyze and select Trigger new dump to generate a new memory dump.
    It takes a few minutes to generate a memory dump. The time required varies widely based on application type. Java applications that have multiple GBs of heap memory may take several minutes; smaller dumps are available almost immediately.
    Java

    Dynatrace uses the JVM Tool Interface (JVM TI) to generate memory dumps. For this reason, your JVM may stall during memory-dump generation. Please restart your Java-based application following trigger of a memory dump.

  3. After a few minutes, refresh the page. The newly created dump now appears in the list.

Download and view memory dumps

  1. Navigate to the Memory dumps page:
    • On the page of the entity that you want to analyze, select the Browse […] button and select Memory dump details.
    • In the Dynatrace menu, go to Profiling and optimization > Memory dumps.
  2. Expand your memory dump record.
  3. From the Download link list, select the ActiveGate from where you want to download the memory dump.
  4. Select Download.

In the case of Java applications, the download provides the memory dump in hprof format, which can be analyzed using a number of tools, including Eclipse Memory analyzer and VisualVM. The IBM JVM doesn't support hprof, but its own format called IBM Portable Heap Dump (PHD). This can also be analyzed by the Eclipse Memory analyzer.

Node.js memory dumps can be opened in Google Chrome's integrated memory heap snapshot analysis tool.

.NET memory dumps can be opened in PerfView or Visual Studio.

Note: If you don't configure an ActiveGate, you will still be able to trigger a local memory dump, but you won't be able to download the data.

FAQ

If I enable memory dump analysis on multiple ActiveGates, which ActiveGate will perform the memory dump?

ActiveGates have an automatically assigned priority. If more than one ActiveGate has the same priority, an endpoint is selected randomly.

What happens if a file transfer to an ActiveGate fails?

OneAgent attempts to send the dump list to all available endpoints until it finds one that works. This process is retried until it's successful or until the dumps are deleted by aging tasks (for example, if there are too many or if they are too old).

What happens if ActiveGate runs out of space for memory dumps?

ActiveGate first deletes outdated dumps. If there are no outdated dumps, ActiveGate deletes the oldest dumps first.

Can I configure where OneAgent stores memory dumps?

Yes. OneAgent stores memory dumps locally and ensures that dumps do not leave your local network. You can customize the location of the memory dumps.

The end user can't access any of ActiveGate endpoints. Can I still provide access to the memory dump file?

Yes. Because from time to time an ActiveGate endpoint might not be accessible to the end user, ActiveGates can have multiple IP addresses, and so multiple endpoints. If all of the existing endpoints are not accessible to the end user at the same time, you can still provide access to the memory dump file.

  • You can enable remote access to the ActiveGate by changing the public endpoints.
    To learn how to configure a new endpoint, see:

    • Enable the memory dump module
    • Configure ActiveGate for memory dump storage
  • If remote access to the ActiveGate is not possible, you can download the memory dump file manually from the ActiveGate host.

    • To access the ActiveGate host, use a protocol that allows you to transfer files (such as sFTP or SSH).
    • To download the memory dump file, you need to learn the location of the file.
    • To be able to identify the memory dump, unzip its file via a protocol that includes a summary.json (such as sFTP or SSH).
Related topics
  • Dynatrace ActiveGate

    Understand the basic concepts related to ActiveGate.

  • Manage user groups and permissions

    Learn how to create and manage users and groups as well as how to grant permissions.