tap-windows6
tap-windows6 copied to clipboard
Unable to utilize gigabit channel
Hello. I have Windows 2012 R2 hosts running OpenVPN with minimalistic config, no encryption and no compression.
Problem is, they could not exceed ~300 Mbps over OpenVPN channel. I thought OpenVPN core was the one to blame, so I switched to 5 separate peer to peer OpenVPN networks, rather than having 1 server and 5 clients in a single network. Each network is handled by it's own OpenVPN process, but cumulative speed (all 5 networks combined) is still limited by 300 Mbps.
Looks like tap0901.sys is the bottleneck.
My config for every client looks like this
ifconfig 10.x.2.2 10.x.2.1 dev tun proto tcp-server port 8148 secret static.key cipher none
tun/tap tcp/udp don't affect speed much.
There are a couple of things limiting OpenVPN's performance at high speeds:
- User-space / kernel-space context switches. Increasing the MTU can help a great deal, see this article for details.
- The tap-windows/tap-windows6 driver performance is not that great. I can't recall the details, but this is a known issue with no easy fix.
Have you tried using a different tap interface for each OpenVPN process? Does that help at all?
Yes, I'm using different tap devices, but I assume they all run on a single thread of tap0901.sys. I tried to use different drivers by using different versions for different adapters, but I think it's impossible, because binary name stays the same .inf changes, .sys stays the same.
