After watching Level1Techs' THE FORBIDDEN ROUTER II - DIAL-UP BY DAWN video, I wanted to do some DNS benchmarking on my local network.
Since I run Pi-hole locally, and rely on it for local DNS resolution, I wanted to have a baseline so I could compare performance over time.
In the video, Wendell mentioned the use of Gibson's Windows-only DNS Benchmark tool. But that's Windows-only. Or maybe Linux under WINE, but definitely not a native / open source tool that's easily used across different platforms.
I looked around and settled on bulldohzer—for now, at least—as it's easy to install anywhere Node.js runs. I have Node.js installed via Homebrew on my Mac, so I just ran:
npm install --location=global bulldohzer
Then I could run a benchmark against Google and my own local DNS resolver (Pi-Hole):
$ bulldohzer --dns 10.0.100.3 google Resolvers █ 10.0.100.3 DNS 10.0.100.3 1.5 ms 1.5 ms 1.9 ms ██████ █ Google DNS 220.127.116.11 13.7 ms 14.3 ms 14.5 ms ██████████████████████████████████████████████████ Response Times p5 ▅ 1.5 ms 🥇 10.0.100.3 DNS p50 ▁█ 1.5 ms 🥇 10.0.100.3 DNS p95 ▁█ 1.9 ms 🥇 10.0.100.3 DNS
I also saw many mentions of
namebench (like this blog post), but it seems like development on it stopped around 2016 or so, and there aren't any versions that run on modern Python (3.x) or macOS 64-bit...