Weblogic Best Practices – Points to Remember

Below are very good tuning points to remember and we need to implement in production environments for better performance.

  • For higher performance , set the minimum java heap size equal to the maximum heap size

For example :Mem_args= -Xms512m -Xmx512m in setDomainEnv.sh

  • Use JVMs, which provide better performance for server side applications.

For example JRockit JVM on Intel Platforms

  • Server’s heap size should not be larger than the available free RAM on a machine.
  • 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.
  • If Major GC time is more than 3.5 sec lower the values of  Xms and –Xmx
  • In case of too much RAM availability use multiple WLS instances
  • To improve WebLogic Server performance, use native I/O (performance pack)
  • Select optimal number of  execute threads after careful study of the Environment
  • Tune the execute thread count only if the CPU is not running at 100% utilization yet client requests are blocked and rejected too often.
  • When tuning the thread count, stop when throughput starts dropping or CPU utilization drops or stays constant.
  • Do not set the Stuck Thread Max Time and Stuck Thread Time Interval so low so that normal requests during peak processing time are mistaken for stuck threads.
  • To provide a dedicated resource to message-driven beans, use a separate execute queue for each message-driven EJB that is deployed.
  • Enabling T3 protocol access over HTTP by tunneling degrades performance by approximately 15%; avoid tunneling T3 over HTTP.
  • If possible, size database connection pools so that they never increase the number of connections: set Initial Capacity equal to Maximum Capacity.
  • Set the Maximum Capacity of the connection pool at least equal to the Execute Thread Count.
  • Configure Inactive Connection Timeout to specify how long (in seconds) a connection can be inactive before it is reclaimed to the pool.
  • Enabling a direct-write synchronous write policy for the JMS file store frees the virtual-memory (VM) heap, but direct-write can significantly improve performance only if there are few concurrently active JMS clients.
  • Use SSL with WebLogic Server only if it is necessary. SSL degrade performance.
  • Use load balancer with built-in secure sockets layer (SSL) support for better Performance