Outline for Capacity Planning
This is the outline for Capacity Planning. Deviations from this
outline will be announced in class and will also be posted on the
notices page. The reading assignments are from
Lilja (DL) and MacDougall (MM). Reading assignments should be completed
before the stated week (except for week #1). You do not need bring
your textbooks to class, but please do bring the assigned source code
readings to class.
Week #1 (08/27 - 09/02) - Introduction
- Topics:
What is "performance" and why do we care about it? Examples of performance
problems taken from the real world. Measures of performance. Performance at
a micro and macro level. The capacity planning process. Overview of the
course.
- Reading: 1) All course material in folder handed-out in class and 2)
preface and Chapter 1 (DL)
- Events: None
Week #2 (09/03 - 09/09) - What causes "performance"
- Topics: Computer system performance - memory hierarchies, context
swapping, and other performance determinants. Network performance -
bottlenecks, buffering, and other performance determinants. Building a
balanced system. Parallelzing applications.
- Reading: None
- Events: HW #1 due 09/06 in class
Week #3 (09/10 - 09/16) - Math review
- Topics: Concepts of random variables and probability distributions.
Basic statistics - concepts of populations and samples. Computing mean and
variance. Generating histograms. Concept of a time series (trends, cycles,
and independence).
- Reading: Chapters 2 and 3 (DL) and
summary1.c and hist.c.
- Events: Graduate student project proposals are due in class.
Week #4 (09/17 - 09/23) - Performance measurement
- Topics: How to measure (active versus passive)? Instrumentation.
Timing and counting (rate) measurements. Is it significant? Using
confidence intervals to determine if a measurement is significant.
- Reading: Chapters 4, 5.1, and 6 (DL), Chapter 4.1 and 4.2 (MM),
timeit.c, and
ttest.c.
- Events: HW #2 due 09/20 in class
Week #5 (09/24 - 09/30) - Performance measurement tools
- Topics: Perfmon in WindowsNT. SNMP for collecting performance
statistics. MRTG and other "cool tools" to use for performance monitoring
and measurement. Review for exam #1,
- Reading: None
- Events: None
Week #6 (10/01 - 10/07) - Fundamental principles of queueing theory
- Topics: Queueing as the determinant of performance. Kendall's notation.
Fundamentals of queueing including Little's Law. Concept of a performance
knee. M/M/1 formulas. Operational analysis. Bottleneck analysis.
- Reading: Chapter 11 (lightly) (DL)
- Events: Exam #1 on 10/04
Week #7 (10/08 - 10/14) - Workloads
- Topics: Characterizing workloads (collecting and crunching). Concept of
"burstiness". Generating synthetic workloads (theoretical and empirical
distributions). Trace-driven workloads. Classic distributions (Poisson and
exponential) and newer heavy-tailed distributions (Pareto). User behavior
models for generating workloads. Forecasting future workloads.
- Reading: Appendix B (lightly) (DL), Chapters 1.1 and 1.2 (MM), and
genexp.c,
genemp.c,
lr.c, and
smooth1.c.
- Events: HW #3 due 10/11 in class
Week #8 (10/15 - 10/21) - Benchmarks
- Topics: A benchmark as a "canned" workload, experiment, and measurement.
What constitutes a "good" benchmark? An overview of existing processor,
database, server, and network benchmarks.
- Reading: Chapter 7 (DL)
- Events: None
Week #9 (10/22 - 10/28) - Web server performance - part 1 of 2
- Topics: Web server implementation (HTTP and TCP protocols). Overview
of sockets programming and client/server model. Doing and measuring a
a "GET" on a Web sever.
- Reading: httpget1.c and
weblite.c.
- Events: HW #4 due 10/25
Week #10 (10/29 - 11/04) - Web server performance - part 2 of 2
- Topics: Designing a web server for high performance. Performance
tuning and optimization. High-performance web cluster server technologies.
Review for exam #2.
- Reading: None
- Events: None
Week #11 (11/05 - 11/11) - Scaling
- Topics: Scaling-up computer systems. Scaling laws. Amdahl's Law.
Review for exam #2.
- Reading: None
- Events: Exam #2 on 11/06
Week #12 (11/12 - 11/18) - Building models
- Topics: What is a model and how do we use it? An overview of types of
models and how they are used to predict performance.
- Reading: Chapter 10
- Events: None
Week #13 (11/19 - 11/25) - Analytical models
- Topics: Introduction to Markov models for systems of state. Closed form
form solutions to Markov models using balance equations and numerical solutions
using matrix methods. Deriving the M/M/1 formulas. Classic Erlang blocking
formulas.
- Reading: Chapter 11 (yes, read it again) and
iter.c.
- Events: HW #5 due 11/20 in class
Week #14 (11/26 - 12/02) - Simulation models - part 1 of 2
- Topics: What is discrete-event simulation? The basic flow chart.
Generating random numbers. An introduction to SMPL.
- Reading: Chapters 1 and 2 (MM) and
mm1_smpl.c.
- Events: None
Week #15 (12/03 - 12/09) - Simulation models - part 2 of 2
- Topics: More SMPL. Building a model for a single server queue. Building
a model for a network of queues. Building a simple model of a server.
Calibrating a model. Review for final exam.
- Reading: Chapter 3 (MM)
- Events: HW #6 and graduate student project final submissions due 12/04
in class.
Final Exam - The date for the comprehensive final exam is TBD.
Last updated by
Ken Christensen on AUGUST 23, 2001