I've been experimenting a bit with Wireguard on several ubuntu systems, and am not seeing the performance I'd expect based on the numbers at https://www.wireguard.com/performance/ 

I'm wondering if there is a configuration setting i'm missing or any better way to debug this.

Testing between two locations - both have nominally 1Gbit internet connections from the same provider.
 
At location A:
1) Ubuntu 18.04 "server" - i7-4790K CPU @ 4.00GHz 
2) Ubuntu 16.04 client - i5-3470 CPU @ 3.20GHz

At location B:
3) Ubuntu 18.04 client - Celeron N2808  @ 1.58GHz
4) Ubuntu 18.04 client - Virtual Machine - Xeon(R) Gold 6126 CPU @ 2.60GHz


Using iperf3 for all tests, with 8 threads, but that doesn't seem to matter significantly.

Between 1 & 2, via gigabit LAN - 940 Mbit/sec.
Between 1 & 2, via WireGuard - 585 Mbit/sec 
- I might have expected a bit higher, but this is certainly acceptable.

Between 3 and 1, direct iperf3 - 580 Mbit/sec
Between 3 and 1, WireGuard - 73 Mbit/sec
   
At this point I was guessing WireGuard was CPU limited on this little Celeron, so I set up the Xeon VM (#4):

Between 4 and 1, direct iperf3 - ~600 Mbit/sec
Between 4 and 1, WireGuard - 80 Mbit/sec

In other words, the much faster VM is only a tiny bit faster that the celeron.

Any suggestions?

Thanks,
Scott