Skip to content
VPNmine
TROUBLESHOOTING

Why your VPN is slow, in five checks

Measure first: run a speed test with the tunnel down, then up, against the same server. A loss of ten to thirty percent on a nearby server is normal. Anything worse points at distance, a congested server, an MTU problem, the wrong protocol or a line that was already slow.

4 min read

Illustration of a speed gauge and a wrench, joined by a dashed tunnel line on a dark grid.

Before diagnosing anything, get a baseline. Run the speed test with the VPN off, note download, upload and latency, then run it again with the tunnel up to the same server. Without those two numbers every conclusion below is a guess.

A tunnel costs something. The honest range on a nearby server is roughly ten to thirty percent of throughput, plus the round trip to the server in latency. If your numbers are in that band, nothing is wrong and the rest of this article will not help.

Check one: distance

Latency is the floor set by physics. Light in fibre travels about 200,000 kilometres per second, and real paths are not straight, so a round trip to a server 8,000 km away costs at least 80 milliseconds and usually 150.

That matters for throughput as well as responsiveness, because protocols that wait for acknowledgements move less data per unit time as latency rises. A tunnel to another continent can halve your throughput without anything being misconfigured.

Pick the nearest server on the server list and retest. If the numbers jump, distance was the answer.

Check two: server load

A shared server with many active users divides its capacity among them. Peak evening hours in a popular region are noticeably worse than the same server at 06:00.

Test by connecting to a second server in the same country and comparing. If the neighbour is much faster, the first one was busy. Providers that publish load figures make this a glance rather than an experiment.

Check three: MTU

This one does not look like a speed problem. Small requests are fine, latency is fine, and then large transfers stall or crawl.

The cause is a path MTU black hole: a packet too large for the tunnel is sent with the don't-fragment bit set, the router that cannot forward it is supposed to send back an ICMP message with the correct size, and that message is dropped somewhere. Nothing learns anything, and the large packets vanish.

Set the tunnel MTU to 1412, or 1280 to test. If throughput recovers, walk it back up until it breaks again and subtract 20.

Check four: the protocol

WireGuard is faster than OpenVPN in most conditions, and the gap widens on hardware without AES acceleration — phones, tablets, streaming sticks, cheap routers. ChaCha20-Poly1305 is designed to be fast in software, which is exactly what those devices need.

If your client offers a choice and you are on OpenVPN, switch and retest.

Also check the transport: OpenVPN over TCP is markedly slower than over UDP, because a reliable protocol carrying another reliable protocol produces two retransmission timers interfering with each other. TCP mode exists to get through restrictive networks, not for speed.

Check five: your own connection

Bufferbloat is the most commonly missed cause. Run a latency test while a download is running. If latency climbs from 20 ms to 300 ms under load, your router is over-buffering, and the VPN inherits the problem plus adds its own round trip.

Smart queue management on the router — cake or fq_codel on OpenWrt — fixes it, and improves everything else on the line at the same time.

Also check Wi-Fi. A 2.4 GHz connection in a crowded building can cap you well below your line speed with or without a tunnel. Test wired at least once so you know which layer you are measuring.

Things that are not the cause, despite being blamed

  • Encryption overhead on a modern CPU. A phone from the last five years encrypts a gigabit of ChaCha20 without noticing. Encryption is the bottleneck on routers and old hardware, rarely on anything else.
  • The protocol's header size. It costs a few percent, not half.
  • "The VPN is throttling you." Providers that shape traffic usually say so. A sudden cliff at a round number is worth asking about; a general slowness is almost always one of the five checks.

A quick decision table

Symptom Likely cause
Latency up a lot, throughput down proportionally Distance
Fine at 06:00, poor at 21:00 Server load
Small requests fine, large transfers stall MTU
Slow everywhere, on every server, on OpenVPN Protocol or transport
Latency triples during a download Bufferbloat on your line
Slow with the VPN off too Not the VPN

Work down it in order. The first four are fixed by changing a setting; the last two are fixed at home, and no VPN configuration will touch them.

Sources

  1. RFC 1191 — Path MTU Discovery
  2. RFC 8439 — ChaCha20 and Poly1305
  3. Bufferbloat and latency under load

Try it on the network this was written from

VPNmine is a free no-logs VPN running its own WireGuard servers, with native apps for Windows, macOS, Android, iOS, Android TV and Apple TV. No ads, no card.

Get VPNmine