Multithreaded BIND 9.9.0 on Linux - I'm confused

Eivind Olsen eivind at
Wed Apr 11 17:51:36 UTC 2012

I've read
but I'm somewhat confused. Perhaps this mainly hypothetical, of academic
interest, etc.

If I understand that article correctly, each listen-on line gets its own
pool of listener and worker tasks, so a 4-core machine will have 4
listener tasks, delivering to 4 worker tasks. But I don't understand how
this relates to the number of listen-on lines.

On a live server (running RHEL6, and BIND 9.9.0), "rndc status" tells me I
CPUs found: 12
worker threads: 12
UDP listeners per interface: 12

That server has 9 network interfaces (4 physical, 1 loopback, and 4
alias-interfaces). And one listen-on line (listen-on port 53 { any; };).
Does this mean 12 listeners * 9 interfaces = 108 listener threads + 12
common worker-threads? And if I were to have two listen-on lines instead
of 1, I'd double the amount of threads?

Will there be any real world advantage (or disadvantage) to specifying for
example a couple of specific listen-on statements instead of using the
listen-on any?

Eivind Olsen

More information about the bind-users mailing list