WA1359 WebSphere V6 Performance Tuning and Methodology Workshop Training and Courseware Course Outline
|
|
1. Performance Tuning Foundation
|
|
- Topics
- List of Terms
- Load
- Active Load
- Concurrent Load
- Peak Load
- Throughput
- Throughput Curve
- The significance of throughput
- Response time
- Response Time Curve
- Think time
- User Ramp Up
- Saturation
- Response time at system saturation
- Response time past the buckle point
- Interpreting response time trends
- Interpreting response time trends
- Interpreting response time trends
- Performance Acceptance Criteria
- Measure your system s steady state
- Path length
- Bottleneck
- Dealing with a bottleneck
- Scaling
- Horizontal and vertical scaling
- Analyze before trying to scale
- Calculating QA User Count
- Accommodating QA User Count
- Scaling Up QA Configuration
- Bottom Up and Top Down
- Bottom Up Testing
- Summary
|
| |
2. WebSphere Queuing Network
|
|
- Topics
- The WebSphere Queuing Network
- Basic Tuning Principle
- Terms
- Open/Closed Queues in WebSphere
- Queue Parameter List
- IBM HTTP Server 6.0/Apache 2.x
- Windows Thread Control
- UNIX Threads and Process Control
- Configuring MaxClients or ThreadsPerChild
- Backlog Queue
- Web Container Transport Chain
- Configure Transport Chain
- TCP Inbound Channel (TCP_2)
- Thread Pool
- Back to TCP Inbound Channel
- HTTP Inbound Channel (HTTP_2)
- EJB Method Call Queue
- Setting the ORB Queue Values
- Data Source Queue
- Prepared statements and caching
- Configuring Data Source
- Configuring Connection Pool Size
- Summary
|
| |
3. Performance Data Gathering
|
|
- Topics
- Problem Determination v.s. Performance Tuning
- What May Affect the WebSphere Performance
- Performance Monitoring and Tuning in WebSphere
- Performance Monitoring Infrastructure (PMI)
- How PMI Works
- PMI Metrics Thread Pools
- PMI Metrics Web Application
- PMI Metrics - Transaction
- PMI Metrics - EJB
- PMI Metrics Data Source
- PMI Metrics Memory Usage
- PMI Metrics HTTP Session
- Monitoring Performance
- JVMPI Monitoring
- JVMPI Metrics
- Tivoli Performance Viewer
- Tasks
- Enable Performance Monitoring
- Enabling JVMPI data reporting
- Launching Tivoli Performance Viewer
- Select Performance Data
- Monitor IBM HTTP Server
- Monitor IBM HTTP Server
- IBM HTTP Server status
- Summary
|
| |
4. Monitoring Memory and the CPU
|
|
- What is this Chapter About?
- Performance Considerations
- Performance Concerns
- The Heap
- The Heap (cont.)
- Heap Limit
- Default Initial Heap Size
- Heap Top
- Default Maximum Heap Size
- Configure the heap in WebSphere
- Allocation Failure
- Garbage Collection
- Heap Regions IBM JDK
- Heap Regions Sun JDK
- Enable verbose garbage collection
- Analyzing Verbose GC - IBM
- Analyzing Verbose GC - Sun
- Thread Local Heap (TLH)
- Memory Tuning Goals
- Effect of Initial Heap Size on GC
- Controlling the GC Timings
- Optimizing GC
- Solaris Threading Model
- WebSphere Profiling Architecture
- Architecture
- Tasks
- Install the IBM Agent Controller - Windows
- Install the IBM Agent Controller - UNIX
- Start the IBM Agent Controller
- Enable profiling on the application server
- Begin Profiling
- Attach a monitor to a JVM
- Class Filter Option
- Profile Type Option
- Start monitoring
- Detecting Memory Leak
- Class Statistics
- Detecting Heavy CPU Usage
- End to End Call Chain Analysis
- Execution Table
- Refresh Views
- Save performance data
- Stop Profiling
|
| |
5. Performance Tuning Techniques
|
|
- Topics
- Basic Methodology
- Problem Areas
- CPU utilization
- The components of CPU usage
- Measure CPU utilization everywhere
- Symptoms of underutilization
- What causes underutilization?
- Network capacity problem?
- Synchronization problem?
- Slow external resource?
- Is the test pushing the system hard enough?
- Does your system scale?
- Symptoms of burstiness
- Infrequent synchronization problem?
- Test driver synchronization problem?
- Slow back-end systems?
- Slow garbage collection?
- Timeout problems?
- Erratic network traffic?
- Symptoms of over utilization
- High User CPU
- High System CPU
- High Wait CPU
- Server hanging
- Thread dump in WebSphere v6
- Analyzing a Thread Dump
- Uneven cluster loading
- Load balancer configured correctly?
- Plan of attack
- Tuning the WebSphere Queuing Network
- Tuning Static Content
- Recall: Basic Tuning Principle
- EJB instance cache size
- Disable Web Application Auto Reload
- Enable Pass By Reference
- Relax Transaction Isolation Level
- Optimize Access Intent
- Cache JNDI Objects
- Database Connection Handling
- Prepared Statement Caching
- Tuning the Prepared Statement Cache
- Prepared Statement Caching by DB2
- Overview
- Logs
- Separate DB2 log files from the physical database
- Configuration Advisor
- Launch Configuration Advisor
- DB2/Linux communication
- MaxAppls
- MaxAgents
- Buffer Pool Tuning
- Configuring buffpage
- Evaluating the buffer pool size
- Monitoring the database buffer pool
- Query optimization level
- Configuring query optimization level
- reorgchk
- MinCommit
- Determining the need to change MinCommit
- Guidelines
- Session Affinity
- Session Cache
- Configuring Session Management
- Configuring the Session Database
- Tuning Session Database I/O
- Calculating Average Session Size
- Tuning Session Database I/O DB2 Specific Notes
|
| |
6. Application Tracing and Troubleshooting
|
|
- Topics
- Resources for Problem Determination
- Access Log
- Error Log
- Start Up Error
- Java Logging API
- Java Logging API
- Log Types
- Example WebSphere Log File
- Understanding Java Stack Trace
- Application Server Logs
- Service Logs
- Native Log
- Web Server Plug-in Log
- WebSphere Log Files
- Default Profile Log Files
- Server Log Files
- Can t Keep Them Straight?
- Application Tracing
- Application Tracing
- Tools for Tuning and Troubleshooting
- Tools for Tuning and Troubleshooting
- Collector
- Running Collector
- Information Collected
- FFDC
- dumpNameSpace
- HTTP Sessions Errors
- IBMTrackerDebug Output
- Installation Information
- Java Stack Dump
- Configure Application Server Traces
- Select the Log or Trace
- Diagnostic Trace Options
- Trace Specification
- Logging/Tracing Facts
- Log Analyzer
- Launching Log Analyzer
- Use Log Analyzer
- Log Analyzer Interface
- Preferences
- Log Type and Sorting
- Adjust Log Analyzer Settings Set Log Record Format
- UOW Format
- Activity Record Format
- Merge Logs
- Merge Logs
- Update Symptom Database
- Overview
- Debugging Service
- Rational Application Developer
- Summary
|
| |
7. Problem Determination Techniques
|
|
- Steps to Follow
- WebSphere Specific Notes
- Problem With Installation
- Server Does Not Start
- 404 File Not Found
- 500 Internal Server Error
- Cannot Find Server or DNS Error
- Virtual Host Not Found
- JSP Compilation Problem
- Class Not Found Error
- JNDI Name Not Found
- High CPU Usage
- Application Server Hanging
|
| |
8. Network Deployment Architecture
|
|
- Network Deployment Pre-installation
- Network Deployment Pre-installation
- Network Deployment Coexistence with WAS-Base
- Network Deployment Coexistence with WAS-Base
- Centralized Administration
- Deployment Manager
- Cell
- Nodes
- The addNode Command
- addNode - Steps
- removeNode Command
- cleanupNode
- Synchronization
- Configuring Automatic Synchronization
- Manual Synchronization
- syncNode
- Clusters
- Create a Cluster
- Add Clustered Servers
- Server Weight
- Cluster Summary
- Managing Cluster Members
- Adding a Cluster Member
- Start/Stop Cluster
- Configuring the Web Server
- Web Server Integration Architecture
- Installing Software in the Web Server Machine
- Registering the Web Server in WebSphere
- Working With plugin-cfg.xml
- The plugin-cfg.xml File
- Root Configuration Element
- DNS Failures
- Config Overview
- The Plugin Log
- Virtual Host Groups
- Virtual Host Groups
- Server Clusters
- Server Clusters
- ServerCluster
- ServerCluster
- Server
- Server
- Server
- Primary and Backup Servers
- Primary and Backup Servers
- URI Groups
- Route
- Route Configuration
- Example Route
|
| |
9. WebSphere High Availability Overview
|
|
- Workload Management and Failover in WebSphere
- Server Affinity
- Problems With Server Affinity
- Server Affinity With Failover
- Data Replication Service
- Number of Replicas
- Replication Security
- Enabling Server Affinity Failover
- Session Database
- Session Tuning
- Distributed Session Tuning
- Introduction - HAManager
- HAManager
- HAManager Messaging Service
- HAManager - Functioning
- Core Group
- Core Group Coordinator
|
| |
10. Dynamic Caching for Web Applications
|
|
- Introduction
- Configuring Dynamic Cache
- How Caching Works
- Structure of cachespec.xml
- URL Based Caching
- Session Based Cache
- Cache Priority
- Configuring Cache Manager
- Edge Side Include (ESI) Cache
- Configuring ESI Cache
|
| |
11. IBM Heap Dump Facility
|
|
- Topics
- What is a Heap Dump
- Enabling heapdumps on WAS V6.0
- Causing Heapdumps
- Understanding Heapdumps
- Understanding Heapdump file
- Using HeapDiff
- Using HeapDiff to Detect Memory Leak
|
| |
Appendix A. AIX Monitoring Tools and Tuning
|
|
- topas
- Advanced topas Use
- svmon
- Generating svmon Reports
- The monitor Tool
- Network Buffer Tuning
- Network Dropped Packets Resolution
- Network Statistics Report
- TCP/UDP Buffer Tuning
- System Activity Report
- Disk I/O Report
- Reduce IO Bottleneck
- Using filemon
- Using vmstat
- Tuning VMM Policy
|
| |
Appendix B. Solaris Monitoring and Tuning
|
|
- The vmstat Command
- The mpstat Command
- The iostat Command
- The netstat Command
- netstat (cont.)
- Increasing the Connection Backlog
- Minimize Packet Fragmentation
- Reduce Socket Overhead
- Recover from Browser Disconnects
- Kernel Tuning
- Minimize Page Scanning
|
| |
Appendix C. Linux Monitoring and Tuning
|
|
- Monitoring Tools
- The uptime Command
- The top Command
- The iostat Command
- The vmstat Command
- The pmap Command
- Kernel Parameter Tuning
- Increase Maximum File Descriptor Limit
- Increase Maximum File Descriptor Limit
- Network Tuning
- Network Tuning
- Linux Tuning Tips
- Linux Tuning Tips
- Linux Tuning Tips
|
| |
Appendix D. Sun Java System Web Server 6.0 Tuning
|
|
- Sun Java System Web Server v6.0 - Basic Concepts
- Basic Concepts (cont.)
- Monitoring Using stats-xml
- Monitoring Using perfdump
- Connection Tuning
- Socket Listen Tuning
- Session Thread Tuning
- Keep Alive Tuning
- Static File Cache Tuning
- DNS Lookup Tuning
|
| |