The first step in any performance optimization strategy is to measure performance accurately and consistently. The insight that you’ll gain from monitoring factors such as network and system utilization will be extremely useful when you measure the effects of any changes. The overall performance monitoring process usually involves the following steps:
- Establish a baseline of current performance.
- Identify the bottlenecks.
- 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 and that it’s not worth the additional effort it will take to optimize performance any further. Also note that as your network
and system load increases (more users or users doing more), so too 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 changes should be made. It’s important to keep in mind the following ideas when monitoring performance:
Plan changes carefully. Here’s a rule of thumb that you should always try to follow:
An hour of planning can save a week of work. When you are working in an easy- to- use GUI- based operating system like Windows Server 2022, it’s tempting to 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.
Use 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 that you may 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 overall performance, 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 only slightly. Although the overall result was an increase in performance, you should identify the second, performance- reducing option so that 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.
The main reason to make one change at a time, however, 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 of 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 (such as Registry changes) take place immediately; they do not need to be applied explicitly. 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 to have 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 load, you will be able to get more accurate measurements.
Maintain a performance history. In the introduction to this chapter, I mentioned that the performance optimization cycle is a continuous improvement process. Because many changes may be made over time, it is important to keep track of the changes that have been made and the results you have experienced. Documenting this knowledge will help solve similar problems if they arise. I 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 a system administrator, you will learn some of the rules you need to know to keep your system running optimally. Fortunately, the tools included with Windows Server 2022 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 that can be used to set it in motion.
Using Windows Server 2022 Performance Tools
Because performance monitoring and optimization are vital functions in network environments of any size, Windows Server 2022 includes several performance- related tools.
Introducing Performance Monitor
The first and most useful tool is the Windows Server 2022 Performance Monitor, which was designed to allow users and system administrators to monitor performance statistics for various operating system parameters. Specifically, you can collect, store, and analyze information about CPU, memory, disk, and network resources using this tool, and these are only a handful of the things that you can monitor. By collecting and analyzing performance values, you can identify many potential problems.
You can use the Performance Monitor in the following ways:
Performance Monitor ActiveX Control The Windows Server 2022 Performance Monitor is an ActiveX control that you can place within other applications. Examples of applications that can host the Performance Monitor control include web browsers and client programs such as Microsoft Word or Microsoft Excel. This functionality can make it easy for applications developers and system administrators to incorporate the Performance Monitor into their own tools and applications.
Performance Monitor MMC For more common performance monitoring functions, you’ll want to use the built- in Microsoft Management Console (MMC) version of the Performance Monitor.
System Stability Index The System Stability Index is a numerical value from 1 (least stable) to 10 (most stable) that represents the stability of your network. Performance Monitor calculates and creates the System Stability Index. You can view a graph of this index value. The graph can help you identify when your network started encountering problems. The System Stability Index also offers side- by- side comparisons. You can view when system changes occurred (installing applications, devices, or drivers) and when system problems started to occur. This way, you can determine whether any system changes caused the problems that you are encountering.
Data Collector Sets Windows Server 2022 Performance Monitor includes the Data Collector Set. This tool works with performance logs, telling Performance Monitor where the logs are stored and when the log needs to run. The Data Collector Sets also define the credentials used to run the set.
To access the Performance Monitor MMC, you open Administrative Tools and then choose Performance Monitor. This launches the Performance MMC and loads and initializes Performance Monitor with a handful of default counters.
You can choose from many different methods of monitoring performance when you are using Performance Monitor. A couple of examples are listed here:
■ You can look at a snapshot of current activity for a few of the most important counters. This allows you to find areas of potential bottlenecks and monitor the load on your servers at a certain point in time.
■ You can save information to a log file for historical reporting and later analysis. This type of information is useful, for example, if you want to compare the load on your servers from three months ago to the current load.
You’ll get to take a closer look at this method and many others as you examine Performance Monitor in more detail.
In the following sections, you’ll learn about the basics of working with the Windows Server 2022 Performance Monitor and other performance tools. Then you’ll apply these tools and techniques when you monitor the performance of your network.
Your Performance Monitor grows as your system grows, and whenever you add services to Windows Server 2022 (such as installing Exchange Server), you also add to what you can monitor. You should make sure that, as you install services, you take a look at what it is you can monitor.