Performance and Tuning

      

Introduction and Roadmap

Document Scope and Audience

Guide to this Document

Performance Features of this Release

 

One-Way Sends for Non-Persistent Messages

Related Documentation

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

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

Operating System Tuning

Basic OS Tuning Concepts

Solaris Tuning Parameters

 

Setting TCP Parameters With the ndd Command

 

Setting Parameters In the /etc/system File

 

CE Gigabit Network Card Settings

 

Additional Solaris Tuning Information

Linux Tuning Parameters

HP-UX Tuning Parameters

Windows Tuning Parameters

Other Operating System Tuning Information

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

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

Tuning WebLogic Server

Setting Java Parameters for Starting WebLogic Server

Development vs. Production Mode Default Tuning Values

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

 

Tuning Message Size

 

Tune the Chunk Parameters

 

Tuning Connection Backlog Buffering

Setting Your Compiler Options

 

Compiling EJB Classes

 

Setting JSP Compiler Options

Using WebLogic Server Clusters to Improve Performance

 

Scalability and High Availability

 

How to Ensure Scalability for WebLogic Clusters

Database Bottlenecks

Session Replication

Invalidation of Entity EJBs

Invalidation of HTTP sessions

JNDI Binding, Unbinding and Rebinding

 

Performance Considerations When Running Multiple Server Instances on Multi-CPU Machines

Monitoring a WebLogic Server Domain

 

Using the Administration Console to Monitor WebLogic Server

 

Using JMX to Monitor WebLogic Server

 

Using WLST to Monitor WebLogic Server

 

Third-Party Tools to Monitor WebLogic Server

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

Best Practices When Using Persistent Stores

Tuning JDBC Stores

Tuning File Stores

DataBase Tuning

General Suggestions

Database-Specific Tuning

 

Oracle

 

Microsoft SQL Server

 

Sybase

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

 

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

 

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

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

Using Foreign Vendor MDBs

 

Determining Concurrency for Foreign MDBs

 

Thread Utilization When Using Foreign MDBs

Token-based Message Polling for Transactional MDBs Listening on Queues

Backwards Compatibility for WLS 10.0 and Earlier-style Polling

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

Tuning Logging Last Resource

What is LLR?

LLR Tuning Guidelines

Tuning WebLogic JMS

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 for Large Messages

Tuning MessageMaximum

 

Tuning MessageMaximum Limitations

 

Setting Maximum Message Size on a Client

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 For Improved Non-Persistent Messaging Performance

 

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 Notes

Tuning Destination Performance

 

Messaging Performance Configuration Parameters

 

Compatibility With the Asynchronous Message Pipeline

Tuning WebLogic JMS Store-and-Forward

Best Practices

Tuning Tips

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

Tuning Resource Adapters

Classloading Optimizations for Resource Adapters

Connection Optimizations

Thread Management

InteractionSpec Interface

Tuning Web Applications

Best Practices

 

Disable Page Checks

 

Use Custom JSP Tags

 

Precompile JSPs

 

Use Service Level Agreements

 

Related Reading

Session Management

 

Managing Session Persistence

 

Minimizing Sessions

 

Aggregating Session Data

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

Tuning WebLogic Tuxedo Connector

Configuration Guidelines

Best Practices

Related Reading: Performance Tools and Information

WebLogic 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

Production Performance Management

Benchmarking Information

Java Virtual Machine (JVM) Information

Enterprise JavaBeans Information

WebLogic Store Information

Java Message Service (JMS) Information

Java Database Connectivity (JDBC) Information

General Performance Information

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

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

 

Application Design

Assessing Your Application Performance Objectives

Hardware Tuning

 

Benchmarks for Evaluating Performance

 

Supported Platforms

Network Performance

 

Determining Network Bandwidth

Related Information


  Back to Top       Previous