CPU/Load issues (FreeBSD, BIND 9.4.1)

Stefan Schmidt stefan.schmidt at freenet.ag
Thu Jul 5 10:04:59 UTC 2007

On Mon, Jul 02, 2007 at 07:28:33PM -0000, Gushi wrote:
> I have a server which answers authoritatively for about 20 zones, and
> is caching DNS for about 1000 recursive clients.  This server process
> occasionally eats 90 percent of the CPU and stops responding to {rndc,
> kill -HUP, kill}.  Both our DNS servers do this occasionally, but one
> FAR more than the other.

Back when i still used BIND for my recursive DNS Servers (its PowerDNS
recursor now) this problem was already around. [1]
Nowadays the ISC_MEM_USE_INTERNAL_MALLOC thing is the default for
BIND >=9.4 but i still think that disabling threading will prevent this
from happening, at least this is the effect it had for me for about a
year of BIND9 versions in a heavily loaded DNS cache cluster.

 * Define ISC_MEM_USE_INTERNAL_MALLOC=1 to use the internal malloc()
 * implementation in preference to the system one.  The internal malloc()
 * is very space-efficient, and quite fast on uniprocessor systems.  It
 * performs poorly on multiprocessor machines.

I found it also helps to blackhole{} bogon [2] networks for it takes the
load of trying to connect to a bogus IN NS of BINDs shoulders.
Do not set max-cache-size too low, the actually value you want depends
on the kind of usage you get. You will need a smaller pool for servers
asking basically the same questions over and over again ( i seriously
hope your webservers don't do hostname lookups ;-) and a really large
one for a DSL or other broadband customer base.

[1] http://zaphods.net/~zaphodb/high-performance-bind9.html
[2] http://www.cymru.com/Bogons/index.html

<RoMo> ich war x jahre emacs nutzer 

More information about the bind-users mailing list