A while back I migrated DNS from some old PC servers running NetBSD and
bind 9 to some new shiny Sun X4200's running Solaris 10 and bind 9
(Sun's installed version).

One of the first thigs we noticed on the internal DNS servers that allow
recursion is that the maximum number of recursive clients was being hit
regularly. I upped the value a few times, eventually settling on 4000 as
that seems to have stopped the messages.

On one of these servers I am now seeing a lot of:

socket: too many open file descriptors

.... errors in the messages log! Curious because even if we were at the
limit of 4000 clients, the current limit on file descriptors is ...

dns# plimit 354
354: /usr/sbin/named
resource current maximum
time(seconds) unlimited unlimited
file(blocks) unlimited unlimited
data(kbytes) unlimited unlimited
stack(kbytes) unlimited unlimited
coredump(blocks) unlimited unlimited
nofiles(descriptors) 65536 65536
vmemory(kbytes) unlimited unlimited

65,536! Which would mean each and every recursing query using 16 file

Or is there a different lower limit on sockets? I have not heard of such
a thing?

Have I set the recursing limit higher than the FD_SETSIZE for select
(being 1024 for 32-bit apps on Solaris), can that be the problem?
Doesn't look that way as the perror states socket!

Any ideas welcome!


Barry Dean
Networks Team