Submit a ticketCall us

Solarwinds & Cisco Live! Barcelona
Join us from the 29th of January to the 2nd of February at Cisco Live 2018 in Barcelona, where we will continue to show how monitoring the network with SolarWinds will keep you ahead of the game. At our booth (WEP 1A), we will demonstrate how SolarWinds network solutions can help. As a bonus, we are also hosting a pre-event webinar - Blame the Network, Hybrid IT Edition with our SolarWinds Head Geek™, Patrick Hubbard on January 24th - GMT (UTC+0): 10:00 a.m. to 11:00 a.m. There's still time to RSVP.

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

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

Updated March 11th, 2016

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

Tags

Classifications

Public