This guide shows performance counters to find out bottlenecks of Windows Server and criteria.
CPU
Counter | Description |
\Processor(*)\% Processor Time | The percentage of elapsed time that the processor spends to execute a non-Idle thread. % Processor Time (_Total) is the average of all Processors. So it’s difficult to find out if the value of one of all is 100%. Therefore, you have to watch each of them. If Total is greater than 85%, specs of CPUs are not likely enough. If a value of individual processor is high, it is likely application’s fault. In that case, the application needs updates to allow processes to be distributed to some processors. |
\Processor(_Total)\Interrupt Time | The time the processor spends receiving and servicing hardware interrupts during sample intervals. If this value is greater than 15%, it is likely hardware’s fault. |
\System\Processor Queue Length | The number of threads that are ready but current unable to run on the processor due to another active thread. If this value is greater than 2 times the number of processor cores for a long term, specs of CPUs are not likely enough. |
Disk
Counter | Description |
\LogicalDisk(*)\% Free Space | The percentage of free space of logical disk drive. If this value of system drive is less than 15%, free space is not likely enough for operating system. |
\PhysicalDisk(*)\% Idle Time | The percentage of time that a disk was idle during the sampling interval. If this value is less than 20%, the disk may be overloaded. |
\PhysicalDisk(*)\Avg. Disk sec/Read | The average time, in seconds, of a data read operation from the disk. If this value is greater than 25 msec, the disk system is experiencing latency when reading from the disk. For mission-critical system, threshold is approximately 10msec. |
\PhysicalDisk(*)\Avg. Disk sec/Write | The average time, in seconds, of a data write operation to the disk. If this value is greater than 25 msec, the disk system is experiencing latency when writing from the disk. For mission-critical system, threshold is approximately 10msec. |
\PhysicalDisk(*)\Avg. Disk Queue Length | The average of the number of requests in disk queue during sampling interval. If this value is greater than the number of spindles of disks +2, disk is likely bottleneck. Spindle means the number of data disks of RAID RAID 5 with 4 HDDs : the number of spindles is 3 RAID 0 with 2 HDDs : the number of spindles is 2 |
\LogicalDisk(*)\Disk Transfers/sec | Throughput rate of read/write from/to a disk. (Complemental) |
\PhysicalDisk(*)\Disk Bytes/sec | The rate of read/write from/to a disk. (Bytes/sec) (Complemental) |
\PhysicalDisk(*)\Disk Read Bytes/sec | The rate of read from a disk. (Bytes/sec) (Complemental) |
\PhysicalDisk(*)\Disk Reads/sec | The rate of read from a disk. (the number of I/Os per sec) (Complemental) |
\PhysicalDisk(*)\Disk Write Bytes/sec | The rate of write to a disk. (Bytes/sec) (Complemental) |
\PhysicalDisk(*)\Disk Writes/sec | The rate of write to a disk. (the number of I/Os per sec) (Complemental) |
Memory
These counters are to find out a memory leaks not bottlenecks.
Counter | Description |
\Memory\% Committed Bytes In Use | The ratio of committed bytes to commit limit. It means the virtual memory usage ratio. If this value is greater than 80%, the memory capacity is not likely enough. |
\Memory\Available MBytes | The size of physical memory that can be used for running process. If it shows a continued decline, a memory leak is likely occurring. |
\Memory\Pool Nonpaged Bytes | The size of Non-Paged Pool Memory. If it shows a continued increase, memory area for kernel is likely compressed. |
\Memory\Pool Paged Bytes | The size of Paged Pool Memory. If it shows a continued increase, memory area for kernel is likely compressed. |
\Memory\Committed Bytes | The usage of memory. (Complemental) |
\Memory\Page Faults/sec | The number of page faults per 1 second. (Complemental) |
Network
Counter | Description |
\Network Interface(*)\Bytes Total/sec | The rate at which bytes are sent and received over each network adapter. If this value greater than 70% of NIC interface (approximately 85MB/sec if 1Gbbs NIC), network traffic is likely saturated. |
\Network Interface(*)\Output Queue Length | The length of the output packet queue If this value is greater than 2, network traffic is likely saturated. |
\Network Interface(*)\Packets Received/sec | The number of packets received over each network adapter per 1 second. (Complemental) |
\Network Interface(*)\Packets Sent/sec | The number of packets sent over each network adapter per 1 second. (Complemental) |
\Network Interface(*)\Packets/sec | The number of packets sent and received over each network adapter per 1 second. (Complemental) |
Process
Counter | Description |
\Process(Process Name)\Handle Count | The current number of handles opened by processes. If this value if greater than 10,000, a handle leak is likely occerring. |
\Process(Process Name)\Private Bytes | The size of memory area that is allocated to the process and can not be shared with other process. If it shows an increasing trend, a memory leak is likely occerring. |