IBM Support

Garbage Collection and Memory Visualizer

How To


Summary

The IBM Monitoring and Diagnostic Tools - Garbage Collection and Memory Visualizer (GCMV) tool analyzes verbose garbage collection to investigate Java performance and OutOfMemoryError issues.

Steps

Verbose garbage collection generally has an overhead of less than 0.1% so we recommend always running with it in production. WebSphere Application Server traditional version 9 creates verbosegc files by default. For WebSphere Application Server traditional version 8.5, we recommend enabling verbosegc. Similarly, for WebSphere Liberty, we recommend enabling verbosegc.
  1. Download:
    1. Windows x86 64-bit
    2. macOS x86 64-bit
      1. After downloading, open the Terminal application, change directory to where you downloaded the file and run:
        xattr -d com.apple.quarantine *.tar.gz
    3. Linux 64-bit
  2. Extract the downloaded file
  3. GCMV must be run with IBM Java 8 or IBM Semeru 8. If you do not have this version, then you must first download it (for example, IBM Semeru Open Edition or IBM Java).
    1. Check if such a Java 8 is on your PATH:
      1. Open a Command Prompt, Terminal, Console, or similar program depending on your operating system.
      2. Run java -version and confirm it is IBM Java 8 or IBM Semeru 8.
    2. If such a Java 8 is on your PATH, then you may skip this step. Otherwise, if it is not on your PATH or you had to extract Java into an arbitrary directory because you did not have permissions to run the Java system installer, then you must configure GCMV to point to this Java 8 directory:
      1. Open the gcmv.ini file in a text editor.
        1. On Windows, do not use Notepad but use WordPad or a similar program
        2. On macOS, if using Finder, right click Eclipse.app } Show Package Contents } Contents } Eclipse
      2. Right above the -vmargs line, add these two lines and replace $JAVA8 with your Java 8 directory followed by bin
        -vm
        $JAVA8
      3. For examples:
        1. Windows
          -vm
          C:\Program Files\Semeru\jdk-8.0.312.0-openj9\bin\
        2. macOS
          -vm
          /Library/Java/JavaVirtualMachines/ibm-semeru-open-8.jdk/Contents/Home/bin
        3. Linux
          -vm
          /usr/lib/jvm/ibm-semeru-open-8-jdk/bin/
      4. In the -vmargs section, the default maximum heap size of GCMV is 1GB. If you expect to load large verbose garbage collection files, then increase this appropriately based on your available RAM. For example:
        -Xmx5g
      5. Save gcmv.ini
  4. Launch GCMV:
    1. Windows: gcmv.exe
    2. macOS: Eclipse.app
    3. Linux: gcmv

Additional Information

Revision History
  • 2022-06-01: Add 'Locked without a collection' series for exclusive access acquisitions without a collection, and add this into the 'Proportion of time spent in garbage collection pauses (%)' calculation
  • 2022-03-14: Combine RCP and headless builds
  • 2022-02-22: Handle more types of G1GC relative timestamps
  • 2022-02-01: Account for new verbosegc concurrent elements and bump version to 2.8.7
  • 2022-01-12: Add more HotSpot G1 metrics (in the VGC category)
  • 2021-12-29: First version
These downloads are provided as is without any warranty or support. For any issues, contact Kevin Grigorenko (kevin.grigorenko@us.ibm.com) and we'll try to resolve any issues as time permits.

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"ARM Category":[{"code":"a8m3p000000F7ylAAC","label":"IBM WebSphere Liberty-All Platforms-\u003ELiberty Profile-\u003EHang Performance CPU"},{"code":"a8m50000000CdBVAA0","label":"WebSphere Application Server traditional-All Platforms-\u003EHang Performance CPU"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"},{"Type":"MASTER","Line of Business":{"code":"LOB08","label":"Cognitive Systems"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG9NGS","label":"IBM Java"},"ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
01 June 2022

UID

ibm16537530