kate3
Member
OP
- Joined:
- Jul 2024
- Posts:
- 208
- From:
- Utrecht, NL
Vhost-net is actually enabled
How would I check that from inside the guest? `ethtool -k eth0` shows tx-checksum-ip-generic: on, tx-tcp-segmentation: on, so virtio features are negotiated. But that doesn't prove vhost-net, just virtio.
You called it. Core 3, %soft at 98.7, others idle. Single-threaded confirmed.
So the real comparison isn't "WireGuard vs OpenVPN" it's "WireGuard single flow vs OpenVPN multi-worker on AES-NI." The hype about WireGuard being faster assumes modern CPUs and parallel workloads, or at least a use case where 400 Mbps is enough. For a single iperf3 stream, OpenVPN wins on this hardware.
virsh list --all | wc -l: 47
tallinnying
Member
Night Shift
- Joined:
- Aug 2024
- Posts:
- 268
- From:
- Tallinn, EE
Cloudflare's public WireGuard benchmark numbers are from a server with 64 flows
This is the thing that should be in bold on every tutorial. I felt so stupid at 4am because I was testing like kate3, one iperf3, crying into my tea
Real world I have 20-30 devices behind my WireGuard, all doing their own thing. Never seen the single flow wall. But if you're building a point-to-point pipe for rsync or whatever, you feel it hard
Also re: vhost-net, you can kind of infer it from `cat /proc/interrupts` and seeing virtio0-input on a specific CPU vs spread. Not definitive but suggestive.
builds at 3AM, sleeps at noon
kate3
Member
OP
- Joined:
- Jul 2024
- Posts:
- 208
- From:
- Utrecht, NL
Use `-P 4` or `-P 8` in iperf3
Well. 8 flows, 1.04 Gbps. Same tunnel, same everything. I feel simultaneously relieved and foolish.
So the answer to "what am I missing" is: nothing is wrong, I was measuring the wrong thing for my assumption. WireGuard isn't slower. Single-threaded WireGuard on a single flow is slower than multi-threaded OpenVPN on a single flow, because OpenVPN spawns workers and WireGuard doesn't. For my actual use case—multiple site-to-site peers—this will never matter.
Still annoyed that none of the "WireGuard is 3x faster" articles mention this caveat. Would have saved me six hours.
Thanks all. Especially kenji3 for the mpstat nudge and tallinnying for making me feel less alone in the 4am debugging club.
virsh list --all | wc -l: 47