J V M M A X I M U M H E A P S I Z E L I M I T S

When setting the heap size for an application server, keep the following in mind:

￿Make sure that the system has enough physical memory for all of the processes to fit into physical memory, plus enough for the operating system. When more memory is allocated than the physical memory in the system, paging will occur, and this can result in very poor performance.

￿We set the minimum and maximum heap sizes to the same values since we’re using the gencon garbage collection policy available in 1.5 IBM JDK which avoids heap fragmentation, this may not be the best choice if you plan to use a different garbage collection. In our measurement runs, the system is under load for a relatively short time (around 3 hours), and it is running with portlets which do not have large memory requirements. When using portlets which have larger memory requirements, or for continuous operation, it may be possible to reduce heap fragmentation by setting the initial heap size to 320 megabytes.

￿After doing any tuning of heap sizes, monitor the system to make sure that paging is not occurring. As mentioned above, paging can cause poor performance.

￿32-bit operating systems have an address space limit of 4GBytes, regardless of the amount of physical memory in the system. This space limits the maximum size of each individual process in the system. In addition, some operating systems restrict the size of processes to be even less than this limit. Many versions of Windows limit processes to 2GBytes in size; you can find more information at http://support.microsoft.com/default.aspx?scid=kb;en-us;555223.

￿The address space limit further restricts the size of the JVM process. If the process grows larger than the limit imposed by the operating system, it may terminate unexpectedly.

Due to the demands on native memory by WebSphere Portal V6.1 and its underlying components, we chose a maximum heap size of 1408MB in our Windows environments. There is a balance between JVM heap and native memory, all of which must fit within the 2GB restriction in 32-bit Windows. 1408MB was the largest value we could use to successfully measure all of our Windows configurations and workloads. If your application has additional native memory requirements then you may need to choose a smaller maximum heap size. For more information, see the WebSphere Application Server information center.

On Solaris and zLinux, we use 3.5GB heap size in 64-bit environment.

 

Parameter

 

AIX

Linux

Solaris

Windows

z/Linux

z/OS

 

 

POWER5

2003

 

 

 

 

 

 

 

 

Initial and

1792

2048

3584

1408

3584

2048

 

Maximum

 

 

 

 

 

 

 

heap size

 

 

 

 

 

 

 

(Mbytes)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

W E BS P HE R E P O R T AL V 6 . 1 T U N I N G G U I D E

 

 

Page 11
Image 11
IBM 6.1.X manual Parameter, Linux Solaris Windows, 2003, Initial 1792 2048, 1408 3584 2048 Maximum Heap size Mbytes