Made a quick test of mesh VPN clients. Test was performed between host and a VM, both running Kubuntu 23.04. VM ran on KVM with a virtio network adapter.
Test machine is oldish laptop with an i5-2540M, so VPN performance was probably CPU bound. Still, tests help to understand how different mesh VPNs compare against each other.
Tailscale surprisingly was the fastest, even faster than plain Wireguard, despite being userspace. But it also consumed more memory (245 MB after the iperf3 test!) and CPU.
Netbird’s CPU usage is so low I almost doubt if that’s fair comparison, most usage might be by kernel, since it uses kernel Wireguard. I don’t know how to measure that better. Memory usage is moderate. For some reason it wasn’t as fast as plain Wireguard.
Zerotier has the lowest memory usage, but is the slowest. Although this would probably only matter on LAN. Hope upcoming v2 closes the gap.
Tailscale | Netbird | Zerotier | Wireguard | Raw | |
---|---|---|---|---|---|
Version | 1.48.2 | 0.23.3 | 1.12.2 | ||
Idle, PSS, MB | 66 | 36 | 12 | ||
iperf3, PSS, MB | 245 | 36 | 12 | ||
Idle, CPU time, s / real minute | 0.505 | 0.120 | 0.297 | ||
iperf3, CPU time, s / real minute | 115.23 | 0.14 | 78.72 | ||
iperf3, Mb/s | 860 | 630 | 360 | 730 | 9600 |
dan@upvote.au 1 year ago
It’s worth noting that Tailscale optimized Wireguard-go to the point where they made it faster than the kernel version: tailscale.com/blog/more-throughput/