[cups.general] Problem with LARGE jobs finishing

Kurt Pfeifle kpfeifle at danka.de
Thu Aug 10 07:19:58 PDT 2006


Minatra, Pat H. <pminatra at hsutx.edu> wrote (Thursday 10 August 2006 15:44):

> We are now starting to have problems with large jobs finishing. 

Which version of CUPS? Which OS? Self-compiled or distro packages?
Which version of Ghostscript?
Which printer, which driver, which PPD?

> We have 
> a 2 Mgb print job that will not finish.  It has been in queue for over
> 12 hours and keeps restarting. 

What kind of file are you trying to print?

> We did NOT have this problem until we 
> changed our FilterLimit variable in the cupsd.conf file in /etc/cups.
> Prior to that, the value of FilterLimit was at 0 (i.e. unlimited) and it
> was choking our cpu almost to a dead stand still. 

That shouldn't happen either (except for very rare, justifiable 
cases), unless you print *lots* of jobs concurrently to multiple 
queues.

> We changed the value 
> to 500 and had immediate improvement; now, about a week later, the large
> jobs are not processing as they should.

FilterLimit should not have any effect on how "large" a job is in
terms of file sizes.

Each filter run by CUPS has a virtual cost associated to it (see the
3rd field in the mime.convs file, and "man mime.convs") for its
respective conversions.

FilterLimit makes cupsd stop running more jobs (and filters) as soon
as the given limit is exceeded by the currently running filters. 
(Once a currently running filter process is complete and done, and 
if FilterLimit permits, the next job will be started).

"FilterLimit 200" allows roughly 1 job at a time, while a FilterLimit 
of 500 allows approximately 2-3 concurrent jobs.

If, say, the "pstops" filter consumes a cost of 66 (according to the
default mime.convs setting), this cost is the same "66" for a 1 kByte 
PostScript file as it is for a 4 MByte PostScript file.

I suspect your problem has nothing to do with FilterLimit per se.

What happens if you use a value of 1000 or 2000 instead of 500?

> I am not sure which way to turn on this as I could go open up the
> FilterLimit to 0 but then my users would not be able to work and the job
> would complete in a most timely manner.  Since I do not know and have
> not been able to find out what the FilterLimit specifically addresses
> (swap file or something else?), 

See also

  http://www.google.com/search?rls=en-us&q=FilterLimit+cups
  http://www.cups.org/documentation.php/ref-cupsd-conf.html?TOPIC=References&QUERY=#FilterLimit

> I do not know what to do or how to 
> handle.

Can you print the 

Can you run cupsd in "LogLevel debug", and

 * ...print the file again and watch (with "ps" or "top") which one
   of the CUPS filters creates the CPU load? 

 * ...see what kind of messages does this filter writes into the 
   error_log file?

Cheers,
Kurt




More information about the cups mailing list