memory consumption limit?

Pavel Urban urbanp at mlp.cz
Sat Sep 10 06:27:32 UTC 2005


First, thanks for your answer!

I don't know how to detect how much memory is consumed by which data... 
Anyway, this machine is indeed both slave (authoritative) nameserver and 
caching nameserver. Right after starting Bind and loading/transferring 
zones from master, there is about 25% of memory consumed. So it seems 
like cache is the problem; memory consumation goes slowly up over days 
and fills up to 85%. Then the machine acts slow and drops some requests.

I could buy more memory, but the second server with 1GB RAM suffers from 
the same problem. I thought 'max-cache' would keep cache size at least 
around the limit I've set, but it probably isn't true.

I'll consider buying another machine and try to separate authoritative 
and caching DNS...

Thanks again!

Kevin Darcy wrote:

> How much of that memory is used by the cache, and how much of it is used 
> by authoritative data (you said this was the configuration from a 
> slave)? There isn't a lot you can do about the memory consumption of 
> authoritative data, short of actually deleting records from your zones. 
> For cache, though, you can, in addition to max-cache and 
> cleaning-interval -- as you've already tweaked -- play with 
> max-cache-ttl and max-ncache-ttl, although do so carefully because the 
> performance impact of lowering your cache hit ratio can be significant. 
> In theory, one can "model" the impact of playing with max-cache-ttl 
> and/or max-ncache-ttl somewhat by analyzing cache dumps and querylogs 
> (anyone care to write a utility to do this?), prior to actually 
> committing anything to production.
> 
> Ultimately, if you find that your authoritative data is squeezing the 
> amount of memory available for caching, you might want to consider 
> separating the caching and authoritative nameservice onto different 
> machines. This separation is recommended for security and other reasons 
> anyway. Memory usage on an authoritative-only nameserver hardly 
> fluctuates at all, compared to a caching nameserver, so you'd just need 
> to size the authoritative-only only box(es) according to how much 
> authoritative data you have today, plus whatever expansion of hosted 
> data you expect in the future.
> 
> Another possibility is to recompile BIND with threading disabled. It's 
> possible that a non-multi-threading named might have better memory 
> characteristics on RedHat.
> 
> Then again, you could just buy a memory upgrade for the machine...
> 
> 
>                                                                          
>                                                 - Kevin
> 
> P.S. You want a link? Here's a link: 
> http://john.redmood.com/osfastest.html. I'm not sure who Jeffrey Rothman 
> and John Buckman are, but they seem to prefer Solaris over RedHat for 
> running DNS services. As a moderate-to-strong Solaris snob, I tend to 
> concur :-)
> 
> 
> Pavel Urban wrote:
> 
> 
>>Hello,
>>
>>we're running Bind 9.3.1 on RedHat Linux version 3, ES. After several 
>>days we end up with all memory consumed and DNS nearly unresponsive. We 
>>have one master and two slaves; this is a part of our configuration from 
>>one slave:
>>
>>options {
>>        directory "/var/named";
>>        /*
>>         * If there is a firewall between you and nameservers you want
>>         * to talk to, you might need to uncomment the query-source
>>         * directive below.  Previous versions of BIND always asked
>>         * questions using port 53, but BIND 8.1 uses an unprivileged
>>         * port by default.
>>         */
>>        #query-source address * port 53;
>>        allow-transfer { 194.228.2.61/32; 193.85.7.100/32; 
>>193.85.1.12/32; 194.228.1.194/32; 194.228.2/24; };
>>        allow-recursion { 127.0.0.1; 194.228/16; 192.168/16; 172.16/12; 
>>10/8; 80.188/16; 83.208/16; 85.70/15; };
>>        notify yes;
>>        recursion yes;
>>        max-transfer-time-in 8;
>>        transfer-format one-answer;
>>        transfers-in 80;
>>        transfers-out 80;
>>        transfers-per-ns 40;
>>        coresize default;
>>        max-cache-size 200M;
>>        files 1024;
>>        stacksize default;
>>        cleaning-interval 30;
>>        interface-interval 0;
>>        recursive-clients 50000;
>>};
>>
>>
>>This is 'top' output from the same machine:
>>
>>46 processes: 44 sleeping, 2 running, 0 zombie, 0 stopped
>>CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle
>>           total   58.2%    0.0%    1.9%   0.5%     1.5%    5.9%   31.5%
>>Mem:   511736k av,  505212k used,    6524k free,       0k shrd,    2988k 
>>buff
>>                    385208k actv,   72524k in_d,    9404k in_c
>>Swap: 1052248k av,  486172k used,  566076k free                    8668k 
>>cached
>>
>>  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
>>22312 named     25   0  473M 435M  1136 R    59.6 87.2  3610m   0 named
>>22314 named     15   0  473M 435M  1136 S     0.3 87.2 209:11   0 named
>>
>>
>>Can you give me a tip what to tweak, or a link to the proper article/web 
>>page? Thanks!
>>
>> 
>>
> 
> 
> 
> 
> 
> 


-- 
***********************************************************************
Pavel Urban (pavel.urban at imaginet.cz)
IOL system disaster
Internet OnLine, owned by Cesky Telecom, a.s. (www.ct.cz)
***********************************************************************
    Vegetables should not operate electronic equipment.
           Computer Stupidities, http://rinkworks.com/stupid/
***********************************************************************



More information about the bind-users mailing list