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