Traditionally, to perform a speed test for your home connection, or 100Mbps, or a even 1Gbps dedicated server – you would just use any common third party website, such as speedtest.net or Fast.com. It’s a common fact that it is fairly simple and easy to perform such a test using any web interface, or just a few commands.
However, if you have a 10Gbps-capable dedicated server – STOP! Using the same speed test service for determining the throughput of your 10Gbps server is a bad idea and will yield inaccurate results.
In the world of 10Gbps servers, there are numerous factors to consider. Remember, third party speedtest servers are only as reliable as their remote testing servers / end points are. The majority of today’s speedtest servers run on a 1Gbps uplink (or if they run on anything more than that, its most definitely on a shared port). We know that it’s impossible to measure higher throughput than the uplink capacity – going back to the fact of: “Every speed test service is only as reliable as their test servers in the datacenter are.”
Other forms of connection testing such as the wget command also present limitations (single threaded connections) are also ineffective, as that is only a single-threaded test running on a single CPU core.
How to Properly Test Network Throughput On A 10Gbps Dedicated Server
To test network bandwidth, we would recommend a popular network tool called iperf3. Here’s what you’ll need:
#1: SSH access to the 10Gbps Server you want to test the throughput of
#2: SSH access to another remote server on a dedicated 10Gbps port to serve as the iperf test server (to serve as a listening-server)
To avoid any firewall rules conflicting with the iperf test ports, we would recommend temporarily disabling iptables during the test period. On both servers, you’ll want to install iperf3.
After it’s been installed – on the remote server, log into SSH. Type the following command in order to activate the iperf listening server mode:
After typing the command, you’ll see that the server mode is activated and what port it is listening on.
Log into the server via SSH that you wish to test the network throughput of. We will call this the client-server.
Here is a command for running an iperf test on your client server. To avoid overloading a single CPU core (because a 10Gbps speed test on a single CPU core can cause the CPU to bottleneck, thus rendering inaccurate results) – we would recommend running multi-threaded streams (TCP/UDP). Use parameter -P X, where X represents the number of simultaneous tests you wish to run.
iperf3 -P 10 -c $server_ip
This test will run 10 simultaneous connections against the iperf listening server ($server_ip). You can increase the number of simultaneous connections as per your own requirements/desire.
The other alternative is to open multiple SSH sessions, running an iperf test on each session.
We ran a 10Gbps speed test on one of RackNerd’s 10Gbps Unmetered Dedicated Servers. In the below example, the client-side server was located in our Los Angeles datacenter, while the listening server was located in our New Jersey datacenter. Here’s what a successfully executed iperf test should look like:
The main takeaways:
1. 10Gbps is relatively new technology, and to this day, not many 3rd party speedtest services are set up for it. Most readily-available speedtest services on the web today are only designed for testing residential or under 1Gbps server connections because the remote test servers are on shared 1Gbps ports. The only true solution at the moment is to set up an iperf listening server on a remote/dedicated 10Gbps server.
2. Regardless of who your provider is, in order to properly run a 10Gbps speed test, you need to run multi-threaded tests to get a true idea of the network throughput capabilities. There are several technical reasons behind this, including but not limited to: the requirement to run the test across multiple CPU cores, to avoid one stream being hashed to one physical uplink interface, etc. Example: Running just a few Gbps of bandwidth on a “single” CPU core can actually cause the CPU-load to be higher than a bandwidth-generation test, therefore showing a non-network related bottleneck.
3. To effectively maximize a full 10Gbps port, your applications and software need to be optimized to work across multiple CPU cores. Placing all the strain and work load upon one CPU core will cause a bottleneck that is unrelated to network.
Looking for an Unmetered 10Gbps Dedicated Server?
If you are looking for an unmetered 10Gbps dedicated server at a competitive price, look no further than RackNerd’s 10Gbps dedicated server solutions.
WARNING: A lot of providers advertising 10Gbps unmetered servers sneak in the word “shared” in their order forms, or invoice descriptions. This indicates that the 10Gbps port is shared with other 10Gbps clients in the rack, therefore you are not effectively able to sustain the port 24×7.
Other providers advertise certain hours that you can use the 10Gbps port, restricting you to 3Gbps (for example) in certain peak hours.
Here at RackNerd, we don’t believe in such restrictions (or nonsense is what we’d call it). Single homed bandwidth is not in our lingo either. Our network consists of multiple Tier 1 bandwidth providers, optimized in a BGP network blend to deliver to you the best performance. With a large backbone, we have tons of bandwidth capacity readily available at all times, providing a true 10Gbps dedicated solution. With our 10Gbps unmetered servers, we do not restrict your usage in any way. RackNerd provides unmetered servers based upon a dedicated 10Gbps network port to you — one that you can use and sustain 24 hours a day, 7 days a week, 365 days per year.
To view RackNerd’s 10Gbps Unmetered Dedicated Servers, click here.