Diagnosing Server Performance Problems With Server Performance Advisor
I will never forget the first time that the topic of server performance came up in MCSE school. The instructor taught the class all about a whole slew of Performance Monitor counters that could be used to figure out exactly how well the server was performing and which of the server’s components was acting as a bottleneck. The instructor went on to explain that you should check all of these counters on a regular basis. By monitoring these counters over time, you can spot system resource consumption trends over the long term. Monitoring such trends allow you to predict approximately when the server’s current hardware resources may not be sufficient to keep pace with the increasing user demand.
The reason why all of this sticks out in my mind is because I remember thinking that it’s great to be able to monitor trends over the long term and to be able to spot performance issues before they become a problem, but who on earth has time for all of that? It takes a significant amount of time to analyze a server’s Performance Monitor counters each week, but imagine if you had 20 servers to monitor. You would almost need a full time staff member just to monitor the server’s performance.
Since few organizations have the budget or the resources to monitor servers in the way that they really should be monitored, Microsoft has come out with various tools that make it a lot easier to monitor and maintain a server. The best tool out there for monitoring servers and taking corrective action if necessary is probably Microsoft Operations Manager (MOM). The problem is that MOM tends to be expensive and complex. Microsoft has however released a less comprehensive tool that you can download for free. The tool is named the Server Performance Advisor.
The Server Performance Advisor is a server performance diagnostic tool for Windows Server 2003 (the tool won’t work with any other version of Windows). The utility monitors your server’s performance and workload and then reports which parts of the system are being the most highly stressed. The utility is especially good at finding performance problems related to IIS and to the Active Directory.
Acquiring the Server Performance Advisor
As I mentioned earlier, you can download Server Performance Advisor for free from the Microsoft Web site. The download URL is: http://www.microsoft.com/downloads/details.aspx?FamilyID=61a41d78-e4aa-47b9-901b-cf85da075a73&displaylang=en The download consists of a 4 MB Windows Installer file named SPA.MSI.
To install the Server Performance Advisor, create an empty folder on your server and download the SPA.MSI file into it. When the download completes, double click on the SPA.MSI file and Windows will ask you whether you’d like to open the file, or save it to your computer. Click the Open button and the Windows Installer will launch the Server Performance Advisor Setup Wizard. Click Next to bypass the wizard’s Welcome screen and you will see a screen asking you to accept the end user license agreement. Accept the license agreement, click Next and you will be prompted for the installation path. Verify that the installation path is OK and choose whether or not you want the Server Performance Advisor to be available to other administrators who log directly on to the server, and click Next. You will now be prompted to enter a location for the data storage folder. The data storage folder is used as a storage point for the performance data that the utility collects. You can use any folder that you want, but the volume containing the folder must have at least 150 MB of free space.
Click Next and you will be prompted for the path to the report folder. This folder will contain analytical reports based on the performance data that has been collected. The reports usually don’t take up very much space, so there are no special considerations for the Reports folder.
Click Next twice and the wizard will begin installing all of the necessary files. When the file copy process complete, click the Finish button to close the Wizard.
Running the Server Performance Advisor
You can launch the Server Performance Advisor by selecting the Server Performance Advisor command from the Start | All Programs menu. When the application launches, click the down arrow next to the icon that looks like a file cabinet. When you do, you will see a list of available data collector groups.
A data collector group is basically a collection of performance monitor counters related to a particular aspect of system performance. By default, you will have a choice between System Overview, IIS, and File. For the purposes of this article, go ahead and select the System Overview option. System Overview is a generic set of counters that can be used to gauge the server’s overall performance. This is a good starting point since this is the first time that the server has been analyzed. It’s better to start with a general diagnosis than to jump right in and look at something as specific as IIS.
At this point, you might notice that the icon bar contains an icon that looks like the play sign used on audio and video equipment (the green triangle). Go ahead and click this icon. For the next 100 seconds, the Server Performance Advisor will be recording the various counters that are associated with the System overview group. When the analysis completes, the Server Performance Advisor will automatically begin to generate a report. Now would be a good time to go and take a break, because the report generation process can take a few minutes to complete. Keep in mind though that a 100 second sampling of data is only the minimum collection time. The Server Performance Advisor will keep collecting data well beyond the 100 seconds unless you tell it to stop. You can halt the process by clicking the stop icon (the red square).
To see the report, click on the icon that looks like a piece of paper. When you do, you will see a report that looks something like the one shown in Figure A. Notice in the figure that the System Overview – Current screen is hierarchical. It can store multiple reports, and those reports are sorted by date.
Figure 1: The Server Performance Advisor organizes reports by date
When you double click on a report, it gets displayed in a manner similar to what you see in Figure B. Notice that the report provides you with a nice header telling you which computer the data was collected from and when. There is also a summary section that outlines CPU usage, the process that was consuming the most CPU time during the test, and basic information about disk performance.
Figure 2: This is a partial Server Performance Advisor report.
Keep in mind though that you actually get a lot more information than what’s shown in Figure B. As you will notice in the figure’s Contents section, there are many links to more detailed information that appears further into the report.
One other thing that you need to know about reading the reports is that the Server Performance Advisor makes use of circles to reflect the system’s status. As you can see in Figure C, most of the circles are empty, but one circle has a mark in it. If a circle is empty, it means that everything related to that particular aspect of your system’s performance is fine. A mark in the circle means that you probably want to keep an eye on that particular aspect of your system. A circle that’s completely colored in means that you have got a problem. The reason for the circles is that it allows you to view your system’s health at a glance without having to read the entire report.
Figure 3: The Server Performance Advisor uses circles to display your system’s overall health.
As you can see, the Server Performance Advisor collects a tremendous amount of data related to your computer. However, you shouldn’t treat the report as being the absolute gospel truth about how your server is performing. I’m not saying that the results are inaccurate. The results are accurate, but only for those 100 seconds over which data was sampled.
The time of day when the samples are taken can make a huge difference in the results. Running the data collection process while everyone is at lunch or while everyone is in a meeting will give you much different results than running a data collection when everyone is forking as hard as they possibly can to meet a deadline.
The fact is that some parts of the day are simply going to be busier than others. I therefore recommend finding out when the busiest part of the day usually is and running the Server Performance Advisor during those times. Collecting data at a consistent time allows you to establish an accurate picture of how your server’s performance changes over time.
The Server Performance Advisor allows you to collect and analyze server performance data much more easily than you can using the Performance Monitor. In this article, I have explained where you can download this tool from and how to use it.