Logical cores / SMT with WireGuard

Lee Yates rainmakerraw at icloud.com
Thu Feb 14 19:02:26 CET 2019


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256


Hi everyone,

I have a small form-factor Dell Optiplex 7010 (Core i7 3700, 8GB DDR3,
128GB SSD) with a quad port Intel Pro 1000PT NIC, running Arch Linux, as
my edge router. It covers two local subnets (trusted LAN, and
DMZ/servers/IoT), with the trusted LAN clients all being routed out via
an AzireVPN WireGuard tunnel on WAN. It works great for this and 15
minute load averages are in the order of 0.1!

My question is about multithreading/SMT on that Core i7. At the moment I
have it enabled, and WireGuard seems to simmer nicely across all 8
threads. However, with the known Intel security issues and
recommendations to disable HT, I got to wondering how much - if at all -
disabling HT would impact on WireGuard's real world performance. I mean,
it obviously can utilise logical cores/threads, but is there a real
world throughput benefit vs just using the real cores?

While my router is overkill anyway (about 18% to 20% usage under full
network load with 4c8t), I obviously still want to run it in the most
efficient way possible. Is WireGuard making real use of those logical
cores/threads? Or will it run just as well on 4 'real' cores as on 4
cores and 4 HT threads?

I know the obvious answer is to test it out, but the router runs
headless and is awkward to get a monitor to so I can access the BIOS. I
did try for a short time when I first set it up, and aside from CPU
usage going up (because of having half the available 'resources' with HT
disabled) nothing seemed to change. My WAN is 'only' 400Mbps anyway so
hardly a taxing test. Because of this, I can't really learn about how
much WireGuard benefits from the extra threads, if it does at all, as
either way I have headroom to spare for my current WAN provision.

So, technically speaking, is WireGuard able/programmed to take
demonstrable real world advantage of logical SMT/HT threads; or is more
real cores the only proper way to scale performance with it?

Cheers,

Lee Yates
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEExF+G9PyiAB1cKHnz7yXLzDsoqZIFAlxlrS0ACgkQ7yXLzDso
qZJROwf/b76RT+dFoo88KU36UJYRifluCBQ8TMfmj0DbWSQuyvQouJFqovYtt18/
UHSL/6KTgcHEkGFSaIQqAyP3xT7VjWjFhqyaOmBM1oAQ3HuVzmxnwkE4vumnhmHF
CrkIHcLNG/8jT1Xddd5q9rVcABqgGqOjT8lyF83id3MCPWj2njxBczQvILXq7i21
jvkzfnpEA94qG5IdV2xtGBQbtLwbHIu+ek7ayVj+NbyjLfv708wvMhUAf/1pQHew
WKBqv4tENMbKgrARhhS4YYHOo4nl14iRHQTDSm7a27xMdaDUW+M6+EtY+/citllx
OH0s5SYkkUClWRLCsooXJipfVWkw1A==
=Is7v
-----END PGP SIGNATURE-----


More information about the WireGuard mailing list