Tweak your server's registry to make the Spooler Service a priority

Windows 2000 does so much that print services sometimes aren't as responsive as you'd like when running your server as a print server. Derek Schauland shows how tweaking some registry settings can boost the Spooler Service's performance.

One of the benefits of deploying Windows 2000 as a server is that it does much more than provide basic file and print services. Of course, this benefit can be a drawback when all you want your server to do is act as a print server. Windows 2000 is good at so many things that sometimes the print services aren’t as responsive as you’d like them to be. However, with some registry tweaks you can increase the performance of the Spooler Service and speed up printing on your network.

The Spooler Service is Windows’ print jobber
The Windows NT Spooler manages the print jobs that are sent to the print server. The print server uses the Spooler Service as a kind of middleman to get the submitted jobs out to the print device and a finished document to the user.

The Spooler Service is rather simple. On your network, various users send a series of documents to your print server. Let’s say that among these documents are the billing slip for a customer, payroll for the office, and a large report needed by a group of salesmen for a presentation they’re giving that afternoon. Based on priorities specified by the administrator, the spooler sends the highest-priority jobs to the appropriate print devices for printing. So the administrator might set the sales printer to be the highest priority during that department’s busiest time of the day, and then set the spooler to queue the jobs for the payroll to print after hours.

You must configure the spooler to manage your print jobs. You can do this not only through the usual Printers Folder method, but also through some registry keys. For the purposes of this Daily Feature, we’ll tackle the registry here. You can use the registry to tweak the spooler to make it better, faster, and more efficient than it was when it came out of the box.

Don’t forget your keys
To modify the registry, start the Registry Editor by clicking Start | Run, typing regedit in the Run dialog box, and clicking OK. Be very, very careful when modifying your server’s registry. If you make a mistake, you may render your server unbootable and/or lose data. When the Registry Editor starts, navigate the tree to the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print hive. When you do, you’ll see the screen shown in Figure A.

Figure A
You can modify the Spooler Service via the registry.

Tweaking these registry keys can speed up the printing on your network:
  • PortThreadPriority
  • PriorityClass
  • SchedulerThreadPriority

The other values—BeepEnabled, MajorVersion, and MinorVersion—don’t affect spooler performance.

As the name states, the PortThreadPriority key will set the priority of the ports on the print server. If a print job is large, applications can be delayed when the spooler sends data to the printer. You can set three values for this key. The default value for PortThreadPriority is 0, which represents the normal priority. To increase priority, set the PortThreadPriority key as a REG_DWORD type with a value of 1. To set the lowest priority, set the key as a REG_DWORD type with a value of -1.

The PriorityClass keys allow you to modify the priority of the Spooler Service. On a Windows server, by default this value is set to 0. You can set values ranging from 1 to 9, with 9 being the highest priority. Don’t let the 0 value confuse you. Even though the value is set to 0, Windows interprets a 0 value as being the highest priority (9) on Windows 2000 Server. You only need to change this value if you want to lower the priority or ensure that it’s set to the highest value if you suspect someone else has changed the setting.

The SchedulerThreadPriority key allows you to adjust print performance and the priority used to assign print jobs to ports. This entry manages the order in which jobs are distributed to printers. Like the PortThreadPriority key, you can set this key to any one of three REG_DWORD types. The default setting is 0, which represents normal priority. Setting the key to 1 sets above-normal priority. To set the key to below normal priority, set the value to ffffffff(eight fs).

If you change any of these keys, you must stop and restart the Spooler Service to make the changes take effect. To do so, quit the Registry Editor. Next, open a command prompt on your server. To stop the service, type net stop spooler and press [Enter]. Then, restart the service by typing net start spooler and pressing [Enter].

Happy spooling
These little modifications will speed up printing on your network and increase overall performance. Good luck in your testing, and remember that trial and error—or in this case trial, question, and retrial—can definitely aid you along the way.


About Derek Schauland

Derek Schauland has been tinkering with Windows systems since 1997. He has supported Windows NT 4, worked phone support for an ISP, and is currently the IT Manager for a manufacturing company in Wisconsin.

Editor's Picks

Free Newsletters, In your Inbox