Submit a ticketCall us

Welcome to the NEW Success Center. Search all resources (documentation, videos, training, knowledge base articles) or browse resources by product. If you are unable to find what you are looking for, please contact us at customersuccess@solarwinds.com

 

 

 

 

Home > Success Center > Database Performance Analyzer (DPA) > Java "OutOfMemory: permgen" errors on UNIX/LINUX install

Java "OutOfMemory: permgen" errors on UNIX/LINUX install

Overview

For users who cannot monitor some or all database instances, and who see "out of memory" errors for permgen in the logs, this article explains what the errors mean and what you can do about it.

According to Sun, it appears to be either a memory bloating issue, or a bug in permanent generation garbage collecting, or perhaps both. 

Fixes are documented in 1.5.0.23.5 (and up) and 1.6.0.19.6 (and up). The 1.6 fix is in the "for business" release, so it is not clear that it is in the free version, but we are hopeful that they have rolled this fix into the later versions (1.6.0.20 and higher).

Perm Gen space typically defaults to 64m, but it can be increased using -XX:PermSize=128m (or higher).

Environment

All versions of DPA

Resolution

The following steps should resolve this issue:

  1. Install JDK 1.6.0.20 or higher.
    1. Download and install the JDK.
    2. Make a copy of {DPA_home}/iwc/tomcat/ignite_config/java_loc.txt.
    3. Update java_loc.txt with the full path including the java executable for the newly-installed JDK.

      Note: java_loc.txt will override any system setting to JAVA_HOME for Ignite/DPA only when it is started or shutdown.
  1.  Increase permanent generation size to 128m, as follows:
    1. Open {DPA_home}/iwc/tomcat/bin/catalina.sh.
    2. Search for line that looks like:
      JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
    3. Insert the following line after the above line:
      JAVA_OPTS="$JAVA_OPTS -XX:PermSize=128m"
  1. Restart Ignite PI.
    1. Run shutdown.sh and then run startup.sh.

Considerations

If you cannot immediately upgrade to the new Java version, try increasing the PermSize to 128m as this may allow more time between the fatal errors. Also, consider stopping/starting DPA on a weekly basis so to reduce the chances of getting memory errors. Another way to reset DPA without a regular schedule is to query the heartbeat parameter in conprm periodically. If the heartbeat has not changed in some interval of time, then stop / start DPA again.

Last modified
13:15, 13 Nov 2015

Tags

Classifications

Public