I'm looking for recommendations from Pega on JVM settings to run PRPC 7.1.7/CPM 7/PegaCall running on JBoss 6.3 standalone and Sun JDK 1.7. Understanding that every Pega application may have slightly different requirements i'm looking for a starting recommendation for JVM settings.
Minimum heap size. 4096M is the required value for PRPC on 64 bits platform.
Maximum heap size. 4096M is the starting point value required for PRPC on 64 bits platform. It can be set higher if the application needs it, allows more users per JVM to reduce total number of JVM’s.
Nursery minimum size. Needs to be at least 1/3 of the total heap size (-Xmx4096m). It can be set higher if the application requires it.
Nursery maximum size. Needs to be at least 1/3 of the total heap size(-Xmx4096m) . It can be set higher if the application requires it.
Perms Space minimum size. 512M is the minimum initial value required for PRPC application on 64 Bits JVM.
Perm Space maximum size. Depending on the application total code size this value needs to be large enough to keep all of the Java classes in memory. The JVM will use the Perm space memory needed between 512M and 1024M.
The percentage of memory to use in the Nursery Survivor space. The default value of 50% is too low. Having 90% improves the Nursery Scavenger collector efficiency and avoids the number of Scavenger events.
Enables the Nursery scavengers to run in parallel based on the number of CPU’s/Threads.
Enable the Old Generation Collection to run in Concurrent Mode (CMS) and avoids all long threads blocking Full Garbage collections.
Allows the ConcurentMarkSweep collector (CMS) to collect the Old Generation heap when 80% used. The default of 92% is too late and forces the JVM to execute blocking full garbage collections instead of the ConcurentMarkSweep(CMS) events.
By default when CMS is enabled the perm space is not collected causing the perm space to fill up.
Holds compiled code. Default is 256m. It can be set higher if the application requires it
If the code cache overflows, default behavior is to switch to interpreted-only mode. This option tells the JVM to clear some of the compiled code from the cache but continue to use it
Disable full GC events from the JVM to let the ConcurentMarkSweep(CMS) collector execute collections.
Prints the garbage collections detail events in the log file.
Print additional collections in the log file. Needed to analyze the JVM performance.