4285ch03.fm Draft Document for Review May 4, 2007 11:35 am
78 Linux Performance and Tuning Guidelines
3.1 Identifying bottlenecks
The following steps are used as our quick tuning strategy:
1. Know your system.
2. Back up the system.
3. Monitor and analyze the system’s performance.
4. Narrow down the bottleneck and find its cause.
5. Fix the bottleneck cause by trying only one single change at a time.
6. Go back to step 3 until you are satisfied with the performance of the system.

3.1.1 Gathering information

Mostly likely, the only first-hand information you will have access to will be statements such as
“There is a problem with the server.” It is crucial to use probing questions to clarify and
document the problem. Here is a list of questions you should ask to help you get a better
picture of the system.
򐂰Can you give me a complete description of the server in question?
– Model
–Age
– Configuration
Peripheral equipment
Operating system version and update level
򐂰Can you tell me exactly what the problem is?
What are the symptoms?
Describe any error messages.
Some people will have problems answering this question, but any extra information the
customer can give you might enable you to find the problem. For example, the customer
might say “It is really slow when I copy large files to the server.” This might indicate a
network problem or a disk subsystem problem.
򐂰Who is experiencing the problem?
Is one person, one particular group of people, or the entire organization experiencing the
problem? This helps determine whether the problem exists in one particular part of the
network, whether it is application-dependent, and so on. If only one user experiences the
problem, then the problem might be with the user’s PC (or their imagination).
The perception clients have of the server is usually a key factor. From this point of view,
performance problems may not be directly related to the server: the network path between
the server and the clients can easily be the cause of the problem. This path includes
network devices as well as services provided by other servers, such as domain
controllers.
򐂰Can the problem be reproduced?
All reproducible problems can be solved. If you have sufficient knowledge of the system,
you should be able to narrow the problem to its root and decide which actions should be
taken.
Tip: You should document each step, especially the changes you make and their effect on
performance.