To properly judge your server’s performance, you need to know when your server is at its busiest. Performing random Task Manager checks can’t confirm whether your server is adequately handling your users’ needs. It’s very possible that your random checks occur when few people are using the system. It’s also possible that you could be literally out to lunch whenever your server is being used the most.

Fortunately, if you’re running Windows 2000, you can use its built-in Performance Monitor to help determine how your server is functioning during peak usage.

In this Daily Feature, I’ll show you how Performance Monitor can track your server’s performance under many different loads, which will help make sure your server is adequately servicing your users—no matter how many of them there are at any given time.

Firing up Performance Monitor
Unfortunately, Performance Monitor isn’t completely accurate because the act of measuring a component’s performance itself negatively affects the server’s performance, much like the computer version of the Heisenberg Uncertainty Principle. That said, Performance Monitor is accurate enough that you can make solid judgments based on its results. For more information about Windows 2000’s Performance Monitor, see the Daily Drill Down “Working with Microsoft Windows 2000’s Performance Monitor.”

Open Performance Monitor by selecting the Programs | Administrative Tools | Performance commands from the Start menu. When you do, the Performance console will open. Performance Monitor works by measuring various counters. To look at a counter, click the Plus icon above the graph. Doing so displays the Add Counters dialog box. This dialog box is divided into several sections, each of which allows you to specify what you want to track and how you want to track it.

You must begin the process by selecting which computer you want to monitor in the Select Counters From Computer dialog box. Next, select Performance Object, which is a general category of counters such as processor, memory, and paging file. After that, you must select the appropriate counter from the Select Counters From List box, each of which will vary depending on the Performance Object you want to track.

Depending on the counter you select, you may occasionally have to select Instance. Instance is used when more than one object exists for the counter. For example, if you were measuring hard disk performance but your system had more than one hard disk, you’d have to use the Instance section to select which hard disk you want to measure.

When you’ve selected the appropriate counter, click the Add button. You’re then free to select more counters. When you’ve finished, click Close to begin the measuring process.

Unless you need to compare two or more counters against each other, I recommend measuring one counter at a time. Working with multiple counters simultaneously can get confusing. Also, working with multiple counters can place a heavier tracking load on your system, which could obfuscate the results.

Set a strategy to find the peak
Performance Monitor allows you to track hardware- and software-related counters. Because you want to discover how your server’s hardware is handling the load placed on it, you’ll want to focus on the hardware-related counters. Remember, your hardware will perform differently under different situations. For example, if relatively few people are connected to your server, the server will probably perform fairly well. However, if your server is supporting a lot of users, then one of the hardware components may not be able to keep up with the demand.

Remember, you’re not looking for one critical value. You’re only looking for the point at which a given counter is at its highest. For example, in your network, typical processor usage may hover around 5 percent, but when the server gets busy, it may have a sustained level of 25 percent. If you only look for a critical value of 90 percent, you’ll miss the actual peak of your processor usage. Therefore, look at the values over time and compare them with previous values to find at which point the server is busiest. Some of the hardware Performance Objects and counters you should watch include:

  • Processor | % Processor Time: This counter tracks the percentage of time that the processor is actually doing something, specifically executing a nonidle thread.
  • PhysicalDisk | % Disk Time: This counter tracks when the server’s hard drive is busy processing read or write requests.
  • PhysicalDisk | % Disk Read Time: This counter is similar to the % Disk Time counter, except that it only tracks the amount of time spent on disk reads, which can be important if you’re measuring something like a Web server, where the number of disk writes are few.
  • Server | Files Open: As the name indicates, this counter tells you the number of open files on the server.
  • Server | Logon/sec: This counter tracks the number of times users log on and off your server.
  • Server | Server Sessions: This counter will tell you the current number of people logged on to your server.

Even though hardware counters offer the most useful information, software counters can help you locate the peaks as well. Some of the software counters you can use, especially on a server using IIS, are:

  • Web Services | Anonymous Users / Sec: This counter measures the rate at which users are making anonymous connections using the IIS.
  • Web Services | Non Anonymous Users / Sec: The reverse of the previous counter, this one measures the rate of logged-on connections.
  • Web Services | Current Anonymous Users: This counter measures the number of users who currently have an anonymous connection to IIS.
  • Web Services | Current Non Anonymous Users: This counter measures the number of users who have currently logged on to IIS.
  • Web Services | Maximum Anonymous Users: This counter keeps a running total since startup and measures the total number of anonymous users who have ever connected.
  • Web Services | Maximum Non Anonymous Users: This is the same as the previous counter, except this one measures logged-on users.
  • FTP Services | Current Anonymous Users: This is the same as the corresponding Web Services counter, except that it measures FTP services instead.
  • FTP Services | Current Non Anonymous Users: This is the same as the corresponding Web Services counter, except that it measures FTP services instead.
  • FTP Services | Maximum Anonymous Users: This is the same as the corresponding Web Services counter, except that it measures FTP services instead.
  • FTP Services | Maximum Non Anonymous users: This is the same as the corresponding Web Services counter, except that it measures FTP services instead.

If you just take a quick, one-time measurement, you’ll get a number that’s accurate for that particular period of time. However, this number would be drastically different if you took another measurement during peak high-volume or peak low-volume periods. The easiest way to determine what type of user load your server is under and how it reacts is to take measurements at regularly scheduled intervals to determine when the server is under the most strain.

When you figure out the peak usage time, you should gear the rest of your performance monitoring to take place during that time frame. That way, you’ll know how your server is holding up against its toughest day-to-day conditions.

There are two different methods that you can use to determine periods of peak activity. I prefer to use the regularly scheduled interval method that I explained earlier. You can also use Performance Monitor to build a log file and then collect data over a longer period.

The reason that I prefer to use the interval method is that it tends to be more accurate. When you build a log file for an extended time frame, often you’ll see average values for long periods of time, as opposed to real values for a particular moment. In the end, the averages can overwhelm any short-term peaks and valleys in the results, which can make high-usage times more difficult to detect.

Therefore, although the regularly scheduled interval method may require more hands-on time, it does provide you with more detailed and useful results. My strategy is to load the necessary counters and look at the values they generate every half hour to an hour.

When nobody is using your server, it probably runs great. But the real question is, how good is it when users are hitting it hard? Performance Monitor can help you find periods of peak usage and help you judge how your server is performing under these loads. If your server is struggling with long periods of high usage, then it’s time to investigate getting a new server.