The first step in any performance
optimization strategy is to accurately and consistently measure
performance. The insight that you'll gain from monitoring factors such
as network and system utilization, will be extremely useful when you go
to measure the effects of any changes.
The overall process of performance monitoring usually involves the following steps:
Establish a baseline of current performance.
Identify the bottleneck(s).
Plan for and implement changes.
Measure the effects of the changes.
Repeat the process, based on business needs.
Note that the performance optimization process is
never really finished because you can always try to gain more
performance from your system by modifying settings and applying other
well-known tweaks. Before you get discouraged, realize that you'll
reach some level of performance that you and your network and system
users consider acceptable enough; at this point, you will find that
it's not worth the additional effort it'll take to optimize performance
further. Also note that as your network and system load increases (more
users or users doing more), as will the need to reiterate this process.
By continuing to monitor, measure, and optimize, you will keep ahead of
the pack and keep your end users happy.
Now that you have an idea of the overall process,
let's focus on how you should make changes. Some important ideas to
keep in mind when monitoring performance include the following:
Plan changes carefully.
Here's a rule of thumb we always try to follow:
An hour of planning can save you a week of work. When you are working
in an easy-to-use GUI-based operating system like the Windows Server
2008 platform, it's tempting to randomly remove a check mark here or
there and then retest the performance. You should resist the urge to do
this because some changes can cause large decreases in performance or
can impact functionality. Before you make haphazard changes (especially
on production servers), take the time to learn about, plan for, and
test your changes. Plan for outages and testing accordingly.
Utilize a test environment.
Test in a test lab that simulates a production
environment. Do not make changes on production environments without
first giving warning. Ideally, change production environments in off
hours when fewer network and system users will be affected. Making
haphazard changes in a production environment can cause serious
problems. These problems will likely outweigh any benefits you could
receive from making performance tweaks.
Make only one change at a time.
The golden rule of scientific experiments is
that you should always keep track of as many variables as possible.
When the topic is server optimization, this roughly translates into
making only one change at a time.
One of the problems with making multiple system
changes is that, although you may have improved performance overall,
it's hard to determine exactly which
change created the positive effects. It's also possible, for example,
that changing one parameter increased performance greatly while
changing another decreased it slightly. Although the overall result was
an increase in performance, the second, performance-reducing option
should be identified so the same mistake is not made again. To reduce
the chance of obtaining misleading results, always try to make only one
change at a time.
But the main reason to make one change at a time is
that if you do make a mistake or create an unexpected issue, you can
easily back out of the change. If you make two or three changes at the
same time and are not sure which one created the problem, you will have
to undo all the changes and then make one alteration at a time to find
the problem. If you make only one change at a time and follow that
methodology every time, you won't find yourself in this situation.
It's important to remember that many changes (for
example, Registry changes) take place immediately; they do not need to
be explicitly applied. Once the change is made, it's live. Be careful
to plan your changes wisely.
|
|
Ensure consistency in measurements.
When you are monitoring performance, consistency
is extremely important. You should strive toward having repeatable and
accurate measurements. Controlling variables, such as system load at
various times during the day, can help.
Assume, for instance, that you want to measure the
number of transactions that you can simulate on the accounting database
server within an hour. The results would be widely different if you ran
the test during the month-end accounting close than if you ran the test
on a Sunday morning. By running the same tests when the server is under
a relatively static amount of load, you will be able to get more
accurate measurements.
Maintain a performance history.
Many changes may be made over time, it is
important to keep track of the changes you have made and the results
you have experienced. Documenting this knowledge will help solve
similar problems if they arise. We understand that many IT
professionals do not like to document, but documentation can make life
much easier in the long run.
As you can see, you need to keep a lot of
factors in mind when optimizing performance. Although this might seem
like a lot to digest and remember, do not fear; as systems
administrators, you will learn some of the rules you need to know to
keep your system running optimally. Fortunately, the tools included
with Windows Server 2008 can help you organize the process and take
measurements. Now that you have a good overview of the process, let's
move on to look at the tools you can use to set it in motion.