Performance Monitor

Performance Monitor (known as System Monitor in Windows 9x, Windows 2000, and Windows XP) is a system monitoring program introduced in Windows NT 3.1. It monitors various activities on a computer such as CPU or memory usage. This type of application may be used to determine the cause of problems on a local or remote computer by measuring performance of hardware, software services, and applications. The program can define thresholds for alerts and automatic actions, generate reports, and view past performance data.

In Windows 9x, System Monitor is not installed automatically during Windows setup, but can be installed manually using the Add/Remove Programs applet, located in the Control Panel. It has few performance measurement criteria (called "counters") available and offers little customization. In contrast, the Windows NT Performance Monitor is available out of the box and has over 350 available counters. Performance Monitor can display information as a graph, bar chart, or list of numeric values, and can update information using a range of time intervals. The categories of information that can be monitored depend on which networking services are installed, but always include file system, kernel, and memory manager. Other possible categories include Microsoft Network Client, Microsoft Network Server, and protocol categories.

In Windows 2000, the System Monitor of Windows 9x and the Performance Monitor of Windows NT 4 and earlier, as well as another program called Network Monitor, were merged into a Microsoft Management Console (MMC) plug-in called Performance, which consisted of two parts: "System Monitor" and "Performance Logs and Alerts". The "System Monitor" naming was kept in Windows XP. However, some third-party publications referred to it as "Performance Monitor", even in Windows 2000 or XP contexts.

The name in the MMC plug-in was changed back to "Performance Monitor" in Windows Vista, though it was also bundled with a Reliability Monitor and a new performance summary feature called Resource Overview. In Windows 7, the resource overview feature was spun off into a stand-alone Resource Monitor application, with the landing page for the Performance Monitor in Windows 7 containing a pointer to the (new) Resource Monitor; Windows 7 also moved the Reliability Monitor to the Action Center. A new feature added to the Performance Monitor in Windows Vista is Data Collector Set, which allows sets of accounting parameters to be easily manipulated as a group. Performance Monitor plots system CPU activity and offers the ability to add counters as a method of plotting performance, an option different from the ability to view CPU activity within Task Manager. Various integrated counters are available, and the tool also offers the option to import them. The tool allows for monitoring selective instances when selecting counters and offers a description of each counter. Additionally, counters can be highlighted if multiple are selected. Also included are various options for monitoring; that is, Chart, Log, and Report:


 * Chart displays performance monitoring data in graph form.
 * Within Chart, the Alert feature can be configured to send alerts if certain parameters are exceeded.
 * Report displays the same data in a numeric-only, non-graphic format.
 * Log manages options for saving monitoring results to the local computer.

Whatever its version, the tool can be accessed by typing Performance Monitor into the search field on the Windows taskbar, or by using the keyboard shortcut Windows + R and typing  .

Counters
Various counters are offered within Performance Monitor. Counters provide the ability to track specific performance measures within the system.

Counters and Description
 * .NET CLR Data: .Net CLR Data
 * .NET CLR Exceptions: Runtime statistics on CLR handling.
 * .NET CLR Interop: Stats for CLR Interop
 * .NET CLR Jit: Stats for CLR Jit.
 * .NET CLR Loading: Statistics for CLR Class Loader.
 * .NET CLR Memory: Counters for CLR Garbage Collected heap.
 * .NET CLR Remoting: Stats for CLR Remoting.
 * .NET CLR Security: Stats for CLR Security.
 * Authorization Manager Applications: The set of Counters for Authorization Manager Applications
 * Browser: The Browser performance object consists of counters that measure the rates of announcements, enumerations, and other Browser transmissions.
 * Cache: The Cache performance object consists of counters that monitor the file system cache, an area of physical memory that stores recently used data as long as possible to permit access to the data without having to read from the disk.  Because applications typically use the cache, the cache is monitored as an indicator of application I/O operations.  When memory is plentiful, the cache can grow, but when memory is scarce, the cache can become too small to be effective.
 * Database: Database provides performance statistics for each process using the ESE high performance embedded database management system.
 * Distributed Routing Table: The Distributed Routing Table (DRT) performance object consists of counters that monitor the local DRT cache as well as counters that measure the rates at which DRT protocol messages are sent and received.
 * Distributed Transaction Coordinator: Microsoft Distributed Transaction Coordinator performance counters.
 * Energy Meter: The Energy Meter performance object measures total energy consumption.
 * FileSystem Disk Activity: The FileSystem Disk Activity performance counter set consists of counters that measure the aspect of filesystem's IO Activity. This counter set measures the number of bytes filesystem read from and wrote to the disk drive.
 * GPU Engine: The running time of each GPU engine
 * GPU Process Memory: The memory usage of each process
 * HTTP Service: Set of HTTP service counters
 * ICMP: The ICMP performance object consists of counters that measure the rates at which messages are sent and received by using ICMP protocols. It also includes counters that monitor ICMP protocol errors.
 * IPsec Connections: IPsec Connections is the set of Internet Protocol security (IPsec) counters that apply to IPsec encapsulated connections.
 * IPsec Driver: IPsec Driver is the set of Internet Protocol security (IPsec) driver counters that apply to traffic over Internet Protocol version 4 and Internet Protocol version 6.
 * IPv4: The IP performance object consists of counters that measure the rates at which IP datagrams are sent and received by using IP protocols. It also includes counters that monitor IP protocol errors.
 * Job Object Details: % Job object Details shows detailed performance information about the active processes that make up a Job object.
 * LogicalDisk: The Logical Disk performance object consists of counters that monitor logical partitions of a hard or fixed disk drives. Performance Monitor identifies logical disks by their a drive letter, such as C.
 * Memory: The Memory performance object consists of counters that describe the behavior of physical and virtual memory on the computer.  Physical memory is the amount of random access memory on the computer.  Virtual memory consists of the space in physical memory and on disk.  Many of the memory counters monitor paging, which is the movement of pages of code and data between disk and physical memory.  Excessive paging, a symptom of a memory shortage, can cause delays which interfere with all system processes.
 * Paging File: The Paging File performance object consists of counters that monitor the paging file(s) on the computer. The paging file is a reserved space on disk that backs up committed physical memory on the computer.
 * Physical Disk: The Physical Disk performance object consists of counters that monitor hard or fixed disk drive on a computer. Disks are used to store file, program, and paging data and are read to retrieve these items, and written to record changes to them.  The values of physical disk counters are sums of the values of the logical disks (or partitions) into which they are divided.
 * Process: The Process performance object consists of counters that monitor running application program and system processes. All the threads in a process share the same address space and have access to the same data.
 * Processor: The Processor performance object consists of counters that measure aspects of processor activity. The processor is the part of the computer that performs arithmetic and logical computations, initiates operations on peripherals, and runs the threads of processes. A computer can have multiple processors.  The processor object represents each processor as an instance of the object.
 * Processor Information: The Processor Information performance counter set consists of counters that measure aspects of processor activity. The processor is the part of the computer that performs arithmetic and logical computations, initiates operations on peripherals, and runs the threads of processes. A computer can have multiple processors. On some computers, processors are organized in NUMA nodes that share hardware resources such as physical memory. The Processor Information counter set represents each processor as a pair of numbers, where the first number is the NUMA node number and the second number is the zero-based index of the processor within that NUMA node. If the computer does not use NUMA nodes, the first number is zero.
 * Redirector: The Redirector performance object consists of counter that monitor network connections originating at the local computer.
 * Search Gatherer: Counters for the Windows Search Service Gathering service object
 * Server: The Server performance object consists of counters that measure communication between the local computer and the network.
 * Sycrhonization: The Synchronization performance object consists of counters for kernel synchronization. The synchronization object represents each processor as an instance of the object.
 * System: The System performance object consists of counters that apply to more than one instance of a component processors on the computer.
 * Thread: The Thread performance object consists of counters that measure aspects of thread behavior. A thread is the basic object that executes instructions on a processor.  All running processes have at least one thread.
 * WFP: Provider Count is the number of providers registered with the Windows Filtering Platform.
 * Windows Time Service: Windows Time Service Performance Counters display the time synchronization runtime information from the service. Note that the service has to be running in order for this information to be displayed.