bind-9.5.0b1 problem on ppc64 : rbtdb.c:1532: REQUIRE(prev > 0) failed

Fajar A. Nugraha fajar at fajar.net
Tue Feb 5 03:42:53 UTC 2008


JINMEI Tatuya / 神明達哉 wrote:
> At Tue, 05 Feb 2008 09:44:49 +0700,
> "Fajar A. Nugraha" <fajar at fajar.net> wrote:
>
>   
>>>> First I build 32 bit rpm (ppc), which works fine on older ppc machine
>>>> (power4, CPU, 1GHz). This machine doesn't have the processing power
>>>> required for our needs. To give an idea of the workload, "rndc status"
>>>>         
>>> What other stuff is it doing? if it is only a DNS server, CPU means very 
>>> little, its memory that counts, however having said that, 
>>>       
>> It's a caching DNS server. In this case CPU matters a lot, as the old 
>> box tops at 100% CPU usage most of the time, and the new box is between 
>> 30% - 60% (when it's working).
>>     
>
> One possible workaround is to rebuild BIND9 by hand without threads.
> I guess you'll be just satisfied without the help of threads based on
> the above numbers.  Alternatively, you can build it with threads but
> without atomic operations:
>
> ./configure --enable-threads --disable-atomic
>
> I'd expect this with 2 threads still outperforms a non-threaded
> instance of named.  But make sure you specify a small number of worker
> threads (I'd recommend 2) by the -n command line option, because the
> lock overhead among many threads without atomic operations can easily
> outweigh the performance gain of concurrency.
>
>   
Hi Jinmei,
Thank you for your response.
So let me get this straight. For my 8-way system, the (currently) 
recommended setting to achieve max performance is :
- recompile bind, enable threads, disable atomic
- start bind with "-n 2" argument

Meaning that (again, currently) 6 of the 8 CPU will be unused by bind, 
right?
And that another option would be to disable threads altogether, and then 
I can use all my 8 CPUs?

>> The new box has 8G memory. However, named seeems to use only a little 
>> over 2G (this without any cache or datasize limit). Is there a way to 
>> make bind use, say 4-6G memory? When I tried setting max-cache-size to 
>> 4G, named refuses to start :-P
>>     
>
> In this case you should be fine with the current setting (i.e.,
> "unlimited", which actually means 2^32-1 bytes).
>   

Is this limit the same for 32 and 64 bit arch?
If I set (for example) :
- max-cache-size unlimited
- max-acache-size unlimited
- datasize 16G
does that mean bind can use up to 2*(2^32-1) bytes for caching?

> p.s. the ideal solution is to write atomic operations in
> ppc64-friendly assembly, of course, but right now we don't have that
> machine environment.
>
>   

Would it help if we provide a development environment for that purpose  
:-D ?
Regards,

Fajar




More information about the bind-users mailing list