Printer Load Balancing

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:

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:

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.

Example 1: Simple Load Balancing

Scenario

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.

Implementation

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:

  1. Navigates to Printerssci_laserSummary in the PaperCut NG administration interface.

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

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

  4. Clicks OK.

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.

Simple Load Balancing

Figure 11.5. Simple Load Balancing