This page last changed on Feb 25, 2007 by ktran.

I am getting Out of Memory errors, how can I allocate more memory to tomcat?

Since the default memory setting usually is around 64 or 128MB (256MB in Confluence 2.2 and later), you might have to adjust the settings to run a bigger Confluence instance with sufficent memory. Users running Confluence as a service please refer to the Start Confluence automatically on Windows as a Service page. For users running Tomcat standalone, you will have to change the following settings:

Confluence 2.2 or later (Tomcat 5.5)

Do not set your memory using CATALINA_OPTS this is overridden by JAVA_OPTS.

On Linux

  • In the unpacked Confluence standalone directory, edit the file bin/setenv.sh
  • Edit the line beginning with JAVA_OPTS= substituting new values for -Xms (starting memory) and -Xmx (maximum memory)
  • Leave the rest of the options in that line unchanged

An example of a minimal setting for a large system - max heap size is set to 1Gb :

JAVA_OPTS="-Xmx1024m $JAVA_OPTS -Djava.awt.headless=true "

On Windows

  • In the unpacked Confluence standalone directory, edit the file bin/setenv.bat
  • Edit the line beginning with set JAVA_OPTS= substituting new values for -Xms (starting memory) and -Xmx (maximum memory)
  • Leave the rest of the options in that line unchanged

Confluence 2.1 and earlier (Tomcat 4.0)

On Linux
Edit the file $TOMCAT_HOME/bin/ startup.sh and insert the following line, substituting for the desired value, eg. Bash Shell:
export CATALINA_OPTS="-Xms(min heap)m -Xmx(max heap)m"

The line you add should go just before the line starting exec "$PRGDIR...

On Windows
Edit the file $TOMCAT_HOME\bin\ startup.bat and insert or alter the following line, substituting for the desired values:
set CATALINA_OPTS=-Xms(min heap)m -Xmx(max heap)m

For example if you want to allocate a minimum heap size of 256MB and a max heap size of 512MB you will have to write the following on Windows:
set CATALINA_OPTS=-Xms256m -Xmx512m

The line you add should go just before the line starting call "%EXECUTABLE%"...

If you are running tomcat 5.5 via tomcat.exe, you can update the heap size by running tomcatw.exe and setting the required values via the Java tab.

Other Notes

On OS X
If you are using the 'serveradmin start appserver' to start and stop tomcat, then you will need to update /usr/share/servermgrd/bundles/servermgr_appserver.bundle/Contents/Resources/run.sh

Permanent Generation Size 

If you get the error message: java.lang.OutOfMemoryError: PermGen space you need to add the argument -XX:MaxPermSize=128m to CATALINA_OPTS, in addition to any argument you use to set the heap size.

RELATED TOPICS

Application Server Configuration
FAQ Home
Tomcat JVM options and Modify the Default JVM Settings

Document generated by Confluence on Mar 22, 2007 20:59