Documentation Home
> Sun GlassFish Enterprise Server v2.1.1 Performance Tuning Guide
Sun GlassFish Enterprise Server v2.1.1 Performance Tuning Guide
Book Information
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
X
Preface
Chapter 1 Overview of Enterprise Server Performance Tuning
Process Overview
Performance Tuning Sequence
Understanding Operational Requirements
Application Architecture
Security Requirements
User Authentication and Authorization
Encryption
Hardware Resources
Administration
General Tuning Concepts
Capacity Planning
To Determine Capacity
User Expectations
Further Information
Chapter 2 Tuning Your Application
Java Programming Guidelines
Avoid Serialization and Deserialization
Use StringBuffer to Concatenate Strings
Assign null to Variables That Are No Longer Needed
Declare Methods as final Only If Necessary
Declare Constants as static final
Avoid Finalizers
Declare Method Arguments final
Synchronize Only When Necessary
Use DataHandlers for SOAP Attachments
Java Server Page and Servlet Tuning
Suggested Coding Practices
General Guidelines
Avoid Shared Modified Class Variables
HTTP Session Handling
Configuration and Deployment Tips
Optimize SSL
Disable Security Manager
EJB Performance Tuning
Goals
Monitoring EJB Components
Monitoring Individual EJB Components
General Guidelines
Use High Performance Beans
Use Caching
Use the Appropriate Stubs
Remove Unneeded Stateful Session Beans
Cache and Pool Tuning Tips
Using Local and Remote Interfaces
Prefer Local Interfaces
Using Pass-By-Reference Semantics
Improving Performance of EJB Transactions
Use Container-Managed Transactions
Don’t Encompass User Input Time
Identify Non-Transactional Methods
Use TX_REQUIRED for Long Transaction Chains
Use Lowest Cost Database Locking
Use XA-Capable Data Sources Only When Needed
Configure JDBC Resources as One-Phase Commit Resources
Use the Least Expensive Transaction Attribute
Using Special Techniques
Version Consistency
Request Partitioning
To enable request partitioning
Tuning Tips for Specific Types of EJB Components
Entity Beans
Stateful Session Beans
Checkpoint only when needed
Stateless Session Beans
Read-Only Entity Beans
Refresh period
Pre-fetching Container Managed Relationship (CMR) Beans
JDBC and Database Access
Use JDBC Directly
Encapsulate Business Logic in Entity EJB Components
Close Connections
Minimize the Database Transaction Isolation Level
Tuning Message-Driven Beans
Use getConnection()
Tune the Message-Driven Bean’s Pool Size
Cache Bean-Specific Resources
Limit Use of JMS Connections
Chapter 3 Tuning the Enterprise Server
Deployment Settings
Disable Auto-deployment
Use Pre-compiled JavaServer Pages
Disable Dynamic Application Reloading
Logger Settings
General Settings
Log Levels
Web Container Settings
Session Properties: Session Timeout
Manager Properties: Reap Interval
Disable Dynamic JSP Reloading
EJB Container Settings
Monitoring the EJB Container
Tuning the EJB Container
Overview of EJB Pooling and Caching
Tuning the EJB Pool
EJB Pool Settings
Tuning the EJB Cache
EJB Cache Settings
Pool and Cache Settings for Individual EJB Components
Commit Option
Determining the best commit option
Java Message Service Settings
Transaction Service Settings
Monitoring the Transaction Service
Viewing Monitoring Information
Tuning the Transaction Service
Disable Distributed Transaction Logging
Recover On Restart (Automatic Recovery)
Keypoint Interval
HTTP Service Settings
Monitoring the HTTP Service
DNS Cache Information (dns)
Enabled
CacheEntries (CurrentCacheEntries / MaxCacheEntries)
HitRatio
Caching DNS Entries
Limit DNS Lookups to Asynchronous
Enabled
NameLookups
AddrLookups
LookupsInProgress
File Cache Information (file-cache)
Keep Alive (keep-alive)
Connection Queue
Tuning the HTTP Service
Access Log
Request Processing
Thread Count
Initial Thread Count
Request Timeout
Buffer Length
Keep Alive
Max Connections
Time Out
HTTP Protocol
DNS Lookup Enabled
HTTP File Cache
Max Files Count
Hash Init Size
Max Age
Small/Medium File Size and File Size Limit
File Transmission
Tuning HTTP Listener Settings
Network Address
Acceptor Threads
ORB Settings
Overview
How a Client Connects to the ORB
Monitoring the ORB
Connection Statistics
Thread Pools
Tuning the ORB
Tunable ORB Parameters
ORB Thread Pool Parameters
Client ORB Properties
Controlling connections between client and server ORB
Using multiple connections
Load Balancing
Thread Pool Sizing
Examining IIOP Messages
Improving ORB Performance with Java Serialization
To Enable Java Serialization
Using JSG for Application Clients
Thread Pool Settings
Tuning Thread Pools (Unix /Linux only)
Resources
JDBC Connection Pool Settings
Monitoring JDBC Connection Pools
Tuning JDBC Connection Pools
Pool Size Settings
Timeout Settings
Isolation Level Settings
Connection Validation Settings
Connector Connection Pool Settings
Transaction Support
Chapter 4 Tuning the Java Runtime System
Java Virtual Machine Settings
Managing Memory and Garbage Collection
Tuning the Garbage Collector
Choosing the Garbage Collection Algorithm
To use the CMS collector
Additional Information
Tracing Garbage Collection
Other Garbage Collector Settings
Tuning the Java Heap
Guidelines for Java Heap Sizing
Heap Tuning Parameters
Survivor Ratio Sizing
Rebasing DLLs on Windows
To rebase the Application Server’s DLLs
Further Information
Chapter 5 Tuning the Operating System and Platform
Server Scaling
Processors
Memory
Disk Space
Networking
Solaris 10 Platform-Specific Tuning Information
Tuning for the Solaris OS
Tuning Parameters
Sizing the Connection Hash Table
File Descriptor Setting
Linux Configuration
Tuning for Solaris on x86
File Descriptors
IP Stack Settings
Tuning for Linux platforms
File Descriptors
Virtual Memory
Network Interface
Disk I/O Settings
To tune disk I/O performance for non SCSI disks
TCP/IP Settings
To tune the TCP/IP settings
Tuning UltraSPARC T1–Based Systems
Tuning Operating System and TCP Settings
Disk Configuration
Network Configuration
Start Options
Chapter 6 Tuning for High-Availability
Tuning HADB
Disk Use
Calculating HADB Data Device Size
Tuning Data Device Size
Placing HADB files on Physical Disks
Memory Allocation
Performance
DataBufferPoolSize
Tuning DataBufferPoolSize
LogBufferSize
Tuning LogBufferSize
InternalLogbufferSize
Tuning InternalLogbufferSize
NumberOfLocks
Calculating the number of locks
Summary
Tuning NumberOfLocks
Timeouts
JDBC connection pool timeouts
Load Balancer timeouts
HADB timeouts
Operating System Configuration
Tuning the Enterprise Server for High-Availability
Tuning Session Persistence Frequency
Web-method
Time-based
Session Persistence Scope
session
modified-session
modified-attribute
Session Size
Checkpointing Stateful Session Beans
Configuring the JDBC Connection Pool
Configuring the Load Balancer
Enabling the Health Checker
© 2010, Oracle Corporation and/or its affiliates