[cups.general] Unable to create job status pipes -Toomany openfiles.

Michael Sweet mike at easysw.com
Tue Mar 14 08:49:36 PST 2006


Joost Cogels wrote:
> 
> 
> Michael Sweet wrote:
>> Joost Cogels wrote:
>>> Michael Sweet wrote:
>>>> Joost Cogels wrote:
>>>>> Hi,
>>>>>
>>>>> We are currently running into problems with the cups-1.2b2-rhel4 
>>>>> package, used in combination with Samba to provide printing 
>>>>> services to Windows clients. CUPS seems to run fine for a while, 
>>>>> but after a while it stops printing. The following lines can be 
>>>>> found in /var/log/cups/error_log:
>>>>>> E [14/Mar/2006:14:01:33 +0100] Unable to create job status pipes - 
>>>>>> Too many open files.
>>>>>>
>>>>>> E [14/Mar/2006:14:03:19 +0100] Unable to open "/dev/null" - Too 
>>>>>> many open files.
>>>>> Any idea what could be causing the "Too many open files" errors?
>>>>
>>>> How many clients are connected when you see this message?
>>> CUPS is configured for up to 100 clients. Maximum clients connected 
>>> should be no more then about 25.
>>>>
>>>> How many active jobs do you have?
>>> Active Jobs average will be about 10 per minute I guess.
>>
>> Um, that's a lot for such a low number of clients.  Are you sure?
> The users are in our case the servers from which the jobs are submitted, 
> plus a few workstations.
>>
>>>>
>>>> Have you set MaxClients to any particular value in cupsd.conf?
>>> MaxClients is not set in cupsd.conf.
>>>>
>>>> What does "limit" show?
>>>>
>>> Michael,
>>>
>>> At first lots of the following messages get logged:
>>>
>>> Started backend /usr/lib/cups/backend/socket (PID 7882) for job 68531.
>>> Started backend /usr/lib/cups/backend/socket (PID 7883) for job 68532.
>>>
>>> After a while the system grinds to a halt:
>>
>> How many printers do you have?
> 138

OK, 138 * 10 = 1380, more than the number of file descriptors you
have available (I'm guessing this since you didn't post your limit
output which would show the system defined hard limit...)

You'll need to do any of the following:

     1. Add a FilterLimit directive with a value of 5000 (should
        limit things to about 50 jobs printing at the same time)

     2. Reduce the number of printers on this server, splitting them
        up among multiple servers.

     3. Reduce the number of jobs you submit.

I'm guessing that #1 will take care of things, but there is the
potential for backlog as cupsd may not be able to keep up with
all of the jobs (that is, it will queue them just fine, but it
may not be able to pass them to a printer fast enough to keep
up with new jobs coming in...)

That said, if you aren't using printer drivers (just raw queues),
then the FilterLimit stuff won't work because the limit is based
off filter costs; perhaps we need to set the minimum cost per job
to 100 for this?

-- 
______________________________________________________________________
Michael Sweet, Easy Software Products           mike at easysw dot com
Internet Printing and Document Software          http://www.easysw.com




More information about the cups mailing list