How-to: Read Performance Counters

These Performance Monitor counters can be used with TypePerf or LogMan to record Performance data:

Disk:
\LogicalDisk(*)\Avg. Disk sec/Read     The average time, in seconds, to read a block of data
\LogicalDisk(*)\Avg. Disk sec/Write    The average time, in seconds, to write a block of data
\LogicalDisk(*)\Disk Transfers/sec     Rate of read and write operations on the disk (>80/sec)
\PhysicalDisk(*)\% Disk Time
\PhysicalDisk(*)\Avg. Disk Bytes/Read
\PhysicalDisk(*)\Avg. Disk Bytes/Write
\PhysicalDisk(*)\Avg. Disk Queue Length
\PhysicalDisk(*)\Avg. Disk Read Queue Length
\PhysicalDisk(*)\Avg. Disk sec/Read          Average time, in seconds, to read a block of data
\PhysicalDisk(*)\Avg. Disk sec/Write         Average time, in seconds, to write a block of data
\PhysicalDisk(*)\Avg. Disk Write Queue Length
\PhysicalDisk(*)\Disk Read Bytes/sec
\PhysicalDisk(*)\Disk Reads/sec
\PhysicalDisk(*)\Disk Transfers/sec
\PhysicalDisk(*)\Disk Write Bytes/sec
\PhysicalDisk(*)\Disk Writes/sec

Processes:
\Process(*)\IO Data Operations/sec      The rate of file, network and device Reads/Writes.
\Process(*)\IO Other Operations/sec     The rate of file, network and device I/O’s (not read/write)

Memory:
\Memory\Available MBytes                Amount of physical memory available MB (>10%)
\Memory\Free System Page Table Entries  The no. of page table entries not currently in use (>10000)
\Memory\Pages Input/sec                 The rate at which pages are read from disk (> 10/Sec)
\Memory\Pages/sec                       The rate at which hard page faults are resolved (<1000)
\Memory\Page Reads/sec
\Memory\Page Writes/sec
\Memory\Pages Input/sec
\Memory\Pages Output/sec
\Memory\Pool Nonpaged Bytes        (>40% available)
\Memory\Pool Paged Bytes           (>40% available)

User Mode Memory:
\Process(*)\Private Bytes  The current non-shared memory consumed by this process, in bytes.
\Process(*)\Working Set    The current private + shared memory for this process, in bytes.
                           (On Win32 target a 250MB delta between Min size and Max size) (Win64 = 500MB)

\Process(*)\Thread Count   The no. of threads currently active in this process.
\Process(*)\Handle Count   How many handles each process has open.

Network:
\Network Interface(*)\Packets/sec
\Network Interface(*)\Output Queue Length  (<1 thread waiting)
\Network Interface(*)\Bytes Total/sec      The rate bytes are sent over each network adapter
\Network Interface(*)\Current Bandwidth    (<50%)
\Server\Bytes Total/sec                    The no. of bytes sent over the network (<50% of capacity). 

Processor:
\Processor\% Processor Time       The primary indicator of processor activity. (<70%) 
\Processor\% Privileged Time      (<75%)
\Processor(*)\% Interrupt Time    Receiving and servicing hardware interrupts. (<30%)
\System\Context Switches/sec      Thread re-prioritisation (5000/Sec)
\System\Processor Queue Length    Threads waiting to execute (<3)
\Processor(*)\% User Time

SQL Server:
\Process(sqlservr)\% Privileged Time
\Process(sqlservr)\% Processor Time
\Process(sqlservr)\% User Time
\Process(sqlservr)\IO Data Operations/sec
\Process(sqlservr)\Page Faults/sec
\Process(sqlservr)\Private Bytes
\Process(sqlservr)\Thread Count
\Process(sqlservr)\Virtual Bytes
\Process(sqlservr)\Working Set
\SQLServer:Buffer Manager\*
\SQLServer:Cache Manager(*)\*
\SQLServer:Databases(*)\Data File(s) Size (KB)
\SQLServer:Databases(*)\Log File(s) Size (KB)
\SQLServer:Databases(*)\Transactions/sec
\SQLServer:General Statistics\*
\SQLServer:Locks(*)\*
\SQLServer:Memory Manager\*
\SQLServer:SQL Statistics\Batch Requests/sec
\SQLServer:SQL Statistics\SQL Compilations/sec
\SQLServer:SQL Statistics\SQL Re-Compilations/sec

The values in parentheses are recommended/typical values, items consistently outside these ranges normally indicate a performance bottleneck. High Memory and CPU figures are not automatically a bad thing, combined with low disk activity this often indicates a well tuned, if busy, system.

Example

The % processor on the local machine: \Processor\% Processor Time
The % processor on a remote machine: \\server214\Processor\% Processor Time

"The time you enjoy wasting is not wasted time” ~ Bertrand Russell

Related commands

TypePerf - Write performance data to a log file.
LOGMAN - Manage Performance Monitor.
Process Explorer - Map processes to DLLs and executables.
Using perfmon for Sql Server


 
Copyright © 1999-2024 SS64.com
Some rights reserved