sysctl maxfiles

Miroslav Lachman 000.fbsd at quip.cz
Sat Sep 27 20:13:39 UTC 2008


Jeremy Chadwick wrote:
> On Sat, Sep 27, 2008 at 11:10:01AM +1000, Aristedes Maniatis wrote:
> 
>>By default FreeBSD 7.0 shipped with the sysctls set to:
>>
>>kern.maxfiles: 12328
>>kern.maxfilesperproc: 11095

[...]

> Anyway, I'd like to know why you have so many fds open simultaneously in
> the first place.  We're talking over 11,000 fds actively open at once --
> this is not a small number.  What exactly is this machine doing?  Are
> you absolutely certain tuning this higher is justified?  Have you looked
> into the possibility that you have a program which is exhausting fds by
> not closing them when finished?  (Yes, this is quite common; I've seen
> bad Java code cause this problem on Solaris.)

I can imagine some webhosting machine running Apache virtualhosts. Each 
virtual host using 3 logfiles (access log, error log, IO log) so it is 
"only" about 4000 domains (virtualhosts) which is not so uncommon in 
these days ;)

I don't know what files are "really" open in the meaning of 
kern.maxfiles. I have webserver with about 100 hosted domains and there 
is some numbers:

root at roxy ~/# fstat -u www | wc -l
     9931
root at roxy ~/# fstat -u root | wc -l
      718
root at roxy ~/# fstat | grep httpd | wc -l
     6379
root at roxy ~/# fstat | grep httpd | wc -l
     6002
root at roxy ~/# fstat -u www | wc -l
     4691
root at roxy ~/# sysctl kern.openfiles
kern.openfiles: 846

All above taken within few seconds.

Can somebody explain the difference between kern.openfiles and fstat?

Miroslav Lachman


More information about the freebsd-stable mailing list