In most companies, employees share a single printer, which for the most part is no big deal. It saves the company money because they don’t have to buy a printer for every PC. When some employees’ jobs require a lot of printing, though, a shared printer can become a bottleneck to office productivity. We’ve all seen situations where 10 people are crowded around a printer, each waiting for a page or two to be spit out. Someone at the front of the print queue has sent a large print job or a job with a lot of graphics. Meanwhile, the nine people behind that person can’t complete their work until their print jobs come out.

There are actually a lot of things that you can do to boost the overall printing speed. In this Daily Drill Down, I’ll share several techniques with you.

Understanding the waiting game
Before you can really do anything about an inefficient printing situation, you need to understand why it’s inefficient. Sure, there’s the obvious fact that half of the building shares a single printer, but why doesn’t that printer spit out the print jobs faster? Perhaps it is just a slow printer, but there is more to consider than just the printer’s page-per-minute capacity.

Network printing involves the client sending the print job to the print server’s queue. Then, the print server moves the print job from the queue to the actual printer. This may sound simple, but there are actually several places in between where inefficiencies can occur. For example, the print queue is actually stored on the print server’s hard disk, so the print queue could be slow if the partition is fragmented or in use by other applications. Likewise, if the server is low on physical RAM or on hard disk space, printing could slow down. I recommend placing excessively busy print queues on a dedicated, high-speed hard disk (not simply a dedicated partition) and making sure the server has lots of RAM. You might also set the server to defragment the hard disk during periods of low activity such as nights, weekends, and lunch breaks.

Connecting to the printer
You can make a huge difference in print speed simply by changing the actual connector that the printer uses to connect to the print server. Whether your network printer is connected directly to a print server or it’s connected to a network interface box, some type of cord connects the network interface to the printer. (Printers that actually contain their own network cards are the exception.)

Often, the printer uses a standard printer cable to connect to the print server or interface box. The problem is the printer cables attach to LPT ports, which are ancient technology, dating back to the early 1980s. Standard LPT ports can only move data at 9,600 bps. So, when using LPT ports, no matter how fast your print server is and no matter how fast your printer can spit out pages, the data will never move between them at speeds any higher than 9,600 bps. To correct this problem, why not connect the printer to the print server or to the network interface box with a USB cable? A USB cable can move data at speeds of up to 12 Mbps—a huge improvement over the speeds offered by LPT ports.

Of course, not all printers connect to the print server via an LPT or USB port. Some connect via a built-in network card, which offers a high-speed connectivity from the printer to the network. Keep in mind, though, that not all network cards are created equally. If you buy a low-end network card, or if you’ve had the network card for a while, you should check the card’s speed. In the case of Ethernet cards, an older or cheaper card may only move data at speeds of 10 Mbps. Of course, this is much faster than the performance that you’d achieve through an LPT port, but it’s still slower than the 12 Mbps offered by USB ports. For even better performance on Ethernet networks, look for a network card that supports 100-Mb speeds (assuming that your hub and your print server also support 100-Mb speeds).

Maximize memory
Once you’ve picked out a high-speed method for getting the data to the printer, remember this is only half the battle. Unlike ink jet and dot matrix printers, laser printers won’t print a page until the entire page is in memory. The more pages you can cram into the printer’s memory, the faster the entire print job will print. Suppose you’re trying to print a 10-page document on a laser printer with very little memory. That printer will probably accept the document’s first page, print the page, and then flush the printer’s memory. Only after the printer’s memory has been flushed will the printer be able to accept the next page of the document. Even if that printer is connected to the print server with the fastest connection that money can buy, the printer’s speed will ultimately be determined by the amount of memory that it contains.

Let’s suppose that you were going to print the same 10-page document on a printer with lots of memory. This time, the print server dumps the job to the printer in one continuous data stream. Because the printer contains more memory, there are no delays while the printer flushes its memory and loads the next page of the job. In some cases, such high-speed performance can be achieved by merely adding as much memory to your printer as possible.

Creating a printer pool
To increase printing speeds, create a printer pool in which a single print queue services multiple printers. When a user sends a print job to the print queue, the first available printer services that job.

In some companies, when you need to print something, you walk around the building to see which printer is free. Of course, by the time you get back to your desk to send the print job, someone else may have already tied up the printer. In the meantime, you wasted time roaming the building in your quest for the elusive free printer.

By using a printer pool, such companies could speed up print time and productivity. There’s no guesswork; the user clicks the print button, and the document pops out of whichever printer becomes available first. Of course, there are a few things you need to know before creating a printer pool.

First, there’s no extra software to buy. Windows 2000 supports printer pooling straight out of the box; however, all printers involved must be the same type (or at least capable of using the same driver). Also, printer pooling works best when the printers involved connect directly to the print server (although this isn’t an absolute requirement). I strongly recommend placing the printers right next to each other so the users won’t have to run all over the building trying to find out where their jobs printed. It’s better to line up the printers in a row so it will be obvious which printer is processing the job.

Tweaking the print server
Most of the techniques I’ve mentioned involve making some hardware manipulations or a combination of hardware and software manipulations. I know sometimes there’s no budget for such modifications. So how about a purely software-related technique that won’t cost a dime to implement?

Remember that Windows 2000 is a true multiprocessing operating system. As such, Windows assigns various tasks specific amounts of system resources. Because of this, you can boost printing performance by increasing the amount of processing time and other resources that Windows assigns to the print server.

To do so, right-click the My Network Places icon and select Properties. You’ll see a window appear with icons representing each network connection. Right-click your primary network connection and select Properties from the resulting context menu. You’ll now see the network connection’s Properties sheet. Select File And Printer Sharing For Microsoft Networks and click the Properties button. When you do, a new screen will appear. From there, you can control the way that system resources are used for file and printer sharing. By default, the file and printer sharing mechanisms are set to minimize memory usage. If you have a cool server with memory to burn, put it to good use. Try experimenting with some of the other settings such as Balance Or Maximize Data Throughput For File Sharing. (Remember that printer hosting really is a form of file sharing.)

Although sharing printers is often an inefficient process, there are steps that you can take to prevent printer wait time from becoming a critical problem in your office. While not all of our IT budgets allow massive hardware and software upgrades to solve printing problems, there are some techniques you can use to achieve greater printing performance. In a follow-up Daily Drill Down, I will explain even more cost-saving techniques you can apply to achieve better printing performance.