9.2.5 db causes high cpu? was: Re: BIND 9.2.5rc1 is now available.

Stefan Schmidt zaphodb at zaphods.net
Mon Feb 21 02:13:56 UTC 2005

Hi Brad,

On Sun, Feb 20, 2005 at 05:33:22PM +0100, Brad Knowles wrote:
> 	In the case of the OP, he's pointing out issues that he's running 
> into with BIND9 when trying to use it pretty much the same way as he 
> is using BIND8 on all of his other machines, and this is a clear 
> indicator of an issue that needs to be addressed within the code.

If by OP you reference to me as being an Operator and bringing this issue to
the lists attention, yes, that is true for this resolver-cluster. I was aware
that there were performance problems with BIND9 running threaded from previous
experiments and that it would eat up more memory than BIND8, but with this
actual comparison i must say it was even worse than i had anticipated.

> 	If you had said "moderate CPU usage and moderate memory usage", I 
> might have bought that argument, even considering that the threading 
> model is one of the big advantages that BIND9 is supposed to have 
> over BIND8.  But throwing out threading and using excessive memory is 
> not an adequate solution for this testing, even if we can get the CPU 
> utilization down.

To throw my two (euro) cents in:
Perhaps it is possible to make BIND9 modular so that at compiletime one can
choose whether to have either a recursor, an authorative-only daemon or both
and make it possible to decide whether we need nifty things like views or not
on this instance. I heard the NPTL library did wonders for mysqls query
performance, maybe its worth having a look at the structures of that piece
of software.

And to add some fun to the discussion:
A collegue of mine has written a RADIUS server for our internal use - it is
singletasking, config language is TCL and using Bekeley DB as database
backend. He measures query times in (tens of) _microseconds_, i was puzzeled
when he told me he was not speaking of milliseconds. ;)

> 	Threading is not about speed, at least not on a single CPU 
> system.  Threading in BIND9 is about the other things it can do for 
> you, while providing roughly comparable straight-out performance.

Threading is fine as long as it does not scale O(n^2). I have seen tendencies
to that with BIND9.

> 	Now, when you talk about SMP machines, threading in BIND9 should 
> definitely provide better performance than a single instance of BIND8 
> on the same machine, and it should be able to provide roughly 
> comparable performance to a number of BIND8 instances equal to the 
> number of CPUs in the system.

To clarify on what i was reporting lately as there seems to be some confusion
about it:
I followed Jinmei's recommendation of disabling threads and trying to run just
one BIND9 process at first. So i am currently measuring 2 BIND8 processes
against 1 BIND9 process on two identical machines. Before that i switched the
machine in question from running 2 BIND8 processes to 1 BIND9 processes but
with threading enabled. Therefore is was not comparing a threading BIND9 with
a single BIND8 process (yet).

69. Ferengi are not responsible for the stupidity of other races.

More information about the bind-workers mailing list