← Back to comparison

Pi-hole FTL

Port: 15757 | Image: pihole:bench

Results by Scenario

Cache hit

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
Google 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
Google 870.53 103.74 0.23 26438 33.35
OpenDNS 949.21 96.92 0.14 28859 33.79

Cache miss

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
Google 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
Google 199.55 100.27 0.04 6000 52.95
OpenDNS 199.59 102.58 0.03 6000 54.52

Mixed

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
Google 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
Google 869.68 99.51 0.29 26444 67.47
OpenDNS 923.79 99.68 0.16 28001 70.41

Blocked

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
Google 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
Google 861.35 102.51 0.26 26321 94.73
OpenDNS 906.64 100.25 0.19 27592 99.05

Methodology

Transport Protocol Confound

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.

Warmup

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.

Test Parameters