[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