Tuning the Sun HotSpot JVM

If you have Adobe LiveCycle ES running on JBoss using Sun’s HotSpot JDK, the following tuning ideas might help:

* run the JVM in server mode (using the -server JIT compiler) with -server (slower startup, faster runtime performance)

* enable the ‘Parallel (Throughput) Garbage Collector’ with –XX:+UseParallelOldGC (this is new in J2SE 5 update 6 – it enables multi-threaded garbage collection). Our experience with the ‘Concurrent Mark-Sweep Collector’ (-XX:+UseConcMarkSweepGC) and the Serial Collector (-XX:UseSerialGC) have not been great.

* Configure garbage collector threads to the number of CPU cores available (n) with:

* Set both the minimum as well as the maximum heap size to 1 GB with:
-Xms1024m -Xmx1024m This is very important in Windows. The JVM requires contiguous memory for its heap. If it grabs all of the heap it needs right at startup when RAM is not highly fragmented, you can prevent potential OutOfMemoryExceptions later on.

* Set the size of the minimum and maximum ‘Permanent Generation’ to 256 MB with:
-XX:PermSize=256m -XX:MaxPermSize=256m

* Prevent the garbage-collection of classes when no instances of them are left with:
-Xnoclassgc. This option is a little risky, test thoroughly before applying into production use.

* On Windows, use large memory pages with -XX:+UseLargePages. To do this, you also need to give the user whose authorization JBoss uses to run, the User Right to “Lock pages In Memory”. You can do this using Group Policy Editor (gpedit.msc). This option is a little risky, JBoss might have trouble coming up.

For a comprehensive list of options for the Sun HotSpot JVM, please see this.

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 0.0/10 (0 votes cast)
This entry was posted in General Interest. Bookmark the permalink.

Comments are closed.