You are on page 1of 14

Print Server Scalability and Sizing Technical Overview

Microsoft Corporation
Published: October 2003

Abstract

Microsoft has made a number of enhancements to the printing subsystem of the Microsoft® Windows® 2000 and
the Windows Server 2003 family. Scalability and capacity play key roles in the purchase and deployment of
Windows print servers. Although this paper does not provide exact formulas for calculating maximum loads, it
does provide information that helps you size a server to meet your organization’s needs.
Microsoft® Windows Server™ 2003 White Paper

The information contained in this document represents the current view of


Microsoft Corporation on the issues discussed as of the date of
publication. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of
Microsoft, and Microsoft cannot guarantee the accuracy of any
information presented after the date of publication.
This document is for informational purposes only. MICROSOFT MAKES
NO WARRANTIES, EXPRESS OR IMPLIED, AS TO THE INFORMATION
IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the
user. Without limiting the rights under copyright, no part of this document
may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical,
photocopying, recording, or otherwise), or for any purpose, without the
express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights,
or other intellectual property rights covering subject matter in this
document. Except as expressly provided in any written license agreement
from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual
property.
©2003 Microsoft Corporation. All rights reserved.
Microsoft, MSN, Win32, Win64, Windows, Windows XP, Windows Server
Windows NT, and the Windows logo are either registered trademarks or
trademarks of Microsoft Corporation in the United States and/or other
countries.
The names of actual companies and products mentioned herein may be
the trademarks of their respective owners.
Microsoft® Windows Server™ 2003 White Paper

Contents
Contents................................................................................................................. .......................3

Introduction..................................................................................................................... ..............1

Environmental Variables Affecting Server Performance........................................... ................2

Number of Active Clients........................................................................................... ..................2

Client Operating System............................................................................................................. .2

Number, Size, and Frequency of Print Jobs............................................................. ...................2

Type of Print Jobs................................................................................................................... .....3

Types of Drivers................................................................................................ ..........................3


Printer Hardware.................................................................................................... .....................3

Print Server Configuration........................................................................................ ...................3

Server Service.................................................................................................... .....................3

Spool Directory................................................................................................... .....................5

Performance Monitoring and Baseline Measurement................................................................ 6

Process Object............................................................................................................. ...............6

Print Queue Object........................................................................................................... ...........7

Summary....................................................................................................................................... .8

Related Links............................................................................................................................ ...10


Microsoft® Windows Server™ 2003 White Paper

Introduction
Print server scalability plays a key role in the purchase and deployment of Microsoft® Windows® print
servers. The maximum load and performance level of a Windows print server is greatly dependent upon
key configuration decisions. Although this paper does not provide exact formulas for calculating
maximum loads, it does provide information that helps you size a server to meet an organization’s
needs. First, we will identify and discuss the main issues, and then we will look at some configuration
details to maximize print server performance. These key factors include the following:
• Number of clients

• Clients’ operating system version

• Number, size, and frequency of jobs

• Type of jobs
• Number of printers

• Type of drivers

• Type of printers

In the following sections, we will explore how each of these factors affects a print server’s maximum
load capacity.

After examining these variables and understanding how they impact a server’s load capacity, we will
look at the specific performance-related configuration settings that you can make to a dedicated print
server.

Print Server Scalability and Sizing Technical 1


Microsoft® Windows Server™ 2003 White Paper

Environmental Variables Affecting Server Performance


Number of Active Clients
The number of active clients includes the currently printing workstations and can also include
workstations that have recently submitted print jobs. Depending on which application is in use, open
sessions to the print server can remain open for hours or even days. The Windows Point and Print
Technical Overview paper discusses the details about using Named Pipes with remote procedure call
(RPC) connections. For the purposes of this discussion, it is sufficient to be aware that the number of
active clients can be greater than you might think due to lingering connections. Each of these
connections or Named Pipes to the spooler service on the print server occupies resources. It is possible
for a print server to become resource-constrained simply by excessive client connections.

Client Operating System


The operating system version that runs on the clients becomes very important when the client
environment includes a substantial percentage or majority of Windows 95, Windows 98, or Windows
Millennium Edition clients. The version becomes critical during the upgrade of these clients to Windows
2000 or Windows XP. Although the Windows Point and Print Technical Overview paper covers the topic
in depth, it is important to note that the processor load placed on the print server is much lower with
clients based on the earlier Windows versions mentioned above than that with Windows NT–based
workstations. Clients benefit from this arrangement, because their applications are returned to users
faster—a majority of the rendering portion of the print process is offloaded to the print server

.When upgrading to Windows 2000 or Windows XP the operating system versions running in the client
environment is an important consideration, particularly if the client environment includes a substantial
percentage or majority of Windows 95, Windows 98, or Windows Millennium Edition clients. The
processor load placed on the print server is much lower with clients based on the earlier Windows
versions mentioned above than that with Windows NT–based workstations. Clients benefit from this
arrangement, because their applications are returned to users faster because the majority of the
rendering portion of the print process is offloaded to the print server.

Note: When considering the client operating system, you must plan ahead for desktop upgrades and
migrations. For example, imagine that 15,000 desktops are split evenly between Windows 98 and Windows
2000. The organization decides to upgrade completely to Windows 2000, which creates additional load from
the 7,500 new Windows 2000 clients. As a result, it may be necessary to add more processing power to the
print server by adding processors or upgrading to more powerful processors.

Number, Size, and Frequency of Print Jobs


The number, size, and frequency of jobs can play a significant role in selecting the network access and
disk configuration for a print server. Many smaller jobs result in different disk space requirements
compared to fewer larger jobs. If your organization ever needs to save printed jobs, the number, size
and frequency of print jobs is a primary consideration when sizing the hard disk configuration.

Print Server Scalability and Sizing Technical 2


Microsoft® Windows Server™ 2003 White Paper

Type of Print Jobs


Complex print jobs, such as detailed graphics, PDF files, or those containing many fonts, place
additional CPU load on a print server. CPU load is an issue only with clients that run Windows NT or
later, as discussed earlier in the “Client Operating System” section. However, print device type makes
an impact as well, as discussed below.

Types of Drivers
Scalability is closely tied to driver types because a server might be required to host many unique driver
models. For example, a server hosting 2,100 printers that use the same driver requires less registry
access and saves more spooler processing than a server hosting 2,100 printers that use 215 unique
printer drivers. For many customers, reliability and scalability go together, because
they cannot afford to be without a certain number of printers at one time. For this
reason, Microsoft recommends using the user-mode drivers supplied with Windows
2000 and the Windows Server 2003 family or the drivers provided by the printer
manufacturer that include the “Designed for Windows” logo.

Note: For more information about driver architecture, testing, and selection, read the
Choosing the Right Printer Drivers document at:
http://www.microsoft.com/windows2000/technologies/fileandprint/print/default.asp

Printer Hardware
Print device hardware plays a significant role in the throughput and performance of a Windows print
server. Higher-end devices, for example, can accept more complex data and perform processing and
production steps (such as document collation) themselves. Other devices with less built-in intelligence
require the Windows print server to perform extra processing and formatting so that a simpler image
format is created and sent to the device. Additionally, processing speed and physical device storage
can have a great impact on the length of time that is required to accept a print job from a Windows print
server. This in turn has an impact on the length of time and disk space that the job occupies on the
server while in the device’s queue. Typically, workgroup class laser printers and higher-end devices
support substantial processing, memory, and storage upgrades, while more consumer-focused products
such as ink jet printers have minimum capabilities with respect to rendering or storage.

When standardizing printer hardware for your organization, it is important to look at the installable
options that make sense for your environment. For example, if all corporate network printers support
duplex printing and feature 128 megabytes of RAM, configuration on the print server is easier and more
consistent.

Print Server Configuration


To achieve maximum performance and capacity for dedicated print servers, consider the following
configuration settings.

Server Service

Microsoft recommends that the Maximize performance for file sharing option be set on dedicated
print servers. This setting configures the server to dedicate as many resources as possible to file and
print server services.

To view or change server optimization settings:

Print Server Scalability and Sizing Technical 3


Microsoft® Windows Server™ 2003 White Paper

1. From the Start menu, point to Settings, and then click Control Panel.

2. Double-click Network and Dial-up Connections.

3. Double-click Local Area Connection, and then click the Properties button.

4. In
the Local Area Connection Properties dialog box, double-click File and Printer Sharing for
Microsoft Networks.

5. Under Optimization, if you are running Windows Server 2003, the Maximize Data Throughput for
File Sharing option is selected by default.

6. Click OK.

The values for the LargeSystemCache entry are shown in the following table, along with their
corresponding options under File and Printer Sharing for Microsoft Networks Properties.

Print Server Scalability and Sizing Technical 4


Microsoft® Windows Server™ 2003 White Paper

Registry User interface Description Notes


value option
0 Maximize data Optimizes systems for This setting is useful for larger server
throughput distributed applications that applications and database servers such as
for network typically do their own memory SQL Server that need to maximize process
applications caching (such as SQL Server, working sets over the file system cache
which sets this option by working set.
default). This setting is useful
for computers providing
application services because it
favors the working sets of
processes over the working set
of the file system cache.
1 Maximize data Optimizes the system for file On Windows 2000 the file system cache
throughput and printer sharing resources. working set can be increased by 464 MB of
for file This is the default set by additional virtual address space (up to 960
sharing Windows 2000 Server Setup. MB) if the system has less than 16 GB of
If you have at least 128 MB of RAM, is not configured to start with the
RAM, this value results in a /3GB Boot.ini switch, and the
very high maximum size for the PagedPoolSize entry is set to a value
cache working set. other than 0xFFFFFFFF (or 0 on systems
The Maximize Data with more than 1 GB of RAM), such as
Throughput for File Sharing 192000000, the system is not running
option is useful for computers Terminal Services, and the SystemPages
that typically run the Server entry is not set to 0xFFFFFFFF. For more
service for file sharing information about how various memory-
management registry entries interact, see
"Optimizing Your Memory Configuration"
later in this chapter.

Spool Directory

While accepting jobs and processing them for de-spooling, the print server can perform substantial disk
input/output (I/O). IN addition to I/O, the memory load and potential page file hits that could occur
during high volume periods, and there may be a risk of disk I/O constraints that affect performance or
stability of the server.

Microsoft recommends that you move the spooler to a separate physical drive or array of drives, if
possible. Doing so can prevent disk space constraints from having a negative impact on the dynamic
management and allocation of the paging file. Furthermore, it is recommended that this separate disk
have its own channel on the SCSI controller. (Today’s SCSI RAID controllers commonly support two to
four independent channels.) This channel also aids performance by separating the disk I/O of paging
from that of spooling. For additional performance recommendations related to RAID types, please see
the Microsoft Windows Server 2003 Resource Kit.

Print Server Scalability and Sizing Technical 5


Microsoft® Windows Server™ 2003 White Paper

Performance Monitoring and Baseline Measurement


You know the disclaimer “actual mileage may vary?” The same is true in print server sizing. It is
impossible to predict the exact mix of client operating system versions, active client numbers, and job
types and sizes. The most effective approach to server sizing is to observe the existing or previous print
server performance. Windows 2000 introduced 13 new performance counters that administrators to
could use to monitor the general load on a server, as well as printer-specific information. For more
information about objects and baselines, review the Performance Monitor information in the Windows
2003 Server Resource Kit. Some particularly useful objects provide a good idea about the overall load
of the four basic components: network, memory, disk, and processor.

Process Object
To monitor the performance and load on the print subsystem, select Spoolsv.exe from the instance list
and add the following items from the counters list:

Counter Description
Name
% Processor The percentage of elapsed time that all process threads used to execute instructions. An
Time 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 The total number of handles currently open by this process. This number is equal to the sum of
Count 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 The maximum size, in bytes, of virtual address space the process has used at any one time. Use
Peak 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 The size, in bytes, of the paged pool, an area of system memory (physical memory used by the
Bytes 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 The size, in bytes, of the nonpaged pool, an area of system memory (physical memory used by
Nonpaged the operating system) for objects that cannot be written to disk, but must remain in physical
Bytes 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 The maximum size, in bytes, in the working set of this process at any point in time. If free

Print Server Scalability and Sizing Technical 6


Microsoft® Windows Server™ 2003 White Paper

Peak 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.

Print Queue Object


Windows Server 2003 printing features provide the Print Queue Object performance object for tracking
activity in the server print queue. Its counters are reset when either the print server or the spooler
service is restarted.

Counter Name Description


Add Network Shows the total number of calls from other print servers to add shared network printers to
Printer Calls this server since last restart.
Bytes Shows the number of bytes per second printed in a print queue and provides a rough
Printed/sec indication of how busy a printer is. This counter can be used for bottleneck detection.
Enumerate Shows the total number of calls from browse clients to this print server to request network
Network Printer browse lists since last restart.
Calls
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 Shows the maximum number of spooling jobs (incoming or incomplete) in a print queue
Spooling since last restart.
Max References Shows the peak number of references (open handles) to this printer.
Not Ready Shows the total number of printer-not-ready errors in a print queue since the last restart.
Errors
Out of Paper Shows the total number of out-of-paper errors in a print queue since the last restart.
Errors
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 Shows the total number of jobs printed on a print queue since the last restart.
Printed
Total Pages Shows the total number of pages printed through GDI on a print queue since the last restart.
Printed 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, which means their print volume is
not captured w/this counter.)

This type of performance monitoring helps you tune your deployments, whether you are adding
additional or more powerful processors, increasing the system memory, or modifying the disks or disk
configuration.

Print Server Scalability and Sizing Technical 7


Microsoft® Windows Server™ 2003 White Paper

Summary
Clearly there are a number of factors that have a large impact on print server sizing and capacity
planning. Even with the variable nature of network printing, it is possible to make educated calculations
about the hardware required for a particular environment.

See the following resources for further information:


• For more information about deployment and management of Windows print servers, see the Windows
.NET Server Deployment Resource Kit (not yet available when this paper was published).

• For more information about the Windows Server 2003 architecture, see the “Display and Print Devices”
sections in the Windows Driver Development Kit at http://www.microsoft.com/ddk

• For more information about connectivity options and support protocols in Windows Server 2003, see
Microsoft Windows 2000 Server Resource Kit published by Microsoft Press.
• For additional information about Windows print servers in general, visit the print server Web site at:
http://www.microsoft.com/printserver.

• For the latest information about Windows Server 2003, see the Windows 2003 Server Web site at
http://www.microsoft.com/windowsserver2003.

See the following resources for further information:


• For More information about deployment and management of Windows print servers, see the Windows
.NET Server Deployment Resource Kit (not yet available when this paper was published).

• For more information about the Windows Server 2003 architecture, see the “Display and Print Devices”
sections in the Windows Driver Development Kit at http://www.microsoft.com/ddk

• For more information about connectivity options and support protocols in Windows Server 2003, see
Microsoft Windows 2000 Server Resource Kit published by Microsoft Press.

• For additional information about Windows print servers in general, visit the print server Web site at:
http://www.microsoft.com/printserver.

• For the latest information about Windows Server 2003, see the Windows 2003 Server Web site at
http://www.microsoft.com/windowsserver2003.

See the following resources for further information:


• For More information about deployment and management of Windows print servers, see the Windows
.NET Server Deployment Resource Kit (not yet available when this paper was published).

• For more information about the Windows Server 2003 architecture, see the Display and Print Devices
sections in the Windows Driver Development Kit at http://www.microsoft.com/ddk

• For more information about connectivity options and support protocols in Windows Server 2003, see
Microsoft Windows 2000 Server Resource Kit published by Microsoft Press.

• For additional information about Windows print servers in general, visit the print server Web site at:
http://www.microsoft.com/printserver.

Print Server Scalability and Sizing Technical 8


Microsoft® Windows Server™ 2003 White Paper

• For the latest information about Windows Server 2003, see the Windows 2003 Server Web site at
http://www.microsoft.com/windowsserver2003.

Print Server Scalability and Sizing Technical 9


Microsoft® Windows Server™ 2003 White Paper

Related Links
See the following resources for further information:
• For more information about deployment and management of Windows print servers, see the Windows
Server 2003 Deployment Resource Kit (not yet available when this paper was published).

• For more information about the Windows Server 2003 architecture, see the “Display and Print Devices”
sections in the Windows Driver Development Kit at http://www.microsoft.com/ddk

• For more information about connectivity options and support protocols in Windows Server 2003, see
Microsoft Windows 2000 Server Resource Kit published by Microsoft Press.

• For additional information about Windows print servers in general, visit the print server Web site at:
http://www.microsoft.com/printserver.
• For the latest information about Windows Server 2003, see the Windows 2003 Server Web site at
http://www.microsoft.com/windowsserver2003.

Print Server Scalability and Sizing Technical 10