The Five Elements of Performance
The Five Elements of Performance
The performance of any computer system depends on just five simple concepts: workload, response time, throughput, resource utilization, and resource service time.
-- Chapter 3 pp42-43
High-Performance Client/Server
Previous posts in this series discussed how effective application performance is always subject to both Moore's Law and Wirth's Law, and how to balance hardware capacity and software demand with a systematic approach to performance tuning. This post reviews the fundamental elements of computer system performance.
When our systems don’t perform the way we would like them to, we tend to look for the one tuning change that will fix "the problem". Responding to this need perhaps, many articles about performance take the cookbook approach. "Ninety-five ways to soup up your Widgets", the trade-magazine covers proclaim boldly.
But have you ever considered that following that kind of advice is like walking around blindfolded? Because before you ever try to follow a checklist of tuning techniques, you should first grasp the foundations of application performance.
Remembering a few simple general principles can be every bit as effective as following long lists of suggestions for optimizing different software products. Applying the basic principles of performance can save time and effort in two ways: it can help us avoid costly mistakes when we build our systems, and help us avoid wasting time later with unproductive tuning experiments.
Five Key Performance Metrics
At the most fundamental level, almost everything we ever need to know about computer system performance can be described using five metrics:
- Workload
- Response time
- Throughput
- Resource utilization
- Resource service time
When a computer system comprising a set of computing resources -- processors, storage devices, network links, etc. -- processes a given workload, the two key measures of observed performance are application response times and transaction throughput. For the performance analyst, resource utilizations and resource service times describe how the computer system is behaving internally, providing the technical explanation for the externally observed performance characteristics.
At the simplest level, response time is a measure of how long it takes to finish some task. But you should always take care to understand exactly what is included in any quoted response time figure, and what is not included. Throughput is a measure of the amount of work a component or a system is performing as a whole, or a measure of the rate at which a particular workload (or subset) is being processed. Once again, of course, this definition hides quite a few complexities that arise once we set out to actually measure throughput in the real world.
There are many ways of measuring both response time and throughput. Any of these may be useful depending on how you plan to use the results, and I plan to discuss this aspect in more detail in a later post. But whatever your performance goals, knowing the relationships among these five key elements will always be the key to effective performance tuning. All five aspects are interconnected and interdependent, and if you don't measure and understand those relationships, your tuning attempts will be like a game of blind man's buff (and not nearly as much fun).
This post is the third in a new series on fundamental truths about performance. Tags: performance wisdom, performance, tuning, workload, response time, throughput, resource utilization, service time


Reader Comments