Here’s a benchmark comparing pi-hole running on a Pi Zero (with USB ethernet) vs a Pi 3b+.

tl;dr There was negligible performance difference for blocked domains, but a measurable difference in mean for forwarded + cacheable domains. Although the Pi 3b+ has a 11ms better mean response time for forwarded queries, the P95 for pi zero is better in both blocked and forwarded queries.

I would recommend using the Pi Zero.

Hypothesis

Prior to the experiment, I assumed that the pi zero would be 30-50% slower in all cases, and that stddev would be larger (worse & more erratic latencies).

Hardware & Setup

Router: TP Link Archer C9 PI 3b+ : connected via 100mb ethernet into router, 32gb sandisk microsd card. Raspbian Desktop Pi Zero-W : connected via usb ethernet adapter, 100mb ethernet into router, 8gb class-4 sd card. Raspbian Lite

Method

I used dnstrace – a go dns benchmark. The client was a macbook pro connected via wifi. Each test did 1000 queries with 10 concurrency ( go run dnstrace.go -c 10 -s 192.168.0.201 -n 100 www.googletagservices.com )

Results

full histogram and results can be found here

BLOCKED Domain www.doubleclick.net

pi 3b+

 min:		 16.252928ms
	 mean:		 38.372412ms
	 [+/-sd]:	 23.097544ms
	 max:		 385.875967ms

pi zero

DNS timings, 1000 datapoints
	 min:		 19.922944ms
	 mean:		 40.043544ms
	 [+/-sd]:	 7.762346ms
	 max:		 71.303167ms

FORWARDED domain www.amazon.com

pi 3b+

DNS timings, 997 datapoints
	 min:		 13.1072ms
	 mean:		 19.527493ms
	 [+/-sd]:	 12.101107ms
	 max:		 142.606335ms

pi zero

DNS timings, 999 datapoints
	 min:		 16.252928ms
	 mean:		 30.097752ms
	 [+/-sd]:	 5.005948ms
	 max:		 88.080383ms

Summary and Findings

I believe the zero is an adequate replacement for the pi 3b+ . Moreover, I was impressed and shocked that stddev on the pi zero was lower than the 3b+. So despite having worse mean forwarding response times, the P95 for pi zero is better in both blocked and forwarded queries.

:star: I’ll leave these two devices online for a bit let me know if you’d like any further testing done. :star:

Updates

I’ve added benchmarks from a wired client to the gist results. The findings above are from the original wireless client.