PGCon2009 - Final Release

PGCon 2009
The PostgreSQL Conference

Jonah H. Harris
Day Talks - second day - 2009-05-22
Room DMS 1150
Start time 11:30
Duration 01:00
ID 122
Event type Lecture
Track Performance
Language used for presentation English

Predicting Postgres Performance

Practical Queueing Theory for Postgres DBAs

So, you've solved all of your current performance problems, but are you ready for tomorrow? Suppose your website traffic increases three-fold, or your company has a huge end-of-year processing job to run, at what point will your system become unusable? In this case, is it a CPU problem, I/O problem, or both? Should you add additional CPUs or can you just get faster CPUs? How fast does your I/O subsystem need to be in order to handle your workload? How much would query tuning help? This session is designed to help you answer those questions.

While often misunderstood and underutilized, queueing theory has long-since provided us with the ability to model behaviors and performance characteristics of complex computing systems. Unfortunately, many people shy away from queueing theory because it is often expressed using complex mathematical equations. However, in this session, we'll cover the basics of queueing theory and demonstrate how to apply its concepts and equations to practical, real-world situations.

Specifically, we'll cover:

  • Queueing Theory Overview
  • Response Times
  • Baselines
  • Distribution Patterns
  • Standard Averages vs. Weighted Averages
  • Workload Characterization
  • Statistics
  • Sampling
  • Operating System Statistic Collection
  • Postgres Statistic Collection
  • Queueing System Notation
  • Queueing System Equations
  • Erlang C/Little's Law
  • Modeling CPU subsystems
  • Modeling I/O subsystems
  • Determining when a server will no longer be able to handle a given workload.
  • Determining whether a system could handle an increased workload.
  • Determining whether more CPUs or faster CPUs are needed.
  • Determining I/O subsystem needs.
  • Gotcha's (Physical vs. Effective CPUs, ...)