Suggested Performance Counters to Watch

Applies To: Windows Server 2003, Windows Server 2003 with SP1

Table 6.1 and Table 6.2 list some of the counters that are typically used for monitoring application servers. The tables include the preferred value of each counter and suggest values that might indicate performance problems.

Most of the values provided in this section are relative: Optimal values vary with the Web application, system, and network architecture. For example, data collected by the PhysicalDisk\Avg Disk Bytes/Transfer counter is different for different kinds of controllers and drives. Some counters may not be relevant to your applications. For example, data collected by the Active Server Pages\Transactions/sec counter is not relevant to a Web site with only static content.

In Table 6.1 and Table 6.2, ComputerName is omitted to conserve space. For example, the first counter in Table 6.1 is actually ComputerName\Memory\Pages/sec.

Table 6.1 Preferred Values for Frequently Used Performance Counters

Object\Counter Preferred or Ideal Value


0–20. (Unhealthy if greater than 80; probably indicates not enough RAM.)

Memory\Available Bytes

10% of physical memory.

Memory\Committed Bytes

No more than 75 percent of physical memory.

Memory\Pool Nonpaged Bytes

A steady value. (A slow rise might indicate a memory leak.)

Processor\% Processor Time

Less than 75 percent.


Depends on the processor, and on network hardware and drivers. Up to 3,500 for a 90–megahertz (MHz) Pentium; more than 19,000 for a 500–MHz Pentium or more than 58,000 for a 1.5–gigahertz (GHz) Pentium. Lower is better. If the value is too high, try moving some hardware devices to a different server.

Processor\System Processor Queue Length

4 or less.

LogicalDisk\% Disk Time

PhysicalDisk\% Disk Time

As low as possible.

LogicalDisk\Avg. Disk Queue Length

PhysicalDisk\Avg. Disk Queue Length

Less than 4.

LogicalDisk\Avg. Disk Bytes/Transfer

PhysicalDisk\Avg. Disk Bytes/Transfer

As high as possible.

System\Context Switches/sec

Compare this value with the value of Web Service\Total Method Requests/sec. Context switches per request (Context Switches/sec divided by Total Method Requests/sec) should be low.

System\System Calls/sec

As low as possible.

Web Service\Bytes Total/sec

As high as possible.

Web Service\Total Method Requests/sec

As high as possible.

Web Service\Current Connections

As high as possible.

Web Service Cache\File Cache Hits %

As high as possible for static content.

Note: This value might be low if the Kernel URI cache hits percentage is high.

Web Service Cache\Kernel:URI Cache Flushes

As low as possible, relative to the number of requests.

Note: This number increases every time a file is flushed from the HTTP.sys response cache (HTTP.sys is the kernel-mode device driver in IIS 6.0), which means that the content has not been accessed in the past 2–4 minutes. The only way to decrease this number is to flush the cache less often, although frequent flushing can cause HTTP.sys to use more memory for content that is not being accessed.

Web Service Cache\Kernel:URI Cache Misses

As low as possible. (Each request for dynamic content increases the value of the counter by one.)

Web Service Cache\Kernel:URI Cache Hits %

As high as possible. (Applies to static unauthenticated content and dynamic content that is marked as cacheable.)

Active Server Pages\Request Wait Time

As low as possible.

Active Server Pages\Requests Queued

As low as possible.

Active Server Pages\Transactions/sec

As high as possible.

Note: ASP transactions degrade overall server performance because each transaction requires interaction with a database. If you are concerned about server performance, use ASP transactions sparingly.

The counters listed in Table 6.2 are useful for monitoring your FTP servers.

Table 6.2 Preferred Values for Useful FTP Performance Counters

Object\Counter Preferred or Ideal Value

FTP Service\Bytes Sent/sec

As high as possible.

FTP Service\Bytes Received/sec

As high as possible.

FTP Service\Bytes Total/sec

As high as possible.

In addition to the counters in Table 6.1 and Table 6.2, the following system counters are useful for monitoring your servers use of system resources:

  • System\Threads

  • System\Processes

  • System\Context Switches/sec

For a discussion of system-related counters and how their data relates to the performance of your Web server, see Identifying Processor Bottlenecks.