Performance Monitor (perfmon.msc)


Windows Performance Monitor (perfmon.msc) is a console for reporting and recording resource utilization via counter data for object instances.

  • can be used to:
    • provide real-time charts of system resources
    • log information to a file for long-term analysis
  • monitor different resources at different times of the day to detect bottlenecks in a system that are causing problems
  • can create log files called Data Collector Sets to record info for viewing later
  • 2 types of log:
    • Counter logs – allow you to collect statistics about resources
      • used to determine system health and performance
    • Trace logs – can collect statistics about services
      • detailed reports about resource behavior
      • extension to the event viewer that can log data otherwise inaccessible
  • saved logs can be loaded into Performance Monitor from Reports folder or exported to other programs

Performance Counters

  • To configure a counter log, you need to select what to monitor in the report
  • In Performance Monitor, resources such as memory and disk are collected into objects
  • Objects have counters that represent different performance statistics
    • there can be multiple instances of the same type of object
    • E.g., disk performance can be measured using the Physical Disk Object, and a useful counter is the Average Queue Length
    • if there are two disks, three instances of this object can be viewed: disk 0, disk 1, and disks Total

Most Used Counters

ObjectCounterDescription
Processor% Processor TimeThe percentage of time that the processor is executing a non-idle thread. In general terms, this should be low. If it is greater than 85% for a sustained period, you may have a processor bottleneck.
Processor% Privileged Time

% User Time
If overall processor time is very high (over 85% for sustained periods), it can be helpful to compare these. Privileged time represents system processes, whereas user time is software applications. If privileged time is much higher, it is likely that the CPU is underpowered (it can barely run Windows core processes efficiently).
Physical Disk% Disk TimeThe percentage of elapsed time that the selected disk drive is busy servicing read or write requests. This is a good overall indicator of how busy the disk is. Again, if the average exceeds 85% for a sustained period, you may have a disk problem.
Physical DiskAverage Disk Queue LengthThe number of requests outstanding on the disk at the time the performance data is collected. Taken with the preceding counter, this gives a better indicator of disk problems. For example, if the disk queue length is increasing and disk time is high, then you have a disk problem.
MemoryAvailable BytesThe amount of memory available should not be below about 10% of the total system RAM. If available bytes fall continuously, there could be a memory leak (that is, a process that allocates memory but does not release it again).
MemoryPages/secThe number of pages read from or written to disk to resolve hard page faults. This means your system is using the paging file. Nothing wrong as long as this is not excessive (averaging above about 50). You probably also want to check the paging file’s usage by viewing the paging object itself.
Paging File% UsageThe amount of the pagefile instance in use in percent. If your paging file is currently 1000 MB on the disk and this figure averages 50%, then it means you might benefit from adding memory (about 500 MB, in fact). Don’t forget that if your system pages excessively, then disk performance will suffer—paging is disk intensive.