On 27. 04. 22 16:04, Matt Corallo wrote:
I run a number of BIND9 (9.16-27-1~deb11u1 - Debian Stable) secondaries with some large zones (10s of DNSSEC-signed zones with ~100k records, not counting signatures, with a smattering of other zones). Somewhat to my surprise, even with "recursion no" the memory usage of instances is highly correlated with the hosts's available memory - BIN9 uses ~400M RSS on hosts with 1G of non-swap memory, but 2.3G on hosts with 4G of non-swap memory, all with identical configs and the same zones.

Before we dive in, the general recommendation is:

"If you are concerned about memory usage, upgrade to BIND 9.18." It has lot smaller memory footprint than 9.16.


It can have many reasons, but **if the memory usage is not growing without bounds** then I'm betting it is just an artifact of the old memory allocator. It has a design quirk which causes it not return memory to OS (if it allocated in small blocks). As a result, the memory usage visible on OS level peaks at some value and then stays there.

If that's what's happening you should see it in internal BIND statistics: Stats channel at URL /json/v1 shows value memory/InUse which will be significantly smaller than value seen by OS.

In case the two values are close then you are seeing some other quirk and we need to dig deeper.

Petr Špaček

P.S. BIND 9.18 does not suffer from this, so I suggest you just upgrade and see.




I can't seem to find any references to anything in the ARM which would allow tuning of memory usage for non-recursive servers, and the only real reference to anything about memory I could find was "max-cache-size". The entire bind config follows:

zone "." { type hint...}
zone "localhost/127/0/255.in-addr.arpa" { type master; ... }

zone "zones.catalog" { type slave; file ...; masterfile-format text; masters { .. }; notify no; }; zone "zones2.catalog" { type slave; file ...; masterfile-format text; masters { .. }; notify no; };

options {
     dnssec-validation auto;



     listen-on-v6 { any; };

     allow-transfer { none; };

     notify explicit;



     recursion no;

     max-journal-size 4096;

     max-cache-size 8M;

     zone-statistics yes;



     masterfile-format raw;



     catalog-zones {

         zone "zones.catalog"

             default-masters { ... }

             in-memory no

             min-update-interval 10;

         zone "zones2.catalog"

             default-masters { ... }

             in-memory no

             min-update-interval 10;

     };

};

Thanks,
Matt

--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to