Port: 15757 | Image: pihole:bench
All queries resolve from server cache — measures peak throughput.
| Provider | QPS | Avg (ms) | Lost % | Total Qrys | Base Mem (MB) |
|---|---|---|---|---|---|
| Quad9 | 915.64 | 101.25 | 0.19 | 27604 | 31.81 |
| Cloudflare | 774.49 | 106.47 | 0.45 | 23421 | 32.90 |
| 881.08 | 98.97 | 0.26 | 26900 | 31.74 | |
| OpenDNS | 907.44 | 99.80 | 0.19 | 27561 | 33.85 |
| Quad9 | 891.93 | 99.06 | 0.26 | 26910 | 33.93 |
| Cloudflare | 889.56 | 102.07 | 0.20 | 26831 | 33.57 |
| 870.53 | 103.74 | 0.23 | 26438 | 33.35 | |
| OpenDNS | 949.21 | 96.92 | 0.14 | 28859 | 33.79 |
Every query requires full upstream resolution — measures worst-case performance. In common-denominator mode some servers report near-zero QPS when plain-DNS upstream forwarding fails.
| Provider | QPS | Avg (ms) | Lost % | Total Qrys | Base Mem (MB) |
|---|---|---|---|---|---|
| Quad9 | 181.58 | 124.55 | 1.14 | 5520 | 49.68 |
| Cloudflare | 199.23 | 108.06 | 0.12 | 5999 | 49.57 |
| 199.42 | 100.84 | 0.11 | 6000 | 51.05 | |
| OpenDNS | 199.58 | 101.08 | 0.03 | 6000 | 53.54 |
| Quad9 | 184.89 | 109.25 | 1.50 | 5643 | 51.31 |
| Cloudflare | 199.35 | 107.96 | 0.12 | 6000 | 52.74 |
| 199.55 | 100.27 | 0.04 | 6000 | 52.95 | |
| OpenDNS | 199.59 | 102.58 | 0.03 | 6000 | 54.52 |
90% cached + 10% unique domains — simulates real-world mixed workload.
| Provider | QPS | Avg (ms) | Lost % | Total Qrys | Base Mem (MB) |
|---|---|---|---|---|---|
| Quad9 | 898.52 | 100.33 | 0.21 | 27092 | 64.83 |
| Cloudflare | 867.49 | 100.98 | 0.29 | 26191 | 64.77 |
| 902.35 | 104.18 | 0.12 | 27249 | 64.47 | |
| OpenDNS | 871.72 | 100.06 | 0.28 | 26543 | 68.30 |
| Quad9 | 870.01 | 101.96 | 0.25 | 26253 | 67.05 |
| Cloudflare | 863.64 | 98.97 | 0.34 | 26068 | 67.38 |
| 869.68 | 99.51 | 0.29 | 26444 | 67.47 | |
| OpenDNS | 923.79 | 99.68 | 0.16 | 28001 | 70.41 |
Domains on the sinkhole blocklist — measures filtering throughput.
| Provider | QPS | Avg (ms) | Lost % | Total Qrys | Base Mem (MB) |
|---|---|---|---|---|---|
| Quad9 | 598.53 | 100.73 | 1.39 | 18267 | 92.34 |
| Cloudflare | 850.02 | 103.72 | 0.28 | 25672 | 90.91 |
| 816.62 | 111.89 | 0.21 | 24813 | 90.49 | |
| OpenDNS | 882.83 | 102.13 | 0.20 | 26948 | 93.40 |
| Quad9 | 717.41 | 101.19 | 0.76 | 21981 | 93.32 |
| Cloudflare | 871.01 | 100.72 | 0.31 | 26289 | 94.73 |
| 861.35 | 102.51 | 0.26 | 26321 | 94.73 | |
| OpenDNS | 906.64 | 100.25 | 0.19 | 27592 | 99.05 |
This server uses plain DNS (UDP 53) for best-of-breed mode. Comparisons against servers using different protocols (DoH, DoT, plain) partly reflect protocol overhead. The common-denominator mode forces all servers to plain UDP 53 to isolate server-side performance.
Before each scenario, a 5-second dnsperf warmup pass is run
to stabilize connections and fill the TCP congestion window. For
cache-hit and mixed scenarios, the server cache is also pre-warmed.
The measurement window (-l 30) begins only after both
warmup phases complete.
dnsperf -l 30 -c 10 -q 100 -Q 5000 -S 1