How much does a DNS server consume?


As always here I am with my stupid questions.

I wonder if you guys always had an ultra-high usage DNS server with more than 1 million queries per minute, what was your usage for CPU/RAM/DISK?

I am really interested in the subject as it looks quite easy as a task to simply reply to queries.
So what system are you using (PDNS, Bind9) and what is your average usage?

Depends how bloated that peace of shit you trying to run is.
A selfmade golang can put 200k request per second on an entry level ryzen.

PowerDNS is pretty shit, without cache, it shits itself if you hit about 8k requests per second without cache.
No idea about bind9, I am not using such.

I could not yet bench nsd or gdnsd what I currently use.
But I will soonTM.

Memory wise, not much, could easy run on a 256MB KVM.

1 Like

Ah interesting, didn’t know PDNS was such a shit. I gonna look around what could be better 8k requests is like nothing.

The cache is enabled by default, so you should be fine.
If it hits the cache, it tanks a lot.

I used that tool to bench:

Usually explodes and catches fire if you try to push it over 10k requests.
So, you need some real shit, like such, called dnsperf, no idea if thats the right repo:

Need to be compiled yada yada but can easily handle 200k pps.

1 Like

I had to migrate the RBL portion of MXRBL from PowerDNS this week because the zone was too large to sync across the slaves. It wasn’t about firewall, it wasn’t about MySQL timeouts, it just said “Fuck you, I’m out.”

Yeah a lightweight DNS server like bind can probably serve on 1GB of memory. I might be exaggerating, or I might be dead on.

1 Like

What did you migrated too? To bind?

I moved the RBL to rbldnsd. Still using PowerDNS for the rest but I’m shopping around to see what I’ll replace the rest with.

1 Like

For memory usage when I was self hosting my DNS before moving back to CF, bind was quite high can’t remember how bad it was after switching to few different servers the lowest memory usage was Knot DNS.

Nsd memory usage is less than bind initially but would increase significantly after reloading zones.

I was using automatic DNSSEC signing on bind that might of caused the high memory usage on my setup.


gdnsd has been tested at 450k rps and did handle fine.

1 Like