WebLogic Server Performance and Tuning

 


Top Tuning Recommendations

Capacity Planning

Tune the Operating System

UNIX Tuning Parameters
Solaris TCP Tuning Parameters
HP-UX Tuning Parameters
AIX Tuning Parameters
Linux Tuning Parameters
Windows Tuning Parameters

 

Optimize Your Database

General Suggestions
Database-Specific Tuning
Oracle
Microsoft SQL Server
Sybase

 

Identify the Best JVM Settings

Sun JDK
JRockit JDK

 

Tune WebLogic Server Performance Parameters

Monitor Disk and CPU Utilization

Monitor Data Transfers Across the Network

Check For Frequent Standard I/O or Logging

Locate Bottlenecks in Your Applications

Tune Your Application

EJBs
JSPs and Servlets
JMS
JDBC

 


Tuning Hardware, Operating System, and Network Performance

Hardware Tuning

Supported Platforms

 

Operating System Tuning

Setting TCP Parameters With the ndd Command
Setting Parameters In the /etc/system File
CE Gigabit Network Card Settings
Linux Tuning Parameters
Other Operating System Tuning Information

 

Network Performance

Determining Network Bandwidth
LAN Infrastructure

 


Tuning Java Virtual Machines (JVMs)

JVM Tuning Considerations

Which JVM for Your System?

Changing To a Different JVM

 

JVM Heap Size and Garbage Collection

Choosing a Garbage Collection Scheme
Using Verbose Garbage Collection to Determine Heap Size

 

Specifying Heap Size Values

Using WebLogic Startup Scripts to Set Heap Size
Java Heap Size Options

 

Automatically Logging Low Memory Conditions

Manually Requesting Garbage Collection

Setting Java HotSpot VM Options

Standard HotSpot VM Options for Windows, Solaris, and Linux
Non-Standard HotSpot VM Options for Windows, Solaris, and Linux

 


Tuning WebLogic Server

Setting Java Parameters for Starting WebLogic Server

Setting Performance-Related Configuration Parameters

Development vs. Production Mode Default Tuning Values

Using WebLogic Server "Native IO" Performance Packs

Which Platforms Have Performance Packs?
Enabling Performance Packs

 

Tuning the Default Execute Queue Threads

Should You Modify the Default Thread Count?
Scenarios for Modifying the Default Thread Count
Modifying the Default Thread Count
Assigning Applications to Execute Queues
Allocating Execute Threads to Act as Socket Readers
Setting the Number of Socket Reader Threads For a Server Instance
Setting the Number of Socket Reader Threads on Client Machines
Tuning Execute Queues for Overflow Conditions
Tuning the Execute Thread Detection Behavior

 

Tuning Connection Backlog Buffering

How JDBC Connection Pools Enhance Performance

Tuning JDBC Connection Pool Initial Capacity
Tuning JDBC Connection Pool Maximum Capacity
Caching Prepared and Callable Statements

 

Setting Your Java Compiler

Changing Compilers in the Administration Console
Setting Your Compiler in weblogic.xml
Compiling EJB Container Classes
Compiling on UNIX

 

Using WebLogic Server Clusters to Improve Performance

Scalability and High Availability
Performance Considerations When Running Multiple Server Instances on Multi-CPU Machines

 

Monitoring a WebLogic Server Domain

 


Tuning WebLogic Server EJBs

Setting Performance-Related weblogic-ejb-jar.xml Parameters

Setting EJB Pool Size for Session and Message-Driven Beans
Using a Free Pool to Improve Stateless Session Bean Performance
Allocating Pool Size for Entity Beans
Tuning Pool Size for Stateless Sessions Beans at Startup
Setting Caching Size for Stateful Session and Entity Beans
Activation and Passivation of Stateful Session EJBs
Deferring Database Locking
Setting Transaction Isolation Level

 

Setting Performance-Related weblogic-cmp-jar.xml Parameters

Tuning In Response to Monitoring Statistics

Cache Miss Ratio
Lock Waiter Ratio
Lock Timeout Ratio
Pool Miss Ratio
Destroyed Bean Ratio
Pool Timeout Ratio
Transaction Rollback Ratio
Transaction Timeout Ratio

 

Other Performance Improvement Strategies

Application-Level Caching
Batch Operations
Distributing Transactions Across EJBs in a WebLogic Server Cluster
Indexing with a Version Column

 


Tuning WebLogic Server Applications

Using Performance Analysis Tools

Using the JProbe Profiler
Using the Optimizeit Profiler

 

JDBC Application Tuning

JMS Application Tuning

EJB Application Tuning

Web Services Tuning

Managing Sessions

Managing Session Persistence
Minimizing Sessions

 

Using Execute Queues to Control Thread Usage

Creating Execute Queues
Assigning Servlets and JSPs to Execute Queues
Assigning EJBs and RMI Objects to Execute Queues

Related Reading: Performance Tools and Information

BEA Systems, Inc. Information

Sun Microsystems Information

Linux OS Information

Hewlett-Packard Company Information

Microsoft Information

Web Performance Tuning Information

Network Performance Tools

Load Testing Tools

Performance Analysis Tools

Benchmarking Information

Java Virtual Machine (JVM) Information

Enterprise JavaBeans Information

Java Message Service Information

Java Database Connectivity Information

General Performance Information