Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Mar 2012 17:55:48 +1030
From:      Shane Ambler <FreeBSD@ShaneWare.Biz>
To:        "C. P. Ghost" <cpghost@cordula.ws>
Cc:        prabhpal@digital-infotech.net, freebsd-stable@freebsd.org
Subject:   Re: Too many open files
Message-ID:  <4F7019FC.4090907@ShaneWare.Biz>
In-Reply-To: <CADGWnjWTNviAyfReZ-fy0rhF=DKsA57rCscYtsU=v25rTMq5Xw@mail.gmail.com>
References:  <a8f31306b066f86beabc61fce1e2b5fb.squirrel@mail.digital-infotech.net> <CADGWnjWTNviAyfReZ-fy0rhF=DKsA57rCscYtsU=v25rTMq5Xw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 26/03/2012 02:19, C. P. Ghost wrote:
> On Sun, Mar 25, 2012 at 6:46 PM, Prabhpal S. Mavi
> <prabhpal@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@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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F7019FC.4090907>