January 20, 2005

LPRng terrors

Apparently the default settings for LPRng are terrible for large print server environments.

The number of lpd processes is limited to 3, and it rescans the queues only every ten minutes. I tweaked these greatly, and also a few other settings, and it seems to be acting better now. Around lunch, we were running a load average of between 5 and 10 (with one stalled job in one queue); after tweaking these, we’re consistently less than 1 again.

The settings in lpd.conf that I tweaked are:

  • lpd_poll_servers_started=75 (default: 3) — this is the maximum number of worker daemons that LPRng ever runs. We’ve got over 100 queues; three daemons servicing them just wasn’t going to cut it.
  • lpd_poll_time=30 (default: 600) — the number of seconds to wait after the worker processes finish before starting another queue scan. When there’s lots of printing going on, we don’t want ten minutes to go by before a job gets picked up.
  • lpd_force_poll (ON, default: OFF) — force LPRng to do queue scans.
  • exit_linger_timeout=10 (default: 600) — timeout to wait for a socket to close. Don’t let the network bog us down.

I also moved MINA from a 100Mbit connection to a gigabit port (swapped MIR and MINA’s ports). This seemed to help slightly, but the above tweaks are really what did it. The gigabit certainly can’t hurt for general performance and backups in particular.

Posted by Rowan Littell at January 20, 2005 02:31 PM