Printer load balancing means distributing the printing load between two or more printers. While this can be implemented quite effectively by relying on users to pick a printer that is free, thereby distributing the load, the term generally refers to automatically managed load balancing.
Load balancing can be implemented in PaperCut NG as part of Find Me Printing as discussed in the proceeding section, or separately without the need for release stations in a direct printing environment. This section discusses load balancing in general including how it works, as well as how to set it up in a direct printing environment (without release stations).
Load balancing can be implemented at several different layers (none of which are usually mutually exclusive), including:
the hardware/network layer, otherwise known as clustering (see Chapter 20, Clustering and High Availability).
the operating system layer, known as printer pooling in Windows and Novell environments, and CUPS classes in Mac and Linux.
within PaperCut NG itself, which will be the topic of this chapter.
PaperCut NG adds value to the load balancing available in clusters and operating systems by ensuring equal load between printers. For comparison the primary objective of Windows printer pools is to provide fault tolerance while load balancing is secondary and to a large extent non-existent. Printer pooling on Windows will often simply pick the first available printer in a predefined order. The result is that wear and tear of printers is not even; the first printer in the group will see the heaviest usage and the others may be mostly idle. System administrators often mitigate this by rotating printers periodically. With load balancing in PaperCut NG none of this is necessary: jobs are distributed evenly between queues based on intelligent algorithms taking into account several factors:
An estimate of the current print load (i.e. pages remaining to print) by inspecting past print history. The estimate is done by using a Pages Per Minute (PPM) for an average printer, however PaperCut NG will improve on the PPM value by "watching" the printer and learning over time.
The printer that is likely to get the job done quickest is selected.
If all printers are currently equal (e.g. all idle), then a random printer is selected. This ensures that over time, load is distributed evenly.
Printers currently in an error condition are avoided if possible.
Find Me Printing also makes use of printer load balancing while giving users the option of where to send their print job. For more information about Find Me Printing see the section called “Find Me Printing”.
Implementing load balancing in PaperCut NG is best described by way of example. The following section covers a common scenario for implementing printer load balancing.
The science department at East Beach High School has a computer lab with a high volume of printing. Students send their print jobs to the nearby print lab, which hosts two high volume laser printers of the same model.
The current print queues are named sci_laser_1
and sci_laser_2
, and are hosted
on the print server called science-lab
. Both queues use the same printer driver and
settings.
In this scenario there is some natural form of load balancing, as students may select a queue at random or perhaps know which queue is available. Ideally this load balancing would be automatic, and students would not need to concern themselves with which queue to select.
The first step is to create a new print queue on the print server. This queue will be a virtual queue. Students will print to this virtual queue, and PaperCut NG will handle the load balancing to the target ("real") queues.
A new queue simply called sci_laser
is created by the administrator on the
science_lab
print server using the normal methods for the operating system in use. The
queue is created using the same driver that sci_laser_1
and sci_laser_2
use.
The queue points to the same physical printer that sci_laser_1
points to. This last point
is not strictly necessary but some printer drivers complain if they do not point to a real printer.
The administrator ensures that the print queue has registered itself with PaperCut NG by checking the Printers tab of the administration interface. Information about adding printers can be found in the section called “Adding and Removing/Deleting/Ignoring Printers”.
Following creation of the new queue the administrator performs the following:
Navigates to
→ → in the PaperCut NG administration interface.Changes the Queue type option to This is a virtual queue (jobs will be forwarded to a different queue). This reveals the Job Redirection Settings section.
The option Jobs may be forwarded to these queues: determines which queues
sci_laser
is capable of redirecting to. The queues science-lab/sci_laser_1
and science-lab/sci_laser_2
are selected.
Clicks
.
Now when students print from a lab computer to the virtual sci_laser
queue PaperCut NG will
intelligently redirect the job to either sci_laser_1
or sci_laser_2
, as
illustrated by Figure 11.5, “Simple Load Balancing”.
The administrator may now optionally un-share the sci_laser_1
and sci_laser_2
queues. Doing so ensures that all printing will be via sci_laser
and hence load balanced.
© Copyright 1999-2009. PaperCut Software International Pty Ltd. All rights reserved.