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.

Summaries

I first summarized various performance methodologies for my USENIX LISA 2012 talk: Performance Analysis Methodology (PDF, slideshare, youtube, USENIX), then later documented them in my Systems Performance book. 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.

Anti-Methodologies

Blame-Someone-Else Anti-Method

Streetlight Anti-Method

Drunk Man Anti-Method

Random Change Anti-Method

Passive Benchmarking Anti-Method

Methodologies

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

Stack Profile Method

Off-CPU Analysis

TSA Method

Active Benchmarking Method

Method R

Performance Evaluation Steps

Capacity Planning Process

Intel Hierarchical Top-Down Performance Characterization Methodology

References


Last Updated: 25-Jun-2015