Process Object

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

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.

Counter Name Description Counter Type

% Privileged Time

Shows the percentage of non-idle processor time spent executing code in privileged mode. Privileged mode is a processing mode designed for operating system components and hardware-manipulating drivers. It allows direct access to hardware and memory. The alternative, user mode, is a restricted processing mode designed for applications, environmental subsystems, and integral subsystems. The operating system switches application threads to privileged mode to access operating system services.

% Privileged Time includes time servicing interrupts and DPCs. A high rate of privileged time might be attributed to a large number of interrupts generated by a failing device. When a Windows system service is called, the service often runs in privileged mode to gain access to system-private data. Such data is protected from access by threads executing in user mode. Calls to the system can be explicit or implicit, such as page faults or interrupts.

Unlike some earlier Windows operating systems, Windows 2000 and the Windows Server 2003 family use process boundaries for subsystem protection in addition to the traditional protection of user and privileged modes. These subsystem processes provide additional protection. Therefore, some work done by Windows 2000 and Windows Server 2003 on behalf of your application might appear in other subsystem processes in addition to the privileged time in your process.

PERF_100NSEC_TIMER

% Processor Time

Shows the percentage of time that the processor spent executing a non-idle thread. It is calculated by measuring the duration that the idle thread is active during the sample interval, and subtracting that time from 100 %. (Each processor has an idle thread that consumes cycles when no other threads are ready to run.) This counter is the primary indicator of processor activity, and displays the average percentage of busy time observed during the sample interval. Code executed to handle some hardware interrupts and trap conditions are included in this count.

PERF_100NSEC_TIMER

% User Time

Shows the percentage of time that the processor spent executing code in user mode. Applications, environment subsystems, and integral subsystems execute in user mode. Code executing in user mode cannot damage the integrity of the Windows Executive, kernel, and/or device drivers. Unlike some earlier Windows operating systems, Windows 2000 and Windows Server 2003 use process boundaries for subsystem protection in addition to the traditional protection of user and privileged modes. These subsystem processes provide additional protection. Therefore, some work done by Windows 2000 and Windows Server 2003 on behalf of your application might appear in other subsystem processes in addition to the privileged time in your process.

PERF_100NSEC_TIMER

Page Faults/sec

Shows the rate, in incidents per second, at which page faults were handled by the processor. A page fault occurs when a process requires code or data that is not in its working set. This counter includes both hard faults (those that require disk access) and soft faults (those where the faulted page is found elsewhere in physical memory). Most processors can handle large numbers of soft faults without consequence. However, hard faults can cause significant delays.

PERF_COUNTER_COUNTER

Page File Bytes

Shows the the current amount of virtual memory, in bytes, that a process has reserved for use in the paging file(s). Paging files are used to store pages of memory used by the process. Paging files are shared by all processes, and the lack of space in paging files can prevent other processes from allocating memory. If there is no paging file, this counter reflects the current amount of virtual memory that the process has reserved for use in physical memory.

PERF_COUNTER_RAWCOUNT

Page File Bytes Peak

Shows the maximum amount of virtual memory, in bytes, that a process has reserved for use in the paging file(s). Paging files are used to store pages of memory used by the process. Paging files are shared by all processes, and the lack of space in paging files can prevent other processes from allocating memory. If there is no paging file, this counter reflects the maximum amount of virtual memory that the process has reserved for use in physical memory.

PERF_COUNTER_RAWCOUNT

Priority Base

Shows the current base priority of this process. Threads within a process can raise and lower their own base priority relative to the process's base priority.

PERF_COUNTER_RAWCOUNT

Private Bytes

Shows the size, in bytes, that this process has allocated that cannot be shared with other processes.

PERF_COUNTER_RAWCOUNT

Working Set

Shows the size, in bytes, in the working set of this process. The working set is the set of memory pages that were touched recently by the threads in the process. If free memory in the computer is above a threshold, pages are left in the working set of a process, even if they are not in use. When free memory falls below a threshold, pages are trimmed from working sets. If the pages are needed, they will be soft-faulted back into the working set before leaving main memory.

PERF_COUNTER_RAWCOUNT

Creating Process ID

Shows the identifier of the process that created the current process. Note that the creating process might have terminated since the current process was created, and so the current Creating Process ID counter may no longer identify a running process.

PERF_COUNTER_RAWCOUNT

Elapsed Time

Shows the time, in seconds, that this process has been running.

PERF_ELAPSED_TIME

Handle Count

Shows the total number of handles currently open by this process. This number is the equal to the sum of the handles currently open by each thread in this process.

PERF_COUNTER_RAWCOUNT

ID Process

Shows the unique identifier of this process. ID Process numbers are reused, so they only identify a process for the lifetime of that process.

PERF_COUNTER_RAWCOUNT

IO Data Bytes/sec

Shows the rate, in incidents per second, at which the process was reading and writing bytes in I/O operations. It counts all I/O activity generated by the process including file, network, and device I/Os.

PERF_COUNTER_BULK_COUNT

IO Data Operations/sec

Shows the rate, in incidents per second, at which the process was issuing read and write I/O operations. It counts all I/O activity generated by the process including file, network, and device I/Os.

PERF_COUNTER_BULK_COUNT

IO Other Bytes/sec

Shows the rate, in incidents per second, at which the process was issuing bytes to I/O operations that do not involve data such as control operations. It counts all I/O activity generated by the process including file, network, and device I/Os.

PERF_COUNTER_BULK_COUNT

IO Other Operations/sec

Shows the rate, in incidents per second, at which the process was issuing I/O operations that were neither read nor write operations (for example, a control function). It counts all I/O activity generated by the process including file, network, and device I/Os.

PERF_COUNTER_BULK_COUNT

IO Read Bytes/sec

Shows the rate, in incidents per second, at which the process was reading bytes from I/O operations. It counts all I/O activity generated by the process including file, network, and device I/Os.

PERF_COUNTER_BULK_COUNT

IO Read Operations/sec

Shows the rate, in incidents per second, at which the process was issuing read I/O operations. It counts all I/O activity generated by the process including file, network, and device I/Os.

PERF_COUNTER_BULK_COUNT

IO Write Bytes/sec

Shows the rate, in incidents per second, at which the process was writing bytes to I/O operations. It counts all I/O activity generated by the process including file, network, and device I/Os.

PERF_COUNTER_BULK_COUNT

IO Write Operations/sec

Shows the rate, in incidents per second, at which the process was issuing write I/O operations. It counts all I/O activity generated by the process including file, network, and device I/Os.

PERF_COUNTER_BULK_COUNT

Pool Nonpaged Bytes

Shows the number of bytes in the nonpaged pool, an area of system memory (physical memory used by the operating system) for objects that cannot be written to disk. Nonpaged pool pages cannot be paged out to the paging file, but instead remain in main memory as long as they are allocated.

PERF_COUNTER_RAWCOUNT

Pool Paged Bytes

Shows the number of bytes in the paged pool, an area of system memory (physical memory used by the operating system) for objects that can be written to disk. Paged pool pages can be paged out to the paging file when not accessed by the system for sustained periods of time. Memory\Pool Paged Bytes and Process\Pool Paged Bytes are calculated differently than this counter, so the counters might not display the same amounts.

PERF_COUNTER_RAWCOUNT

Thread Count

Shows the number of threads that were active in this process. A thread is the object that executes instructions, which are the basic unit of execution in a processor. Every running process has at least one thread.

PERF_COUNTER_RAWCOUNT

Virtual Bytes

Shows the size, in bytes, of the virtual address space that the process is using. Use of virtual address space does not necessarily imply corresponding use of either disk or main memory pages. Virtual space is finite, and by using too much, the process can limit its ability to load libraries.

PERF_COUNTER_RAWCOUNT

Virtual Bytes Peak

Shows the maximum size, in bytes, of virtual address space that the process has used at any one time. Use of virtual address space does not necessarily imply corresponding use of either disk or main memory pages. However, virtual space is finite, and the process might limit its ability to load libraries by using too much.

PERF_COUNTER_RAWCOUNT

Working Set Peak

Shows the maximum size, in bytes, in the working set of this process. The working set is the set of memory pages that were touched recently by the threads in the process. If free memory in the computer is above a certain threshold, pages are left in the working set of a process, even if they are not in use. When free memory falls below a certain threshold, pages are trimmed from working sets. If the pages are needed, they will be soft-faulted back into the working set before leaving main memory.

PERF_COUNTER_RAWCOUNT

See Also

Concepts

Find processor bottlenecks
Find memory bottlenecks
Finding Bottlenecks on Multiprocessor Computers