Context
You just rented your Linux VPS at Winheberg and want to check your server's network performance? Or maybe your applications seem slow and you want to know if the issue comes from bandwidth? Testing your VPS's throughput is a simple, useful step that takes just a few minutes with the right tools.
This guide covers the two go-to tools for measuring your server's bandwidth, along with best practices for interpreting the results. It works on every distribution we offer, Debian 11/12/13, Ubuntu 23.10/24.04/25.04, AlmaLinux 9/10, Rocky Linux 9/10, Fedora 41/42, and Alpine Linux 3.22.
Why test your VPS's bandwidth?
Several reasons might lead you to measure your server's throughput.
- Verify the advertised performance at the time your VPS was delivered
- Diagnose slowness on a site, an application, or a hosted service
- Compare several hosts or several plans against each other
- Test connectivity to a specific region or country
- Detect network saturation if your server hosts many services
Before you start, keep in mind that a bandwidth test measures the instant throughput between your VPS and another point on the Internet. Results can vary depending on the time of day, the test destination, and overall network load.
Which tool should you choose, Speedtest or iperf3?
There are two main tools for testing a VPS's bandwidth, each with its own strengths.
Speedtest is the official Ookla command-line tool. It's the pro version of the well-known Speedtest.net. It tests your VPS's speed toward the Internet by automatically connecting to a geographically nearby Speedtest server. It's the ideal tool for a quick, representative measurement of real-world internet throughput, with a result you can easily share.
iperf3 is a more technical, precise tool that measures throughput between two machines (your VPS and a remote iperf3 server). It's particularly useful for testing a specific route, saturating a connection with multiple streams, or more in-depth network performance measurements.
Use both tools. Speedtest for a quick, general-purpose overview, iperf3 for more focused tests toward specific servers.
Method 1. Test with Speedtest (official Ookla)
This is the simplest and fastest tool. It mimics what you'd do on speedtest.net from your browser. We recommend the official Ookla version, more up to date and reliable than the older Python speedtest-cli.
1. Install Speedtest
First install curl if not already done, then add the official Ookla repository and install the package.
apt install curl -y
curl -s https://install.speedtest.net/app/cli/install.deb.sh | bash
apt install speedtest -y
dnf install curl -y
curl -s https://install.speedtest.net/app/cli/install.rpm.sh | bash
dnf install speedtest -y
The official Ookla version isn't available on Alpine, but you can use the older Python version.
apk add speedtest-cli
speedtest-cli is an older Python project, less optimized and less actively maintained than the official Ookla client. Results may be less accurate and the test slower to run. Use it knowingly on Alpine, in the absence of an official alternative.
2. Run a test
Once installed, run the command specifying directly the Moji server in Paris (ID 62035) that we recommend.
speedtest -s 62035
On first launch, Speedtest will ask you to accept Ookla's terms of use and license. Type YES then Enter to confirm, this only needs to be done once.
The tool will measure ping, download, and upload, and will also give you a shareable link at the end of the test.
Speedtest by Ookla
Server: moji - Paris (id = 62035)
ISP: WINHEBERG
Latency: 6.35 ms (0.05 ms jitter)
Download: 11865.14 Mbps (data used: 15.4 GB )
Upload: 3664.47 Mbps (data used: 6.5 GB )
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/577533f5-507f-427d-9cca-31ba238cef6e
The Result URL shown at the end is a shareable link with a visual chart. You can send it to our support if you need help analyzing a result.
Speedtest can automatically pick a server, but the result then varies from one test to another. By forcing the Moji Paris server, you get a reliable, reproducible measurement, perfect for comparing tests over time.
3. Test toward another server
If you want to compare connectivity to another point in the world, you can use any other Speedtest server. To list the servers available nearby.
speedtest --servers
You'll get a list of servers with their ID. To test toward a specific server, use the same syntax.
# Example, test toward the Moji Paris server (our recommendation)
speedtest -s 62035
Method 2. Test with iperf3
iperf3 is more precise and lets you test specific routes between two servers.
1. Install iperf3
Installation is similar depending on your distribution.
apt install iperf3 -y
dnf install iperf3 -y
apk add iperf3
2. Run a test against a public iperf3 server
iperf3 needs a remote server to send test packets to. We recommend the Moji server in Paris, which offers excellent bandwidth and is very close to our datacenters.
iperf3 -c iperf3.moji.fr -p 5200
The Moji server offers several ports between 5200 and 5240. If one is saturated, try the next one (5201, 5202, etc.) to get an available slot.
The test runs for about 10 seconds by default, then shows the average throughput.
Connecting to host iperf3.moji.fr, port 5200
[ 5] local 51.158.xx.xx port 54312 connected to 89.xxx.xxx.xxx port 5200
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 118 MBytes 990 Mbits/sec 0 412 KBytes
[ 5] 1.00-2.00 sec 119 MBytes 998 Mbits/sec 0 412 KBytes
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.16 GBytes 997 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.16 GBytes 994 Mbits/sec receiver
3. Test in both directions
By default, iperf3 measures upload (you send data to the remote server). To also test download, add the -R option (reverse).
iperf3 -c iperf3.moji.fr -p 5200 -R
4. Test over IPv6
If your VPS has an IPv6 address and you want to test IPv6 connectivity specifically, use the -6 option.
iperf3 -c iperf3.moji.fr -p 5200 -6
5. Test in parallel to saturate the connection
To really see your VPS's maximum bandwidth, run several parallel streams with the -P option.
iperf3 -c iperf3.moji.fr -p 5200 -P 4
Here, 4 parallel streams are sent simultaneously. The total throughput is the sum of the 4 streams.
6. Test for a longer duration
By default, the test runs for 10 seconds. For a more stable measurement, increase the duration with -t.
iperf3 -c iperf3.moji.fr -p 5200 -t 30
The test will now run for 30 seconds, giving a more representative average.
7. Test toward other destinations
The Moji Paris server is perfect for measuring your VPS's raw performance, but if you want to test connectivity to another region of the world, the community maintains a list of public iperf3 servers sorted by continent at github.com/R0GGER/public-iperf3-servers.
Find a server close to the destination you're interested in, then run your test with its address and port instead of iperf3.moji.fr.
iperf3 -c server-address -p port
These servers are run by third parties, their availability and performance don't depend on Winheberg. Some may be temporarily down or saturated, the GitHub list is updated regularly to remove servers that no longer respond.
Interpreting the results
Results can vary a lot depending on several factors. Here's how to analyze them correctly.
The expected throughput
On our VPS plans, you get bandwidth suited to each tier. If your test gives results well below what's advertised, several reasons are possible.
The time of the test
Bandwidth can vary depending on the time of day. During peak hours (evenings especially), the global Internet network is more loaded, which can lower measured throughput toward certain destinations.
The test destination
The measured throughput can vary a lot depending on the remote server you're testing against. Several factors come into play.
- Geographic location, testing toward a server on the other side of the world will always give lower results than a test toward a server in the same country, due to physical distance and the number of network hops
- Internet transit, to reach a remote server, your traffic passes through several transit operators (Cogent, Level3, Telia, etc.), each operator has its own capacity limits, and a test can be throttled by one of them with no connection to your VPS
- Peering, hosts and operators negotiate peering agreements with each other to exchange traffic directly, without going through transit operators, good peering toward a destination gives excellent results, poor peering can drop throughput even over short distances
- Latency (ping), the higher the latency, the harder it becomes to saturate a high-speed connection over TCP (due to how the protocol itself works), that's why you sometimes get 10 Gbps locally and only 2 Gbps toward another continent
That's why we recommend testing first toward a geographically close server (Moji Paris for French users) to measure your VPS's raw performance, then optionally testing toward other destinations if you want to check connectivity to a specific region.
The protocol used
By default, iperf3 and speedtest-cli use TCP. If your application uses UDP, the results may differ. To test over UDP with iperf3, use the -u option.
iperf3 -c ping.online.net -p 5202 -u -b 1G
Your VPS's load
If your VPS is heavily loaded on CPU or RAM at the time of the test, this can skew the results. Remember to check the load with htop before running a test.
If you run into trouble
Here are the most common errors and situations you might run into.
❌ speedtest, command not found
The package isn't installed, or the installation stopped before finishing. Redo the installation step matching your distribution.
❌ iperf3, error unable to connect to server
The iperf3 server may be saturated or blocking connections on that port. Try another port between 5200 and 5240, or try again a few seconds later.
❌ Results well below expected performance
Check your VPS's CPU load with htop. If the CPU is at 100%, the test won't be able to saturate the connection. Also consider testing with several parallel streams (-P 4 with iperf3) to really see the maximum throughput.
❌ Speedtest asks to accept a license every time
On first launch, you need to accept Ookla's terms by typing YES. If the prompt keeps coming back every time, the configuration file isn't being saved. Run the command with --accept-license --accept-gdpr to confirm it once and for all.
speedtest --accept-license --accept-gdpr
Need help?
If your bandwidth results seem abnormally low or you suspect a network issue on your VPS, our team is here. Open a ticket in the Technical department from your client area, fill in the Related Product field with the VPS in question, and attach your test results.
You now know everything you need to precisely measure your VPS's network performance 📊


