Index

wrapper.java.maxmemory

Compatibility :1.0.0
Editions :Professional EditionStandard EditionCommunity Edition
Platforms :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

The maximum amount of memory in megabytes that the JVM will be allowed to use. The default value is "0" (zero), which will cause the JVM's default value to be used. For most JVMs, the default value is "64MB".

If a non-zero value is specified for this property, then an appropriate -Xmx parameter will be added to the Java command generated by the Wrapper. If specified, the maximum memory must be greater than or equal to the value set for the wrapper.java.initmemory property. The exact upper limit depends on the JVM, but for 32-bit JVMs, it tends to be less than 2048MB, closer to 1800MB in most cases. 64-bit JVMs allow much higher settings, which is one of the main reasons for using a 64-bit JVM.

If this property is set to "0" (zero), then it is also possible to specify the -Xmx parameter manually using the wrapper.java.additional.<n> property.

Example: (64MB)
wrapper.java.maxmemory=64

This property is provided as a convenience for most users, and also makes it possible to set relative memory sizes as described in the wrapper.java.maxmemory.percent property. If you require more complicated memory configurations, this can be done using the wrapper.java.additional.<n> properties as follows:

Equivalent Example: (3MB)
wrapper.java.additional.1=-Xmx64m

NOTE

If an application is experiencing java.lang.OutOfMemoryErrors, then this often indicates that the maximum amount of memory available to the application needs to be increased. Be aware that setting the maximum memory to a value greater than the amount of actual memory on the machine will result in memory swapping. Memory swapping is a function of the OS (operating system), and thus its performance is highly OS specific. However, from experience, this tends to result in a large decrease in application performance. In most cases, it is better to set the maximum memory to a value that fits within the available memory and then rely on Java's garbage collection.

NOTE

We recommend reading the following links, which describe in detail how the initial and maximum memory values affect Java performance and what can be done to improve that performance for a given application.

wrapper.java.maxmemory.percent

Compatibility :3.3.0
Editions :Professional EditionStandard EditionCommunity Edition (Not Supported)
Platforms :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

At times, it is necessary to set the memory thresholds relative to the amount of physical memory available on the system. This property accepts a percentage value between 1 and 100 which will translate into a size in MBs.

For 32-bit versions of the Wrapper, the value will be calculated based on the minimum between the physical memory and 2048MB.

Example: (60%)
wrapper.java.maxmemory.percent=60

In the above example (60%), if 1GB (1024MB) of memory is installed on the system, the maximum memory will be set to 614MB (=1024 x 60%).

On 32-bit versions of the Wrapper, if the machine has 4GB of memory, then the initial memory will be 1228MB (= 2048 x 60%).

NOTE

Java behaves very poorly if the JVM has any of its memory swapped, so it is important to take the OS requirements and any other applications into account when deciding on a safe memory level.

NOTE

Since version 3.5.29 it is also possible to use the dynamic variable 'WRAPPER_SYSMEM_<P>' where <P> refers to the percentage of the physical memory available on the system.

Example: (60%)
wrapper.java.additional.1=-Xmx%WRAPPER_SYSMEM_60.0%

For details, please see the Environment Variables page.

Reference: Java Memory

Reference: Parameters