Return to

OpenVPN and WireGuard speeds got low


I have a VDS for some light stuff with better uptimes my home can provide.
I’ve been hosting OpenVPN (UDP) there for about 2 years now. It was giving me about 30/30 mbit/s out of 100 available on the VDS, that was fine for me and also left other part of bandwidth for other stuff running there. I’ve been streaming media from my Jellyfin box at home to my phone with “youtube level” 1080p no problem through this VPN.
But some time ago it suddenly got worse. Now I am getting 0.5 mbit/s down on average, both from my Android phone and Linux PCs.
I tried WireGuard after hearing how great it is, and while connecting time is indeed awesome, actual download speed is still 0.5, even dank jpeg memes take their sweet time to load in my messages.
I’ve burned some time to figure out MTU for LTE connection on my phone and applied it, it-60 to WG and it-40 to OVPN clients, but no luck.
I’ve changed NetworkManager to systemd-networkd on the VDS, nothing.
iperf3 w/o VPN to public VDS ip:

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  23.8 MBytes  20.0 Mbits/sec  368             sender
[  5]   0.00-10.00  sec  20.2 MBytes  17.0 Mbits/sec                  receiver

iperf3 w/ VPN to local VDS IP:

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  18.7 MBytes  15.7 Mbits/sec  244             sender
[  5]   0.00-10.00  sec  17.4 MBytes  14.6 Mbits/sec                  receiver

Yes, not the best, but not 0.5-2 mbits either.
Load averages on the VDS are 0.08, 0.08, 0.06, 3/6G RAM used.

I am also connecting to another OpenVPN server for work, no such issues there.

What could suddenly start killing my connection speed?

Firstly try to isolate the area of the issue, it could well be the VDS provider:

  • Do they have rate limiting when data caps are reached?
  • Does latency also increase (check with ping)? If it does, where? (mtr is a nifty tool for it) EDIT: Try doing it under load also.
  • Does the penalty apply between VDSes in the same datacenter? Localhost?

If all fails:

  • Some sort of system update? (But I guess you’d know that already)
  • Try to reboot the system lol (Also I guess you’ve tried)



No. But while I was testing it, the speed was also constantly above 20 mbit/s for some reason, lol. This might mean that it’s just the load on the providers network. I will check again through the day.

Sorry, didn’t understand the question. If you are talking about “iperf to local address”, I was meaning the address inside VPN there.

Yep, nothing here.

Well, yes, it was the hypervisor.
They’ve moved the VM to another host, now everything is fine.
TIL: “st” value in top shows how much CPU time was stolen from guest by hypervisor, a “CPU Ready” host metric analog.