Friday 7 December 2007

JVM Vs Weblogic

Use JVMs, which provide better performance for server side applications (ex. JRockit). Administration console can be used for monitoring JVM heap usage graphically.

For better performance, test with JVM-vendor-specific options.

For example, these are typical "hotspot" VM options that you can set:

  • -XX +AggressiveHeap - uses heaps that are nearly as large as the total physical memory
  • -XX +UseISM - uses intimate shared memory (Solaris)

AggressiveHeap warnings:

1. Use all available memory
2. Incompatible with -Xms -Xmx
3. The heap might may steal memory from the stack

Intimate shared memory warnings (for Solaris only):

1. Lock memory; use only on dedicated systems
2. Memory fragmentation can prevent allocation of contiguous 4 MB pages
3. Abnormal JVM termination can result in locked segments
4. To discover and delete locked segments, use ipcs and ipcrm

Tips

  • Do not set the server's heap size larger than the available free RAM on a machine.
  • For high performance and throughput, set the minimum JVM heap size equal to the maximum heap size.
  • WebLogic Server's logging feature for low memory condition can be used to sample the available free memory to detect low memory conditions.
  • When monitoring garbage collection, if the heap always settles to 85% free, try reducing the heap size.
  • When setting -noclassgc make sure the perm size is set greater than the default value (32mb).
    Avoid using the -verbosegc option during production run.
  • Use parallel garbage collection algorithms with multiple CPU machines to reduce the garbage-collection pause time.
  • On Intel-based architectures, for better performance, configure WebLogic to use the JRockit virtual machine.
  • To discover and delete locked segments, use ipcs and ipcrm.

No comments: