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