Performance Monitoring and Baseline Measurement

Applies To: Windows Server 2003

It is difficult to predict the exact mix of client operating system versions, number of active clients, and the types and sizes of print jobs in advance. The most effective and quantitative approach to server sizing is to observe existing print server performance. There are 13 new performance counters available in Windows 2000 and later versions of Windows that enable administrators to monitor the general load of the print server on the server computer as well as monitor other printer-specific information.

A summary of the performance objects related to print server performance is presented here.

Performance Objects

Windows performance counters are grouped into related sets called performance objects. In any performance analysis project, the performance counters of the Processor, Physical Disk, Memory, and Network performance objects should always be examined. They provide a general overview of the system’s performance and can also help identify processing bottlenecks and other issues requiring further investigation.

In addition to the performance objects that provide an overview of the system, there are also performance objects that provide information about specific aspects of system and print server operation. Two of these more specific performance objects are the Process object and the Print Queue object.

Process Object

The process object reports performance information about each process running on the system. To monitor the performance and load of the print server using System Monitor, select the Spoolsv.exe from the list of performance instances and add the following performance counters:

Counter Name Description

% Processor Time

The percentage of elapsed time that all process threads used to execute instructions.

An instruction is the basic unit of execution in a computer, a thread is the object that executes instructions, and a process is the object created when a program is run. This count includes code executed to handle some hardware interrupts and trap conditions.

Handle Count

The total number of handles currently open by this process.

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

Virtual Bytes

The current size, in bytes, of the virtual address space 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.

Virtual Bytes Peak

The maximum size, in bytes, of virtual address space 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.

Pool Paged Bytes

The size, in bytes, of the paged pool, an area of system memory (physical memory used by the operating system) for objects that can be written to disk when they are not being used. Memory\\Pool Paged Bytes is calculated differently than Process\\Pool Paged Bytes, so it might not equal Process\\Pool Paged Bytes\\_Total. This counter displays the last observed value only; it is not an average.

Pool Nonpaged Bytes

The size, in bytes, of the nonpaged pool, an area of system memory (physical memory used by the operating system) for objects that cannot be written to disk, but must remain in physical memory as long as they are allocated. Memory\\Pool Nonpaged Bytes is calculated differently than Process\\Pool Nonpaged Bytes, so it might not equal Process\\Pool Nonpaged Bytes\\_Total. This counter displays the last observed value only; it is not an average.

Working Set

The current size, in bytes, of the working set of this process. The working set is the set of memory pages 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 they are needed, they will then be soft-faulted back into the working set before leaving main memory.

Working Set Peak

The maximum size, in bytes, in the working set of this process at any point in time. 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 they are needed, they are then soft-faulted back into the working set before they leave main memory.

Windows Server 2003 provides the Print Queue performance object for tracking activity in the print server print queues. The counter values are reset when either the print server or the spooler service is restarted.

Counter Name Description

Add Network Printer Calls

Shows the total number of calls from other print servers to add shared network printers to this server since last restart.

Bytes Printed/sec

Shows the number of bytes per second printed in a print queue and provides a rough indication of how busy a printer is. This counter can be used for bottleneck detection.

Enumerate Network Printer Calls

Shows the total number of calls from browse clients to this print server to request network browse lists since last restart.

Job Errors

Shows the total number of job errors in a print queue since last restart. Job errors can occur if the connection to the printer has errors due to network problems.

Jobs

Shows the current number of jobs in a print queue. Use this counter to identify excessive use.

Jobs Spooling

Shows the current number of spooling jobs (incoming or incomplete) in a print queue.

Max Jobs Spooling

Shows the maximum number of spooling jobs (incoming or incomplete) in a print queue since last restart.

Max References

Shows the peak number of references (open handles) to this printer.

Not Ready Errors

Shows the total number of printer-not-ready errors in a print queue since the last restart.

Out of Paper Errors

Shows the total number of out-of-paper errors in a print queue since the last restart.

References

Shows the current number of references to a print queue. A reference can be a user or a program that is connecting to a printer and opening a print queue.

Total Jobs Printed

Shows the total number of jobs printed on a print queue since the last restart.

Total Pages Printed

Shows the total number of pages printed through GDI on a print queue since the last restart. Since RAW print jobs do not provide page-count data, they are not included in this counter. (Windows 98 and Windows 95 clients submit RAW jobs. The print volume of a RAW job is not captured by this counter.)

Performance monitoring helps you tune your deployments and anticipate when to add more or more powerful processors, increase the system memory, or modify the disk configuration.