High Volume, Many Printer setup

Kelly Sauke ksauke at fastenal.com
Thu May 26 13:17:25 PDT 2005


So we have been seeing some issues in our testing of CUPS for a high availability setup.  I was wondering if anyone can shed some light on our situation and help us get around some
of these issues.


Here is what we are seeing.  First the configuration. We have 2 print server machines (cups01 and cups02) configured with 360 printers on each (final config will include over 700
on each).  Both machines have the same 360 printers defined.  We have 1 client machine that is set up to print to these by using the BrowseAddress on the servers and
ImplicitClasses functionality on the client.


1).  If one of the cups machines goes down, when the client hits the BrowseTimeout it starts removing the printers from that host.  While the client is removing all the printers,
all other printing commands (lp, lpstat, etc) lock up and wait for this process to get done.  This essentially hangs all users because they wait for the lp commands to come back
before their programs continue.  I have noticed that if we bump up the BrowseInterval and BrowseTimeout we can get rid of a lot of this hang situation, however then we start
running into #2.

2).  Say we bump the BrowseTimeout up so that printers don't get removed right away if one of the servers goes down.  Now say cups02 is down but the printer definitions still exist
on the client (because it hasn't hit the BrowseTimeout yet).   I queue multiple jobs to the same printer.  The first job will get sent to cups01.  Say that job takes a long time to
print.  The next job queued to the same printer gets sent to the down cups02.  After about 5 seconds, this job is canceled by cups instead of staying in the queue to go to cups02
when it comes back or going to cups01 when it has finished printing.  Shouldn't this job stay queued while there is a valid printer definition?  I can post the logs from the client
showing the job cancellation if that would be helpful.

In our environment, its crucial tha we don't just loose print jobs as most of them are labels directing warehouse employees where to pick product or where to ship product.


So based on what I've written
-Any idea if we can get around one or both of the issues above?
-Can anyone suggest an alternative highly available configuration for our printing needs?

I've downloaded version 1.1.23 and compiled it on all machines.  cups0[12] are RHEL4 and the clients are RHEL3.

Also, both cups01 and cups02 are dual 3Ghz machines with 3G of ram.  The particular client we were testing with is a dual 3Ghz with 4G and the production clients will be 4 way 3Ghz
with 8G of ram.

Thanks in advance for any insight you can shed on our configuration.

-KS




More information about the cups mailing list