CUPS LoadBalancing

Hey folks

I have a centralized CUPS server running on Rocky 8 with approx 50 printers, and have this shared out to a number of different clients (largely ‘host’ systems running our ERP software), all based on Rocky 8 and everything works nicely. cups version is cups-2.2.6-62.el8_10.x86_64 on clients and server.

Recently I’ve been trying to add an additional CUPS server, mainly for continuity reasons. To do this I followed the Redhat docs on setting up a centralized print server, and following this I noticed a few configs that needed tidied up to match the recommended setup. We have been using the existing centralized server for approx 3 years with no issues.

cupsd.conf on centralized server and clients

#
#
# Configuration file for the CUPS scheduler.  See `man cupsd.conf' for a
# complete description of this file.

# Log general information in error_log - change 'warn' to 'debug'
# for troubleshooting...
LogLevel warn

# Deactivate CUPS' internal logrotating, as we provide a better one, especially
# LogLevel debug2 gets usable now
MaxLogSize 0

# Increase number of max active/remembered jobs from 500 to 2000.
MaxJobs 2000

# Allow remote access
Port 631
Listen /var/run/cups/cups.sock
ServerAlias *

# Show shared printers on the local network.
# Enable printer sharing and shared printers.
Browsing Off
BrowseOrder allow,deny

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Informational, for web interface
ServerAdmin #SNIP#

# Restrict access to the server...
<Location />
  # Allow remote administration...
  Order allow,deny
  Allow @LOCAL
  #SNIP#
</Location>

# Restrict access to the admin pages...
<Location /admin>
  # Allow remote administration...
  Order allow,deny
  Allow @LOCAL
  #SNIP#
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  # Allow remote access to the configuration files...
  Order allow,deny
  Allow @LOCAL
  #SNIP#
</Location>

cups-browsed.conf on clients

BrowseProtocols None
BrowseLocalProtocols None
BrowseRemoteProtocols None
BrowsePoll cupsserver.localdomain
BrowseOrder Allow,Deny
LocalQueueNamingRemoteCUPS RemoteName
LoadBalancing QueueOnServers
HttpLocalTimeout 5
BrowseInterval 2400
BrowseTimeout  12000
DebugLogging file
LogDir /var/log/cups/browsed

I notice when I set the Browse…Protocol settings to None, CUPS no longer seems to honour the LoadBalancing QueueOnServers setting, which then causes print jobs to queue on the client, causing a ~5 second delay between print jobs. This isn’t an issue for most of our printers, but we do have a few high volume invoice printers and the delay is causing some grief.

If I set BrowseProtocols CUPS dnssd, the jobs spool from the clients almost immediately and queue on the server, but I don’t think this allows me to use the printer clustering.

Have I missed something with the config, or is the LoadBalancing setting not honored in this configuration?

Thanks
Mike

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.