Submit a ticketCall us

Announcing NCM 7.7
With NCM 7.7, you can examine the rules that make up an access control list for a Cisco ASA device. Then you can apply filters to display only rules that meet the specified criteria, order the rules by line number or by the hit count, and much more.
See new features and improvements.

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


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 (and up) and (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 ( and higher).

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


All versions of DPA


The following steps should resolve this issue:

  1. Install JDK 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/
    2. Search for line that looks like:
    3. Insert the following line after the above line:
      JAVA_OPTS="$JAVA_OPTS -XX:PermSize=128m"
  1. Restart Ignite PI.
    1. Run and then run


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
14:03, 7 Apr 2017