WAS v5.1 Performance
Overview
- Objectives
- Scalability
- Performance
- Throughput
- Workload management
- Availability
- Hardware-based high availability
- Failover
- Maintainability
- Dynamic changes to configuration
- Mixed configuration
- Fault isolation
- Session state
- Performance impacts of WAS security
- WAS architecture
- WAS Network Deployment components
- Web clients
- Java clients
- Workload management
- Web server workload management
- Plug-in workload management
- Workload management using WebSphere clustering
- Distributing workloads
- Failover
- Scalability
- Secure application cluster members
- Enterprise Java Services workload management
- Managing session state among servers
- HTTP sessions and the session management facility
- EJB sessions or transactions
- Stateless session bean
- Stateful session bean
- Entity bean
- Message-driven beans
- Server affinity
- Performance improvements over previous versions
Design For Scalability
- Overview
- Scaling your infrastructure
- Understanding the application environment
- Categorizing your workload
- Workload patterns and Web site classifications
- Publish/subscribe (user to data)
- Online shopping (user to online buying)
- Online trading (user to business)
- Business to business
- Workload characteristics
- Determining the most affected components
- Selecting the scaling techniques to apply
- Using a faster machine
- Creating a cluster of machines
- Using appliance servers
- Segmenting the workload
- Batch requests
- Aggregating user data
- Managing connections
- Caching
- Applying the technique(s)
- Re-evaluating
Toplogies
- Overview
- J2EE tiers model
- Topology selection criteria
- Strategies for scalability
- Session persistence considerations
- Single machine topology
- Separating the Web server
- Separating the database server
- Vertical scaling
- Horizontal scaling with clusters
- Advantages
- Disadvantages
- Horizontal scaling with IP sprayer
- Complex IP sprayer topology
- Advantages
- Disadvantages
- One WebSphere administrative cell versus many
- Advantages
- Disadvantages
- 0 Multiple clusters on one node versus one cluster per node
- Advantages
- Disadvantages
- The sample topology
- Topologies and high availability
- Using WebSphere Load Balancer custom advisor
- thoughts on topologies
- Topology selection summary
Load Balancing
- Overview
- Introduction
- Scalability
- Availability
- Performance
- IBM WebSphere Edge Components
- Load Balancer overview
- Dispatcher component
- Content Based Routing (CBR)
- Site Selector
- Cisco CSS Controller and Nortel Alteon Controller
- Load Balancer topologies
- Load Balancer on a dedicated server
- Collocated servers
- High availability
- Mutual high availability
- Installation and configuration
- Setting up the cluster machines
- Configuring a Web server cluster
- Testing the configuration
- Advisors
- Customizable advisor settings
- Custom advisors
- Using WAS sample custom advisor
- Server affinity
- "Stickyness" to source IP address
- Passive cookie affinity
- Active cookie affinity
- URI
- SSL session ID
- Caching Proxy
- Forward proxy
- Reverse proxy (IP forwarding)
- Load Balancing
- Dynamic caching
Plug-in workload management and failover
- Overview
- Introduction
- The embedded HTTP transport
- Setting up the Web containers
- Virtual hosts
- Transports
- Setting up transports
- Setting up multiple transports
- HTTPS considerations in a WLM environment
- Creating clusters and cluster members
- WebSphere plug-in workload management
- Processing requests
- The plug-in configuration file
- Generation of the plug-in configuration file
- Auto-reload setting of your Web module
- Refresh interval of the plug-in
- Manual regeneration of the plug-in file
- Plug-in workload management and failover policies
- Workload management policies
- Failover
- Primary and backup servers
- Session management
- Session affinity
- Session failover inside the plug-in
- Session identifiers
- Cookies
- URL rewriting
- SSL ID
- Session persistence and failover
- Database session management
- Memory-to-memory replication
- Troubleshooting the Web server plug-in
- Logging
- The plug-in log
- WASs activity.log
- Web server error log
- Trace
- Tracing the plug-in
- Tracing GenPluginCfg
- Web server plug-in behavior and failover
- Normal operation
- Workload management with the plug-in
- Testing session management
- Failover operation
- Stopping a cluster member
- Stopping a cluster member containing active sessions
- Killing a cluster member during a request
- Overloading a cluster member
- Tuning failover
- ConnectTimeout setting
- RetryInterval setting
- MaxConnections setting
EJB workload management
- Overview
- Enabling EJB workload management
- EJB types and workload management
- Stateless session beans
- Stateful session beans
- Entity beans
- Naming and name spaces
- Looking up an EJB home with JNDI examples
- Perform lookup in an EJB or Web container in the same cell
- Perform lookup in an EJB / Web container outside the cell
- Perform lookup in a J2EE application client container
- Perform lookup in a Java stand alone client
- How EJBs participate in workload management
- Initial request
- Subsequent requests
- Cluster run state changes
- EJB server selection policy
- Server weighted round robin routing configuration
- Prefer local configuration
- EJB workload management behavior
- WLM behaviors using server weighted round robin
- Prefer local
- Process affinity
- Transaction affinity
- EJB workload management failover
- Exceptions triggering automatic failover
- Exceptions thrown by WLM to the application
- Backup Cluster support
Implement the sample topology
- Introduction
- Overview
- Software products
- The sample topology
- Applications used in our sample topology
- BeenThere
- Trade
- Installation summary
- Configuring Caching Proxy
- Starting Caching Proxy
- Set up Caching Proxy
- Set administrator user ID and password
- Restart Caching Proxy
- Configuring Load Balancer
- Configuring the Web servers for Load Balancer
- Starting Load Balancer and administration GUI
- Connecting to the Dispatcher host
- Adding the Web server cluster
- Adding a port to the cluster
- Adding the Web servers to the cluster
- Start the Network Dispatcher manager
- Checking what you have done until now
- Configuring WebSphere clusters
- Introduction
- Creating the Web container cluster
- Creating the EJB cluster
- Configure persistent session management
- Install BeenThere
- BeenThere installation summary
- Install BeenThere
- Regenerate Web server plug-in
- Restart servers
- Verifying BeenThere
- Install Trade3.1
- Trade installation summary
- Download the Trade package
- Set up and configure Trade3DB database
- Create JDBC and JMS resources
- SOAPify Trade3.ear
- Install Trade from the WebSphere Administrative Console
- Regenerate Web server plug-in
- Restart servers
- Install Trade using the installation script
- Working with Trade
- Verify failover with Trade
- Volume testing Trade
High Availability
- Introduction
- Process availability and data availability
- Clustering for high availability
- Availability definition
- Levels of availability
- Availability matrix
- Causes of downtime
- Possible single points of failure in the WebSphere system
- Levels of WebSphere system availability
- WebSphere system HA level 1
- WebSphere system HA level 2
- WebSphere system HA level 3
- WebSphere system HA level 4
- WebSphere system HA level 5
- WebSphere system HA level 6
- Planning and evaluating your WebSphere HA solutions
- Failover terms and mechanisms
Failover and recovery
- Introduction
- Overview
- Web container clustering and failover
- Web container failures and failover
- Web server plug-in failover performance tuning
- Primary and backup servers cluster two-level failover
- 9-07.htm
- RetryInterval and operating system TCP timeout
- Network failures
- Stream and overloading failover
- HTTP session failover
- Server ID
- Session ID
- Ordered routing process
- Session affinity and failover
- No session support needed
- No session information in the client
- Session affinity without session persistence
- Session persistence and failover
- Session update methods and failover session data loss
- At the end of servlet service
- Manually sync() in the code using the IBM extension
- Time-based (at a specified time interval)
- Session persistence and failover
- In-memory
- Persistent to database
- Memory-to-memory
- EJB container failover
- EJB client redundancy and bootstrap failover support
- EJB container redundancy and EJB WLM failover support
- Redundant server topology for EJB failover support
- EJB WLM routing
- Routing algorithm
- LSD failover
- EJB container failover behavior and tuning
- Fault isolation and data integrity
- EJB caching and failover
- EJB types and failover
- Conditions of WLM failover
- Resource redundancy (EJB database, JMS resource, LDAP)
- Enhancing WebSphere HA using clustering software
- Failover unit
- Configuration and setup for HACMP
- Failover process
- Advantages
Deployment Manager and Node Agent high availability
- Introduction
- Introduction
- Node Agent failures
- Application servers
- Deployment Manager
- Location Service Daemon
- Naming server
- Security server
- Application clients
- Synchronization Service and File Transfer Service
- RAS service, PMI and monitoring
- Administrative clients
- Enhancing Node Agent high availability
- Loopback alias configuration
- Add Node Agent as OS daemon
- Enhancing Node Agent HA using clustering software
- Deployment Manager failures
- Configuration management
- Node Agent
- Application server
- Naming server
- Security server
- WLM runtime service
- Application clients
- Synchronization Service and File Transfer Service
- RAS Service and PMI monitoring
- Administrative clients
- Enhancing Deployment Manager high availability
- Add Deployment Manager to OS daemon service
- Make Deployment Manager highly available using clustering software and hardware
- HACMP configuration
WebSphere Embedded JMS server and WebSphere MQ high availability
- Introduction
- JMS support in IBM WAS Network Deployment V5.1
- Embedded JMS server high availability using clustering software
- WebSphere MQ HA using clustering software
- WebSphere MQ built-in queue manager clustering
- Combined approaches for MQ built-in queue manager cluster and HACMP clustering
WebSphere data management high availability
- Introduction
- WebSphere with IBM HACMP
- Introduction and considerations
- Hardware and software
- Setup and configuration
- Typical failover
- Initiating various failures and tests
- Tuning heartbeat and cluster parameters
- WebSphere with MC/ServiceGuard
- Introduction and considerations
- Hardware and software
- Setup and configuration
- Typical failover
- Initiating various failures and tests
- Tuning heartbeat and cluster parameters
- WebSphere with Sun Cluster
- Introduction and considerations
- Setup and configuration
- WebSphere with VERITAS Cluster
- Introduction and considerations
- Setup and configuration
- WebSphere with Microsoft Cluster Service
- Introduction and considerations
- Setup and configuration
- Programming clients for transparent failover
- Bootstrap to multiple hosts
- Catch StaleConnectionException
- Direct JDBC calls, auto commit
- Direct JDBC calls, local transaction
- Direct JDBC calls, global transaction
- Indirect JDBC calls, rethrowable
- Indirect JDBC calls, wrapped
- WebSphere and IP-based database failover
- Administrative servers and administrative actions
- Application servers
- Persistent session
- Java/C++ applications and application re-connecting
- Enterprise beans
- Web-based clients, applets, servlets, and JSPs
- Naming service and security service
- Workload management
- WebSphere with OPS and RAC
- Introduction and considerations
- Setup and configuration
- Install the shared disk subsystem
- Creating raw devices
- Install the operating system-dependent layer
- Install OPS/RAC
- Configuring OPS/RAC net service for failover
- Configuring WebSphere servers
- WebSphere with DB2 Parallel Server
- Introduction and considerations
- Setup and configuration
- WebSphere and non-IP-based database failover
- One instance for all WebSphere databases?
- WebSphere and Web server high availability
High availability of LDAP, NFS, and firewall
- Introduction
- Load Balancer high availability
- LDAP high availability
- Firewall high availability
- Using clustering software
- Using a network sprayer
- Conclusions
- Network file system high availability
- Summary
Dynamic caching
- Overview
- Introduction
- WWW caching services
- Fragment caching
- Dynamic caching scenarios
- Using WebSphere dynamic cache services
- Installing Dynamic Cache Monitor
- Enabling dynamic cache service
- WebSphere dynamic caching scenarios
- Servlet/JSP result caching
- Testing home servlet and market summary JSP
- Command result caching
- Enabling command result caching
- Cache replication
- Enable cache replication
- Configure cache replication
- Configure cachespec.xml file for cache replication
- Cache replication testing
- Cache invalidation
- Troubleshooting the dynamic cache service
- WebSphere external caching scenarios
- WebSphere External Cache configuration
- External cache group settings
- External cache group member settings
- External caching by Web server plug-in
- ESI Processor
- Configuration steps
- ESI cache monitoring
- Cache invalidation
- External caching on IBM HTTP Server
- Configuration steps
- Cache monitoring
- External caching on Caching Proxy
- Caching Proxy monitoring
- Caching Proxy troubleshooting
- External cache invalidation
- Conclusion
- Benchmarking Trade3
- Dynamic caching
- Edge Side Includes
- Performance
- Best Practices
- Reference
Optimizing use of JMS components
- Overview
- Introduction
- Components used in a JMS configuration
- Generic JMS usage
- JMS and Message Driven Beans
- Managing workload for JMS through configuration
- Basic workload patterns
- Workload from Web or EJB container
- Workload from messaging system (MDB)
- Workload from both
- Relationships between JMS components
- Component relationships when using MDBs
- Component relationships when using generic JMS
- Choosing optimal configuration settings
- Creation of the JMS provider objects at the correct scope
- Important JMS component settings
- Transport Type - BINDINGS or CLIENT
- Persistent Messages
- XA enabled resources
- Client ID and Enable Clone support on a TCF
- DIRECT or QUEUED transport type for TCF
- The listener service and listener ports
- Message listener port maximum sessions
- Maximum messages
- Message listener service thread pool
- Underlying MQ JMS connection pooling
- Use separate QCF and TCF for MDBs
- Failure behavior settings
- Setting up the QCF / TCF pools
- More information
- Optimizing JMS performance in the code
- Selectors
- Generic JMS and point-to-point messages
- MDBs and selectors
- Application defined persistence
- Tidying up
- JMS Listener port failure behavior
- Failure in the listener port
- Failure to process a message
- Example JMS topologies and scenarios
- What does Trade3 use JMS for?
- Point-to-point
- Publish/Subscribe
- Clustered Trade3 application and the Embedded JMS server
- The chosen embedded JMS topology
- Setting up the topology
- Clustered Trade3 application WebSphere MQ and WebSphere Business Integration Event Broker
- The chosen WebSphere MQ clustering topology
- Software
- Initial WebSphere MQ configuration
- WebSphere Business Integration Event Broker Configuration
- WAS configuration
- Monitoring JMS performance within Tivoli Performance Viewer
- Refresh to see all settings
- What do the monitors under JCA connection pools mean?
Server-side performance and analysis tools
- Overview
- The dimensions of monitoring
- Overview: Collecting and displaying appserver data
- Performance Monitoring Infrastructure
- Performance data classification
- Performance data hierarchy
- Performance data counters
- Instrumentation levels
- Enabling the PMI service
- Using Administrative Console to enable the PMI service for the appserver
- Using Administrative Console to enable the PMI service for the Node Agent
- Using wsadmin to enable the PMI service
- Setting instrumentation levels
- Using the Administrative Console to set instrumentation levels
- Using the wsadmin command to set instrumentation levels
- Using JVMPI facility for PMI statics
- Performance data provided by JVMPI
- Enabling JVMPI from the Administrative Console
- Enabling JVMPI with the command line interface
- Disabling JVMPI profiling
- Summary
- Using Tivoli Performance Viewer
- About Tivoli Performance Viewer
- What can Tivoli Performance Viewer do?
- Tivoli Performance Viewer functionality
- Running Tivoli Performance Viewer
- Connecting to the Deployment Manager
- Running disconnected
- Accessing a remote server
- Stopping the Tivoli Performance Viewer
- Tivoli Performance Viewer with security enabled
- Setting the instrumentation levels
- Custom settings
- Setting instrumentation level for enterprise bean methods
- Using Tivoli Performance Viewer to monitor an application
- Refreshing data
- Displaying multiple counters
- Recording in a log file
- Replaying a log file
- Clearing values from tables and charts
- Resetting counters to zero
- Viewing and modifying chart data
- Changing display settings
- Getting online help
- Other performance monitoring and management solutions
- Developing your own monitoring application
- PMI Request Metrics
- Enabling and configuring PMI Request Metrics
- PMI Request Metrics trace record format
- Filters
- Example: Generating trace records from Performance Monitoring Infrastructure Request Metrics
- Dynamic Cache Monitor
- Monitoring the IBM HTTP Server
- Configure your IBM HTTP Server
- Starting the Windows performance monitor
- Selecting performance data
- IBM HTTP Server status page
- Log Analyzer
- ThreadAnalyzer Technology preview
- Download and installation of ThreadAnalyzer
- Using ThreadAnalyzer
- Starting Thread Analyzer
- ThreadAnalyzer project
- ThreadAnalyzer thread dumps
- Obtaining a thread dump to analyze
- Navigating in ThreadAnalyzer
- Automatic deadlock detection
- ThreadAnalyzer usage example
- Getting online help
- Performance Advisors
- Runtime Performance Advisor configuration settings
- Advice configuration settings
- Using the Runtime Performance Advisor
- Runtime Performance Advisor output
- TPV Advisor configuration
- Using TPV Advisor
- TPV Advisor output
- Reference
Development-side performance and analysis tools
- Overview
- Introduction
- The Profiler (profiling tools)
- Overview
- IBM Agent Controller
- Profiler configuration
- Profiler configuration for a remote process
- Profiler configuration for WebSphere Studio test environment
- Generic Profiler configuration (local and remote environments)
- Start data collection
- Configuration settings for profiling
- Profiling the application
- Testing methodology
- Using the Profiler
- Profiler views
- Column information
- Package Statistics Table
- Class Statistics Table
- Method Statistics Table
- Instance Statistics Table
- Object References Table
- Execution Flow View
- Object and Class Interaction (Sequence Diagram) views
- Method Invocation View
- Host Interaction View
- Process Interaction View
- Thread Interactions View
- IBM Page Detailer
- Overview
- Important considerations
- Key factors
- Tips for using Page Detailer
- Reference
Application development: Best practices for performance and scalability
- Overview
- Introduction and general comments
- Memory
- Session Management
- Synchronization
- Servlets and JavaServer Pages
- Logging
- Enterprise JavaBeans
- Database access
- General coding issues
- Reference
Performance tuning
- Overview
- Testing the performance of an application
- Introduction to application performance testing
- Tools of the trade
- WebSphere Performance Tools
- ApacheBench
- Command line options
- OpenSTA
- Feature overview
- Prerequisites and installation
- The OpenSTA architecture
- Recording the Trade3 script
- Randomizing request using variables
- Additional Script Modeler features
- Performance testing using the OpenSTA Commander
- View results
- Other testing tools
- Performance monitoring guidelines
- Monitoring using Tivoli Performance Viewer and Advisors
- Top-ten monitoring hotlist
- Tivoli Performance Advisor
- Runtime Performance Advisor
- Performance analysis
- Terminology
- Performance testing
- The Monitoring - Tuning - Testing cycle
- Performance tuning guidelines
- Tuning parameter hotlist
- Parameters to avoid failures
- Hardware and capacity settings
- Adjusting WAS system queues
- Queuing before WebSphere
- Determining optimum queue sizes
- Determining the maximum concurrency point
- Adjusting queue settings for access patterns
- Configuring the queues
- Data sources
- EJB container
- Web container
- Web server
- Using cluster configurations
- Application assembly performance checklist
- Enterprise bean modules
- Web modules
- Java tuning
- Garbage collection basics
- The garbage collection bottleneck
- The garbage collection gauge
- Detecting over-utilization of objects
- Detecting memory leaks
- Java heap parameters
- Tuning the IBM JVM
- Tuning the Sun JVM
- Operating system tuning
- AIX
- HP-UX 11i
- Linux - Red Hat Advanced Server
- Linux - SUSE Linux Enterprise Server 8 SP2A
- Solaris
- Windows NT or 2000 TCP/IP parameters
- The Web server
- Web server configuration reload interval
- IBM HTTP Server
- IBM HTTP Server - Linux
- IBM HTTP Server - Windows 2000 or Windows 2003
- IBM HTTP Server
- Sun ONE Web Server (formerly iPlanet)
- Microsoft IIS
- Dynamic Cache Service
- Security settings
- Tuning Secure Sockets Layer
- Overview of handshake and bulk encryption and decryption
- Object Request Broker (ORB)
- XML parser selection
- Transaction service settings - transaction log
- DB2 tuning
- DB2 logging
- DB2 configuration advisor
- Use TCP sockets for DB2 on Linux
- DB2 MaxAppls and DB2 MaxAgents
- DB2 buffpage
- DB2 query optimization level
- DB2 reorgchk
- DB2 MinCommit
- Additional reference materials
Backups and Restores
- Network Deployment configurations
- Backup methods
- Node failure scenarios
- Failure of the Deployment Manager node
- Failure of a WAS Base node
- Node recovery
- Recovery using filesystem backup and restore methods
- Prerequisites
- Restoring the Deployment Manager node
- Restoring a WAS Base node
- Recovery using backupConfig and restoreConfig
- Prerequisites
- Restoring the Deployment Manager node
- Restoring a WAS Base node
- Conclusion
- Additional reference material
Example
See Also
WebSphere is a trademark of the IBM Corporation in the United States, other countries, or both.
IBM is a trademark of the IBM Corporation in the United States, other countries, or both.
Tivoli is a trademark of the IBM Corporation in the United States, other countries, or both.