# Memory Allocation Parameters

The Talend ESB start scripts define the JVM memory allocation parameters used for running Talend ESB.

JAVA\_MIN\_MEM. Determines the start size of the Java heap memory. Higher values may reduce garbage collection and improve performance. Corresponds to the JVM parameter -Xms.

JAVA\_MAX\_MEM. Determines the maximum size of the Java heap memory. Higher values may reduce garbage collection, improve performance and avoid "Out of memory" exceptions. Corresponds to the JVM parameter -Xmx.

JAVA\_PERM\_MEM. Determines the start size of permanent generation. This is a separate heap space that is normally not garbage collected. Java classes are loaded in permanent generation. Using Talend ESB many classes are loaded, specially when using security features and deploying multiple services to the same container. Increase if a "PermGen space" exception is thrown. Corresponds to the JVM parameter -XX:PermSize

JAVA\_MAX\_PERM\_MEM. Determines the maximum size of permanent generation. This is a separate heap space that is normally not garbage collected. Increase if a "PermGen space" exception is thrown. Corresponds to the JVM parameter -XX:MaxPermSize

Additionally the following parameters are used as default to enable class unloading from permanent generation which reduces the overall permanent generation space usage: -XX:+CMSClassUnloadingEnabled and -XX:+UseConcMarkSweepGC.

Information noteWarning: If you set JAVA\_OPTS yourself from outside or inside the &lt;RuntimeContainerPath&gt;/bin/setenv script you overwrite all default settings provided by karaf including the memory settings described above. This could be useful if you need additional options. On Linux/Solaris you can set DUMP\_JAVA\_OPTS=true in setenv to find out how karaf would set JAVA\_OPTS so you can copy or adapt these settings to fit your requirements.