VPN speed testing
Speed testing a VPN connection is not as straightforward as it may seem. Several factors come into play that are required to make an apples-to-apples comparison of your VPN speed <vs.> your non-VPN speed.
Many people will test their local connection by going to a site such as speedtest.net and conducting the test on their local DSL, cable or fiber connection. Then, they log into their VPN and repeat the process. Most times, the difference is dramatic and they believe that the VPN is not working properly. There are flaws to this method.
1) When testing on your local network, the test server that is being tested to is likely very close to your location. The test sites automatically pick the closest test server to your location. Often, if you are getting service from a large ISP, the server will be in the ISP's own network. This gives you an artificially high number because the transmission speed of data is over a very short connection -- it only has a few miles to travel and not many router hops (even moreso if the speed test server is within your ISP's network).
When testing while on the VPN, the test site still picks the closest server. However, because you are on the VPN, the test site sees your location as the location of the VPN server. Let's say you are in Asia and are on a VPN connection to the USA. The speed test site will run the test to a server in the USA. The problem is that you are actually located in Asia, thousands of miles and dozens of router hops away from where the test site thinks you are. The result? Much slower, of course! While any VPN has some overhead and speed will always be slightly less than on a non-VPN network, the distance involved makes a huge difference in performance.
2) Personal VPNs that use OpenVPN usually employ compression on their connection to maximize speed. However, the test files used by the speed test sites are already compressed. This results in outcomes that are sometimes very odd. We have seen cases where someone on a 8 Mbps downlink and 1 Mbps uplink network was running the speed test and reported having a speed of 2 Mbps down and 6 Mbps up. Of course, this is not possible based on the service the person has. However, it's an anomaly of trying to get accurate speeds from a speed test over a VPN.
All is not lost and the speed test can be used to give you a rough estimate of how things are working -- both on and off the VPN.
The proper way to run the test is to always test to the speed server closest to where your VPN server is located. Using the example above, the user in Asia should run the speed test from their local connection between Asia and the USA. With all of the speed test sites, this is easy to do. Most offer a graphical map of the test server locations or a pick list. When running the test form the local connection (not on the VPN), select a server in the USA by either dragging the map to the USA or picking a USA server from the menu. What you will see is a sharp reduction in the speed that was being reported from the same connection tested locally. We have seen people with 50 Mbps local connections who, when testing locally, got test results near 50 Mbps. But, when testing across the ocean to the USA, they were getting 5 Mbps.
One thing that is not usually advertised by ISPs is that the speed they offer you is only between your location and their network. If your ISP sells you a 50 Mbps connection, they are only promising this speed between your house and their offices. Once your traffic reaches the internet, all bets are off. It really can't be any other way because your ISP has no way to guarantee speed across networks around the world that they don't control.
Once the speed is determined from your local network to the end point, the test is repeated while connected to your VPN. By doing so, you have made the best possible effort to make the length of the connection equal and get as close of a comparison as possible. Usually, if you try both test using the same test site, you will find that the speed on the VPN is only slightly slower than your speed off the VPN -- indicating that everything is working properly.