Regarding Parallel Support

Dmitry Rybin kirgudu at corbina.net
Wed Aug 13 05:20:42 UTC 2008


David Sparks wrote:
> Dmitry Rybin wrote:
>> Matus UHLAR - fantomas wrote:
>>>> Matus UHLAR - fantomas wrote:
>>>>> On 11.08.08 18:54, varun srivastava wrote:
>>>>>>  I just wanted to know whether bind has some specific multi processor or
>>>>>> multi core support, to take advantage to the max ?
>>>>> bind supports threads which is what you want. Note that your OS has so
>>>>> support them too.
>>> On 12.08.08 15:23, Dmitry Rybin wrote:
>>>> Under heavy load bind with threads work unstable: Eat a lot of memory 
>>>> and became very slow.
>>> Maybe there are big timeouts when waiting for memory locks etc? There should
>>> be one thread per CPU, so all possible CPU power could be used, but I don't
>>> see any gain in having more threads on one CPU.
>>>
>>> Could you describe this problem a bit more?
>>>
>> OK... This is well known bug.
> 
> Where is it documented?  My servers suffered greatly from what seems to be 
> exactly this problem and we pulled our hair out trying to figure out how to 
> solve it.  max-cache-size just doesn't work in 9.4.
> 
> This issue seems to be gone in 9.5.

Work on hard loads doesn't change from 9.4 and 9.5 :( Did you see src 
code bind 9.5? It's terrible.

it is documented in bind mail list.
Bind works more nice with next changes:

1. dirty hack.
=====================
Mor quickly clean cache
lib/dns/cache.c
-#define DNS_CACHE_CLEANERINCREMENT      1000U   /*%< Number of nodes. */
+#define DNS_CACHE_CLEANERINCREMENT      200U   /*%< Number of nodes. */
=====================
Use ISC MALLOC
lib/isc/include/isc/mem.h
-#ifndef ISC_MEM_USE_INTERNAL_MALLOC
#define ISC_MEM_USE_INTERNAL_MALLOC 1
-#endif
=====================
Disable noisy log RFC 1918.
bin/named/query.c
warn_rfc1918(ns_client_t *client, dns_name_t *fname, dns_rdataset_t 
*rdataset) {
+       return;
         unsigned int i;
=====================

2. Use utility like monit, to stop and start bind, then it slow down and 
memory limit exhausted.

> 
> ds
> 
> 
>> === named.conf ===
>> [...]
>> options {
>> 	max-cache-size 500M;
>> 	};
>>
>> [...]
>> ==================
>> named with threads (8 threads, 1 thread per CPU)
>> Memory Usege grows very quickly. Top memory usage - system limit (2Gb), 
>> and then die (20-30 minutes under heavy load). After 500Mb-600Mb (limit) 
>> named became slow answer to queries, eat cpu time.
>>
>> named without threads
>> Memory Usege grows not so quickly. Top memory usage - system limit 
>> (2Gb), and then die (60-240 minutes under heavy load). After 500Mb-600Mb 
>> (limit) named became slow answer to queries, eat cpu time.
> 
> 



More information about the bind-users mailing list