Web Performance Tuning Class

by Patrick Killelea, author of the definitive text on website performance:

 

Please write Patrick Killelea at p@patrick.net to arrange a class, or to inquire about the next scheduled class.

Patrick is also available for consulting on an hourly basis.

Class Description

This one-day course is a comprehensive overview of practical website monitoring, load testing, and performance problem debugging.

Understanding the concepts and techniques of web performance dramatically increases the productivity of website QA staff. This course helps the participants to quickly write maintainable monitoring scripts and load tests, to understand what exactly is happening during a web page view, and to use the monitoring and load test results to quickly find and eliminate website performance problems. Many script examples are given with instructions on how to apply them. Free open source solutions are presented where possible.

Who should attend: QA staff, performance testers, and engineers involved in performance testing

Prerequisites: Familiarity with basic Linux shell commands. It would be helpful to also know a scripting language such as perl or python.

Cost: $625 per student. Quantity discounts available.

Contact: Please write Patrick Killelea at p@patrick.net to arrange a class, or to inquire about the next scheduled class.

Make money by referring students! A $100 referral fee will be paid to referers after class completion. Referrer email must be given by student during the registration process. No limit on number of referral payments.

Topics:

Section 1: Introduction

  • 1.0 Etiquette
  • 1.1 Your teacher for today
  • 1.2 Why worry about web performance?
  • 1.3 Organizational considerations and your career
  • 1.4 Latency, Throughput, and Scalability
  • 1.5 Performance does not degrade linearly
  • 1.6 The Memory Heirarchy
  • 1.7 Tiered Architecture and Caching
  • 1.8 Abstraction is the enemy of performance
  • 1.9 Zen: emptiness is fast
Section 2: Monitoring tools and techniques
  • 2.0 Monitoring at GUI level vs HTTP level
  • 2.1 Remote monitoring tools
  • 2.2 Local monitoring tools
  • 2.3 Monitoring is easy
  • 2.4 Monitoring the OS
  • 2.5 Integration with other tools
  • 2.6 Sprocket
  • 2.7 Using Apache to monitor your performance
  • 2.8 Dump SQL at bottom of every page, but just for you
  • 2.9 Keeping a performance database and dashboard
Section 3: Load testing tools and techniques
  • 3.0 Why Do Load Testing?
  • 3.1 Load testing is just excessive monitoring
  • 3.2 Commercial load testing tools
  • 3.3 Free load testing tools
  • 3.4 Roll Your Own
  • 3.5 Production vs Test systems
  • 3.6 Modeling production loads
  • 3.7 Load test types
  • 3.8 Load test result interpretation
  • 3.9 Clocks
Section 4: The web stack
  • 4.0 What's going on
  • 4.1 Protocols: TCP/IP, HTTP, HTML, SQL
  • 4.2 Web Clients
  • 4.3 How mobile apps are different
  • 4.4 Network
  • 4.5 Server HW
  • 4.6 Server OS
  • 4.7 httpd
  • 4.8 Dynamic vs static content
  • 4.9 Databases
Section 5: Performance problem troubleshooting
  • 5.0 Reproduce The Problem In Production
  • 5.1 Reproduce The Problem In Test System
  • 5.2 Look Up The Latest Code And Config Changes
  • 5.3 Check Who Was On The System
  • 5.4 Take A Wild Guess
  • 5.5 Add Timing Statements
  • 5.6 Collect and Watch System Parameters
  • 5.7 Guess Again, Change ONE Thing And Retest
  • 5.8 Start Removing Things And Retest
  • 5.9 Make Fast Trivial Case And Add Things In
Section 6: Real performance problems and solutions
  • 6.0 Unindexed table
  • 6.1 Debug Logs In Production
  • 6.2 Unbuffered Java writes
  • 6.3 Database connection pool growth and leaks.
  • 6.4 JDBC driver blocking
  • 6.5 Memory Leak
  • 6.6 Formatting
  • 6.7 Delayed Processing
  • 6.8 Not using all CPUs
  • 6.9 Kinked cable
Questions? Please write p@patrick.net