Too many open files

Shane Ambler FreeBSD at ShaneWare.Biz
Mon Mar 26 07:28:06 UTC 2012


On 26/03/2012 02:19, C. P. Ghost wrote:
> On Sun, Mar 25, 2012 at 6:46 PM, Prabhpal S. Mavi
> <prabhpal at digital-infotech.net>  wrote:
>> Greetings Friends,
>>
>> have anyone has come across this warning / error? This occurs when i ssh
>> to my FreeBSD 9.0 System. any help would be greatly appreciated.
>>
>> Warning:
>> /usr/share/games/fortune/freebsd-tips.dat: Too many open files in system
>> [mavi at titan ~]$ su
>> su: pam_start: system error
>>
>> Thanks / Regards
>> Prabhpal
>
> What does this command say on your system?
>
> % sysctl kern.maxfiles kern.maxfilesperproc kern.openfiles
>
> You may have exceeded the maximum number of open files
> in the system. Maybe some ill-conceived program that doesn't
> close non-needed connections, files, etc is at fault? It's easy
> to open more and more files, and to gradually fill the open
> files descriptor table in the kernel this way.
>
> -cpghost.
>

 From knowing that you have too many files open you can increase the 
maxfile numbers - but if you want to know what uses them try this -

lsof -n | awk '{print $2 "\t" $1}' | sort | uniq -c | sort

lsof outputs open file info, awk then gives us the PID and proc name 
which gets sorted and uniq gives a count of each which we sort to have 
the largest file count at the bottom of the list. What you end up with 
is a list of two numbers and a name - count of files open followed by 
the PID and proc name that has them open.

The catch is that it also includes network connections (I know how to 
list only network but not sure how to exclude them)

ps ax | grep PID

will show you the full program name if it has been shortened.

lsof -p PID

will show all the open files for PID

Not sure if this is the best way but it works for me.


More information about the freebsd-stable mailing list