WA1094 WebSphere v5.1 Performance Tools and Methodology Workshop Training and Courseware Course Outline
|
|
1. Foundation
|
|
- Objectives
- 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…
- 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
|
| |
2. WebSphere Queuing Network
|
|
- Topics
- The WebSphere Queuing Network
- Basic Tuning Principle
- Terms
- Open/Closed Queues in WebSphere
- Queue Parameter List
- IBM HTTP Server
- Configuring MaxClients or ThreadsPerChild
- UNIX Process Control
- Backlog Queue
- Keep Alive Settings
- Web Container Queue
- Web Container Thread
- Configure the Web Container Thread Pool
- HTTP Transport Properties
- HTTP Transport Prpoerties (cont.)
- Configuring HTTP Transport Properties
- Example: Configuring MaxKeepAliveConnections
- Taking Advantage of Backlog
- 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
|
|
- Performance Monitoring and Tuning in WebSphere
- Performance Monitoring Infrastructure (PMI)
- How PMI Works
- PMI Performance Data
- 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
- Rating the Impact of Performance Monitoring
- JVMPI Monitoring
- JVMPI Metrics
- Tivoli Performance Viewer
- Tasks
- Enable Performance Monitoring
- Enabling JVMPI data reporting
- Launching Tivoli Performance Viewer
- Please Note…
- One More Thing…
- When Security is Enabled
- Configure Monitoring Settings
- Setting the Instrumentation Level
- Viewing Performance Data
- Viewing Performance Chart
- Start Logging Data
- Specify Log File
- Storing and Replaying Data from a Log File
- Changing Display Options
- The PMI Servlet
- The PMI Servlet (cont…)
- Metric Tags
- Monitor IBM HTTP Server
- Monitor IBM HTTP Server…
- IBM HTTP Server status
|
| |
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. AIX Monitoring Tools and Tuning
|
|
- AIX Work Load Management
- Work Load Management
- WLM Classes
- Predefined Classes
- Resource Metrics
- Share Value of a Resource
- Classification Attributes
- Other Class Attributes
- Basic WLM Administration
- Basic Administration
- WLM Monitoring Tools
- 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
|
| |
6. 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 v5
- 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
- Guide Lines
- Session Affinity
- Session Cache
- Configuring Session Management
- Tuning Session Database I/O
- Configuring the Session Database
- Calculating Average Session Size
- Tuning Session Database I/O – DB2 Specific Note
|
| |
7. WebSphere Problem Determination
|
|
- Topics
- Resources for Problem Determination
- Access Log
- Error Log
- Start Up Error
- The JRAS Toolkit
- JRAS Log Types
- Common Log Format
- Example WebSphere Log Using JRAS
- Understanding Java Stack Trace
- Application Server Logs
- Configure JVM Logs
- Configure JVM Logs (cont…)
- Service Logs
- Configuring Activity Log
- Native Log
- Configuring Native Logs
- Web Server Plug-in Log
- WebSphere Log Files
- Server Log Files
- Can’t Keep Them Straight?
- Application Tracing
- Application Tracing…
- Diagnostic Trace Options
- Trace Specification
- Trace Specification String
- Runtime Trace Options
- Tools for Tuning and Troubleshooting
- Tools for Tuning and Troubleshooting…
- Collector * Running Collector
- First Failure Data Capture (FFDC)
- dumpNameSpace
- HTTP Sessions Tracker Servlet
- IBMTrackerDebug Output
- Installation Information
- Java Stack Dump
- Thread Analyzer
- Viewing Transactions
- 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
- WebSphere Studio
- Summary
|
| |
8. 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
|
| |
9. WebSphere Best Practices
|
| |
| |
Appendix A. Sun ONE Web Server 6.0 Tuning
|
|
- iPlanet v6.0 - Basic Concepts
- Basic Concepts (cont.)
- Monitoring Using stats-xml
- Monitoring Using perfdump
- Connection Tuning
- Connection Tuning (cont.)
- Socket Listen Tuning
- Session Thread Tuning
- Keep Alive Tuning
- Static File Cache Tuning
- DNS Lookup Tuning
|
| |
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…
|
| |
Appendix D. Monitoring memory and the CPU with JProbe
|
|
- What is JProbe Suite?
- What JProbe provides
- Tasks
- Create JProbe Memory Debugger session settings
- Start monitoring
- Runtime Heap Summary
- Instance Summary
- Controls
- Controls…
- Request garbage collection
- Checkpoint
- Setting a checkpoint
- “Change” values
- What is a Use Case?
- How a Use Case works
- Execute a Use Case
- Memory Debugger creates a snapshot
- Analyze a snapshot
- Class View
- Instance Detail View
- Referrers and References
- Reference Graph View
- Complex Reference Graph View
- Leak Doctor
- Launch the Leak Doctor
- Leak Doctor’s analysis
- Remove a reference
- JProbe Threadalyzer
- Configuring Threadalyzer
- Running a Test
- Threadalyzer Browser
- Data Collection Options
- JProbe Profiler
- Configuring the Profiler
- Running a Profiling Session
- Analyzing Statistics
|
| |