IBM Support

MustGather: Out of Memory errors with WebSphere Application Server on Solaris - Heap Leak

Troubleshooting


Problem

Collecting data for Out of Memory errors with IBM® WebSphere® Application Server on the Solaris platform. Gathering this MustGather information before calling IBM Support will help familiarize you with the troubleshooting process and save you time.

Resolving The Problem

An Out of Memory error is generally indicated when a java.lang.OutofMemoryError is thrown.

 
Out of Memory (heap leak) specific MustGather information
Debugging the Java virtual machine (JVM) that is running out of Java heap.

If you suspect a memory leak in the Java™ heap, the first step is to eliminate any misconfiguration or tuning as a potential cause:
  1. Increase the Maximum Java Heap Value (-Xmx) and test again.
     
  2. Follow instructions for Enabling verbosegc in WebSphere Application Server

    Ensure that the heap generations (NEW and PERM) are sized appropriately. Default values for MaxPermSize (Permanent Region) are often insufficient for applications. The Permanent Region holds class data and other very long lived resources. MaxPermSize (default 64MB) should be set to a quarter of max heap.
    For example:
    -XX:MaxPermSize=128m (32bit)
    -XX:MaxPermSize=512m (64bit)

    MaxNewSize, the Young generation is intended for short-lived objects where Java objects are created and age, from where they are collected without a Full garbage collection (GC) cycle. Young Generation (default 32MB) of the heap should be set to a quarter of max heap size.

    For example:
    -XX:MaxNewSize=128m (32bit)
    -XX:MaxNewSize=512m (64bit)
     
  3. Run in HotSpot Server mode (-server). Running in HotSpot client mode halves the size of the Permanent Region and therefore increases the stress on this part of the heap in the Sun JVM.

     
  4. Another way applications can interact with garbage collection (GC) is by invoking GCs explicitly, such as through the System.gc call. These calls force major collection, and inhibit scalability on large systems. The best practice is to avoid calling System.gc calls and let the Java do it's work. See the Explicit Garbage Collection (System.gc, Runtime.gc) section in this
    IBM WebSphere Application Server Performance Cookbook for more details.
  1. Switch to the Alternate Threading Library. The Solaris 8 operating environment supports an alternate version of libthread that binds threads to LWPs directly; this might help avoid starvation of the finalization thread.  To try this, set the environment variable LD_LIBRARY_PATH to include /usr/lib/lwp before launching the JVM.
     
  2. Stop the WebSphere application Server and recycle the logs
     
  3. Restart the application server.
     
  4. Run the application until java.lang.OutOfMemory exceptions occur.


If making configuration changes does not resolve the problem, and a Java heap leak is still present, collect Heapdumps, following instructions in Getting Heapdumps on Solaris platform

Note: Heapdumps can be analyzed using the IBM-developed HeapAnalyzer tool.

Collect the following information:
  • For WebSphere V6.0 through V8.x:
  • All files in the following directory:

    install_root/profiles/profile_name/logs/server_name
  • A copy of server.xml located in the following directory:

    install_root/profiles/profile_name/config/cells/cell_name/nodes/node_name/servers/server_name
  • For WebSphere Application Server V5.1:
  • Include all of the files from the following directory:

    install_root/logs/server_name
  • A copy of server.xml located in the following directory:

    install_root/config/cells/cell_name/nodes/node_name/servers/server_name
Follow instructions for Submitting diagnostic information to IBM Technical Support for problem determination.

For a listing of all technotes, downloads, and educational materials specific to the Out of Memory component, search the WebSphere Application Server support site.

Related information
Submitting information to IBM support
Steps to getting support for WebSphere Application Server
MustGather: Read first for WebSphere Application Server
Troubleshooting guide for WebSphere Application Server
Java HotSpot VM Options
MustGather: Out of Memory errors on Solaris - Native Leak

[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Out of Memory","Platform":[{"code":"PF027","label":"Solaris"}],"Version":"9.0;8.5.5;8.5;8.0;7.0","Edition":"Base;Express;Network Deployment","Line of Business":{"code":"LOB36","label":"IBM Automation"}},{"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Java SDK","Platform":[{"code":"","label":""}],"Version":"","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}},{"Product":{"code":"SS7JFU","label":"WebSphere Application Server - Express"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":null,"Platform":[{"code":"PF027","label":"Solaris"}],"Version":"6.1;6.0;5.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
13 February 2020

UID

swg21145349