This month, I'm providing an excerpt from Sun Performance
and Tuning -- Java and the Internet, 2nd Edition by Adrian
Cockcroft and Richard Pettit (Sun Microsystems Press, 1998). In
this excerpt, the authors describe, in general terms, performance
management techniques that apply to many environments.
Performance management is the measurement, analysis, optimization,
and procurement of computing resources to provide an agreed-upon
level of service to the organization and its end users. These computing
resources could be CPU, memory, disk, network, and application related.
It is a complete proactive process, far removed from the crisis-driven
tuning and upgrading that seem so common.
Performance management starts with an understanding of the business.
The reason why a computer system exists may seem obvious, but if
you state the role of the system clearly, you can identify performance
problems caused by extra work. Users often run extra applications
on a system that are not part of its business role. Educating the
users or threatening to restrict their freedom can keep a system
working within its limits.
One technique I used when I was a system administrator was to
pin up various accounting summaries by a printer. While waiting
for printouts, users would read who and what was hogging the CPU
time, disk space, and printer consumables. Peer pressure was enough
to keep things in check.
An important part of performance management is to know the level
of service required by the business and the current performance
in business terms. You gain this knowledge by collecting and processing
performance metrics from several sources, thus providing a baseline
when a problem occurs in the future. By analyzing the metrics, you
determine the probable cause and the severity of a problem. A corrective
action plan describes the required changes, and, finally, the change
can be implemented.
To determine if the corrective action has helped, you go back
to understanding the new performance and service level by collecting
and analyzing the metrics. You could also be more proactive before
a problem occurs by trying to predict the performance and service
level in anticipation of a change, for example, a change in business
requirements, user load, applications, or hardware.
The main stages of performance management can be broadly classified
1. Obtain business requirements.
2. Collect, monitor, and understand performance metrics.
3. Analyze, identify, and publicize performance problems.
4. Set objectives and implement changes.
5. Forecast or project the effect of changes.
After Step 4 is done, you go back to Step 2 to see if the implemented
plan has achieved the objective. Typically, in order to achieve
Step 2 and Step 3, you use a performance management tool of some
In real life, the steps to performance management are not as clearly
defined as those stated here. However, this classification provides
the basic foundation upon which most performance management is built.
You will find lots of specific performance tuning tips within
this issue of Sys Admin. Let me know if you have questions
Editor in Chief