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

  • 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