Too many open files (not only BIND 9.5.0-P1)

Mark Andrews Mark_Andrews at isc.org
Fri Jul 11 22:45:30 UTC 2008


> On Fri, Jul 11, 2008 at 10:54:47AM +0100, Stacey Jonathan Marshall wrote:
> > JINMEI Tatuya / ???? wrote:
> > > At 09 Jul 2008 21:44:47 +0100,
> > > Chris Thompson <cet1 at hermes.cam.ac.uk> wrote:
> > >  
> > >   
> > >> I have observed two occurrences of this with BIND 9.4.2-P1 running under
>  
> > >> Solaris 10_x86 even though plimit(1) clearly shows the named process 
> > >> has both soft and hard limits on file descriptors set to 65536:
> > >>
> > >> Jul  9 20:29:09 recdns0.csx.cam.ac.uk named[18018]: [ID 873579 local7.er
> ror] 
> > >>  general: error: socket: too many open file descriptors
> > >> Jul  9 20:29:25 recdns0.csx.cam.ac.uk last message repeated 758 times
> > >>
> > >> # plimit 18018
> > >> 18018:  /usr/local/BIND/bind/sbin/named -u namesrvr -c ../etc/named.conf
> > >>    resource              current         maximum
> > >> [...]
> > >>   nofiles(descriptors)  65536           65536
> > >>     
> > >
> > > What's the value of FD_SETSIZE?  Someone else reported that there's a
> > > system that has FD_SETSIZE defaulting to 256.
> > >
> > > I'd also like to know that how many sockets were actually opened when
> > > you saw the 'too many open file descriptors' errors.
> > >
> > > ---
> > > JINMEI, Tatuya
> > >
> > >   
> > /include/sys/types.h has it set to 256 under Solaris. That does appear 
> > to be the value that lib/isc/unix/socket.c would use.
> 
> How so? On my Solaris 10 systems, it looks like <unistd.h> eventually
> calls <sys/select.h> which sets FD_SETSIZE to 1024 (or 65536 in LP64):
> 
> 	/*
> 	 * Select uses bit masks of file descriptors in longs.
> 	 * These macros manipulate such bit fields.
> 	 * FD_SETSIZE may be defined by the user, but the default here
> 	 * should be >= NOFILE (param.h).
> 	 */
> 	#ifndef FD_SETSIZE
> 	#ifdef _LP64
> 	#define FD_SETSIZE      65536
> 	#else
> 	#define FD_SETSIZE      1024
> 	#endif  /* _LP64 */
> 	[...]
> 
> I've upgraded 2 of our campus caching resolvers to 9.4.2-P1. So far
> no problems. I've seen upwards of 500 open file descriptors but the
> number fluctuates signficantly and on average is far below that.
> 
> I am concerned about upgrading my primary resolver though, which
> is higher traffic. If I exceed 1024, what is the recommended action?
> Redefine FD_SETSIZE upwards and recompile? Recompiling in 64-bit
> sounds scarier.

	Named is regularly compiled as a 64 bit binary.  You just
	need to specify the right compiler flags and have 64 bit
	versions of the libraries it links in.

> --Shumon.
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: Mark_Andrews at isc.org


More information about the bind-users mailing list