1/25
Contents
Title and Copyright Information
Preface
Documentation Accessibility
Conventions
1
Introduction and Roadmap
Document Scope and Audience
Guide to this Document
Performance Features of this Release
2
Top Tuning Recommendations for WebLogic Server
Tune Pool Sizes
Use the Prepared Statement Cache
Use Logging Last Resource Optimization
Tune Connection Backlog Buffering
Tune the Chunk Size
Use Optimistic or Read-only Concurrency
Use Local Interfaces
Use eager-relationship-caching
Tune HTTP Sessions
Tune Messaging Applications
3
Performance Tuning Roadmap
Performance Tuning Roadmap
Understand Your Performance Objectives
Measure Your Performance Metrics
Monitor Disk and CPU Utilization
Monitor Data Transfers Across the Network
Locate Bottlenecks in Your System
Minimize Impact of Bottlenecks
Tune Your Application
Tune your DB
Tune WebLogic Server Performance Parameters
Tune Your JVM
Tune the Operating System
Achieve Performance Objectives
Tuning Tips
4
Operating System Tuning
5
Tuning Java Virtual Machines (JVMs)
JVM Tuning Considerations
Which JVM for Your System?
Changing To a Different JVM
Garbage Collection
VM Heap Size and Garbage Collection
Choosing a Garbage Collection Scheme
Using Verbose Garbage Collection to Determine Heap Size
Specifying Heap Size Values
Tuning Tips for Heap Sizes
JRockit JVM Heap Size Options
Other JRockit VM Options
Java HotSpot VM Heap Size Options
Other Java HotSpot VM Options
Automatically Logging Low Memory Conditions
Manually Requesting Garbage Collection
Requesting Thread Stacks
Enable Spinning for IA32 Platforms
Sun JDK
JRockit
6
Tuning WebLogic Diagnostic Framework and JRockit Flight Recorder Integration
Using JRockit Flight Recorder
Using WLDF
Using JRockit controls outside of WLDF to control the default JVM recording
Tuning Considerations
7
Tuning WebLogic Server
Setting Java Parameters for Starting WebLogic Server
Development vs. Production Mode Default Tuning Values
Deployment
On-demand Deployment of Internal Applications
Use FastSwap Deployment to Minimize Redeployment Time
Generic Overrides
Thread Management
Tuning a Work Manager
How Many Work Managers are Needed?
What are the SLA Requirements for Each Work Manager?
Tuning Execute Queues
Understanding the Differences Between Work Managers and Execute Queues
Migrating from Previous Releases
Tuning the Stuck Thread Detection Behavior
Tuning Network I/O
Tuning Muxers
Which Platforms Have Performance Packs?
Enabling Performance Packs
Changing the Number of Available Socket Readers
Network Channels
Reducing the Potential for Denial of Service Attacks
Tuning Message Size
Tuning Complete Message Timeout
Tuning Number of File Descriptors
Tune the Chunk Parameters
Tuning Connection Backlog Buffering
Setting Your Compiler Options
Compiling EJB Classes
Setting JSP Compiler Options
Precompile JSPs
Optimize Java Expressions
Using WebLogic Server Clusters to Improve Performance
Scalability and High Availability
How to Ensure Scalability for WebLogic Clusters
Database Bottlenecks
Session Replication
Asynchronous HTTP Session Replication
Asynchronous HTTP Session Replication using a Secondary Server
Asynchronous HTTP Session Replication using a Database
Invalidation of Entity EJBs
Invalidation of HTTP sessions
JNDI Binding, Unbinding and Rebinding
Running Multiple Server Instances on Multi-Core Machines
Monitoring a WebLogic Server Domain
Using the Administration Console to Monitor WebLogic Server
Using the WebLogic Diagnostic Framework
Using JMX to Monitor WebLogic Server
Using WLST to Monitor WebLogic Server
Resources to Monitor WebLogic Server
Third-Party Tools to Monitor WebLogic Server
Tuning Class and Resource Loading
Filtering Loader Mechanism
8
Tuning the WebLogic Persistent Store
Overview of Persistent Stores
Using the Default Persistent Store
Using Custom File Stores and JDBC Stores
Using JMS Paging Stores
Using Diagnostic Stores
Best Practices When Using Persistent Stores
Tuning JDBC Stores
Tuning File Stores
Basic Tuning Information
Tuning a File Store Direct-Write-With-Cache Policy
Additional Considerations
Tuning the File Store Direct-Write Policy
Tuning the File Store Block Size
Setting the Block Size for a File Store
Determining the File Store Block Size
Determining the File System Block Size
Converting a Store with Pre-existing Files
File Locking and NFS
Solution 1 - Copying Data Files to Remove NFS Locks
Solution 2 - Disabling File Locks in WebLogic Server File Stores
Disabling File Locking for the Default File Store
Disabling File Locking for a Custom File Store
Disabling File Locking for a JMS Paging File Store
Disabling File Locking for a Diagnostics File Store
9
DataBase Tuning
General Suggestions
Database-Specific Tuning
Oracle
Microsoft SQL Server
Sybase
10
Tuning WebLogic Server EJBs
General EJB Tuning Tips
Tuning EJB Caches
Tuning the Stateful Session Bean Cache
Tuning the Entity Bean Cache
Transaction-Level Caching
Caching between Transactions
Ready Bean Caching
Tuning the Query Cache
Tuning EJB Pools
Tuning the Stateless Session Bean Pool
Tuning the MDB Pool
Tuning the Entity Bean Pool
CMP Entity Bean Tuning
Use Eager Relationship Caching
Using Inner Joins
Use JDBC Batch Operations
Tuned Updates
Using Field Groups
include-updates
call-by-reference
Bean-level Pessimistic Locking
Concurrency Strategy
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
Using the JDT Compiler
11
Tuning Message-Driven Beans
Use Transaction Batching
MDB Thread Management
Determining the Number of Concurrent MDBs
Selecting a Concurrency Strategy
Thread Utilization When Using WebLogic Destinations
Limitations for Multi-threaded Topic MDBs
Using MDBs with Foreign Destinations
Concurrency for MDBs that Process Messages from Foreign Destinations
Thread Utilization for MDBs that Process Messages from Foreign Destinations
Token-based Message Polling for Transactional MDBs Listening on Queues
Backwards Compatibility for WLS 10.0 and Earlier-style Polling
12
Tuning JDBC Applications
Tune the Number of Database Connections
Waste Not
Use Test Connections on Reserve with Care
Cache Prepared and Callable Statements
Using Pinned-To-Thread Property to Increase Performance
Use Best Design Practices
13
Tuning Logging Last Resource
What is LLR?
LLR Tuning Guidelines
14
Tuning WebLogic JMS
JMS Performance & Tuning Check List
Handling Large Message Backlogs
Improving Message Processing Performance
Controlling Message Production
Drawbacks to Controlling Message Production
Cache and Re-use Client Resources
Distributed Queue Tuning
Tuning for Large Messages
Defining Quota
Quota Resources
Destination-Level Quota
JMS Server-Level Quota
Blocking Senders During Quota Conditions
Defining a Send Timeout on Connection Factories
Specifying a Blocking Send Policy on JMS Servers
Tuning MessageMaximum
Tuning MessageMaximum Limitations
Setting Maximum Message Size for Network Protocols
Compressing Messages
Paging Out Messages To Free Up Memory
Specifying a Message Paging Directory
Tuning the Message Buffer Size Option
Controlling the Flow of Messages on JMS Servers and Destinations
How Flow Control Works
Configuring Flow Control
Flow Control Thresholds
Handling Expired Messages
Defining a Message Expiration Policy
Configuring an Expiration Policy on Topics
Configuring an Expiration Policy on Queues
Configuring an Expiration Policy on Templates
Defining an Expiration Logging Policy
Expiration Log Output Format
Tuning Active Message Expiration
Configuring a JMS Server to Actively Scan Destinations for Expired Messages
Tuning Applications Using Unit-of-Order
Best Practices
Using UOO and Distributed Destinations
Migrating Old Applications to Use UOO
Using One-Way Message Sends
Configure One-Way Sends On a Connection Factory
One-Way Send Support In a Cluster With a Single Destination
One-Way Send Support In a Cluster With Multiple Destinations
When One-Way Sends Are Not Supported
Different Client and Destination Hosts
XA Enabled On Client's Host Connection Factory
Higher QOS Detected
Destination Quota Exceeded
Change In Server Security Policy
Change In JMS Server or Destination Status
Looking Up Logical Distributed Destination Name
Hardware Failure
One-Way Send QOS Guidelines
Tuning the Messaging Performance Preference Option
Messaging Performance Configuration Parameters
Compatibility With the Asynchronous Message Pipeline
Client-side Thread Pools
Best Practices for JMS .NET Client Applications
15
Tuning WebLogic JMS Store-and-Forward
Best Practices
Tuning Tips
16
Tuning WebLogic Message Bridge
Best Practices
Changing the Batch Size
Changing the Batch Interval
Changing the Quality of Service
Using Multiple Bridge Instances
Changing the Thread Pool Size
Avoiding Durable Subscriptions
Co-locating Bridges with Their Source or Target Destination
Changing the Asynchronous Mode Enabled Attribute
17
Tuning Resource Adapters
Classloading Optimizations for Resource Adapters
Connection Optimizations
Thread Management
InteractionSpec Interface
18
Tuning Web Applications
Best Practices
Disable Page Checks
Use Custom JSP Tags
Precompile JSPs
Disable Access Logging
Use HTML Template Compression
Use Service Level Agreements
Related Reading
Session Management
Managing Session Persistence
Minimizing Sessions
Aggregating Session Data
Pub-Sub Tuning Guidelines
19
Tuning Web Services
Web Services Best Practices
Tuning Web Service Reliable Messaging Agents
Tuning Heavily Loaded Systems to Improve Web Service Performance
Setting the Buffering Sessions
Releasing Asynchronous Resources
20
Tuning WebLogic Tuxedo Connector
Configuration Guidelines
Best Practices
A
Using the WebLogic 8.1 Thread Pool Model
How to Enable the WebLogic 8.1 Thread Pool Model
Tuning the Default Execute Queue
Should You Modify the Default Thread Count?
Using Execute Queues to Control Thread Usage
Creating Execute Queues
Modifying the Thread Count
Tuning Execute Queues for Overflow Conditions
Assigning Servlets and JSPs to Execute Queues
Assigning EJBs and RMI Objects to Execute Queues
Monitoring Execute Threads
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 the Stuck Thread Detection Behavior
B
Capacity Planning
Capacity Planning Factors
Programmatic and Web-based Clients
RMI and Server Traffic
SSL Connections and Performance
WebLogic Server Process Load
Database Server Capacity and User Storage Requirements
Concurrent Sessions
Network Load
Clustered Configurations
Server Migration
Application Design
Assessing Your Application Performance Objectives
Hardware Tuning
Benchmarks for Evaluating Performance
Supported Platforms
Network Performance
Determining Network Bandwidth
Related Information
Scripting on this page enhances content navigation, but does not change the content in any way.