Performance Analysis Methodology

A performance analysis methodology is a procedure that you can follow to analyze system or application performance. These generally provide a starting point and then guidance to root cause, or causes. Different methodologies are suited for solving different classes of issues, and you may try more than one before accomplishing your goal.

Analysis without a methodology can become a fishing expedition, where metrics are examined ad hoc, until the issue is found – if it is at all.

Methodologies documented in more detail on this site are:

The following briefly summarizes methodologies I've either created or encountered. You can print these all out as a cheetsheet/reminder.


I first summarized and named various performance methodologies (mostly developed by me) for my USENIX LISA 2012 talk: Performance Analysis Methodology (PDF, slideshare, youtube, USENIX), then later documented them in my Systems Performance book, and the ACMQ article Thinking Methodically about Performance, which was also published in Communications of the ACM, Feb 2013. More detailed references are at the end of this page.

The following is my most up to date summary list, with methodologies enumerated. These begin with anti-methods, which are included for comparison, and not to follow.


Blame-Someone-Else Anti-Method

Streetlight Anti-Method

Drunk Man Anti-Method

Random Change Anti-Method

Passive Benchmarking Anti-Method

Traffic Light Anti-Method


Ad Hoc Checklist Method

Problem Statement Method

RTFM Method

Scientific Method


Workload Characterization Method

Drill-Down Analysis Method

Process of Elimination

Time Division Method

5 Whys Performance Method

By-Layer Method

Tools Method

USE Method

CPU Profile Method

Off-CPU Analysis

Stack Profile Method

TSA Method

Active Benchmarking Method

Method R

Performance Evaluation Steps

Capacity Planning Process

Intel Hierarchical Top-Down Performance Characterization Methodology


Last Updated: 20-Sep-2016