Hey everyone,
I recently benchmarked two versions of Pi-hole under heavy load using a custom multithreaded Python DNS tester. I also included dnsmasq (standalone) as a baseline to see how raw DNS performance compares without filtering.
Tested:
- Pi-hole (FTL v6) — running on a Raspberry Pi 5 (8 GB RAM)
- Pi-hole (FTL v5) — running on a Raspberry Pi 3B
- Dnsmasq (forwarding to piholes) — stripped-down DNS service with no filtering
All resolvers were tested in the same local network environment under identical conditions.
Results Summary
Resolver | Avg Latency | Spikes Observed | Notes |
---|---|---|---|
dnsmasq (forwarding) | ![]() |
Minor blips (~500 ms) | Pure baseline, extremely fast |
Pi-hole (FTL v5) | ![]() |
Rare spikes (~400 ms) | Solid performance on a Pi 3B, v5 |
Pi-hole (FTL v6) | ![]() |
Frequent (~2000 ms) | Tested on Pi 5 8 GB, but heavier engine caused jitter |
Graph Comparison
Each point shows a single DNS query’s response time, plotted chronologically.
Pihole v5
Pihole v6
Dnsmasq
Test Setup
- 149 threads × 150 queries = 22,350 DNS lookups per resolver
- Domains: Google, OpenAI, YouTube, Apple, GitHub, etc.
- Tool: Custom Python script with
dnspython
and timing - Same LAN, same test machine for all runs; only Pi-hole nodes varied but all wired
Cheers