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. > >