With 10gbps and faster network ports becoming more common all the time, it is becoming increasingly important to make sure that a server can actually use all of that bandwidth. At these high speeds, many things can go wrong that limit your performance to less than the maximum speed of the port. The most important of these things is outside of your control — the speed of the routers, clients, and servers elsewhere on the internet. With the inconsistency of the internet as a whole, it can be challenging to know if your server itself is causing a bottleneck to network performance.
In today’s article, we address this concern by showing how you can test the network speed of your IOFLOOD.com server against our local iperf server. Because this tests your server’s network card under favorable conditions, you can identify and eliminate some causes of poor network performance with minimal effort. In this way, if you have any “real world” performance concerns, we can help you narrow down the possible causes.
For all servers 10gbps or faster, we run this iperf test before delivering your server. This is to make sure that your server’s network card is capable of running at full speed. By making sure that your server can operate at full speed under optimal conditions, it helps us identify and resolve problems that can limit performance before delivering your server.
To replicate this test yourself, you would simply run the following command:
To ensure good performance for customers and not use lots of bandwidth, our speedtest server is firewalled to only be available to customers in our Phoenix, AZ datacenter. This server has a 40gbps NIC and has been tested to properly work for testing servers up to that speed.
When testing from a 40gbps server, you should get a result like this:
As you can see here, the real speed measured is 94% of the “faceplate” network link speed of 40gbps. When factoring in the limitations of TCP and IP overhead, as well as limitations in ethernet itself, this is an excellent result.
You’ll also notice the test ran 8 instances simultaneously. Due to limitations with TCP as well as single-threaded CPU speeds, a single connection cannot saturate a 40gbps network connection. We’ve found that for the low latency involved with a local test, 8 simultaneous connections is sufficient to get an accurate reading of the maximum network performance.
We run this test is a standard part of our new server setup process for any server connected at 10gbps or faster. This is another way that IOFLOOD ensures that when you order a server, you don’t get any surprises that prevent you from making best use of your server right away. Again, if you want to run the test yourself, you’d just have to run the following command:
We hope this article has helped you learn about performance testing with iperf. See some of our other articles if you want to know more about similar topics regarding performance optimization, RAID, or server configuration and administration.
If you love servers like we do, we’d love to work together! IOFLOOD.com offers dedicated servers to people like you, and as part of that service, we optimize and test the network card driver when installing your OS to maximize performance. To get started today, click here to view our dedicated servers, or email us at sales[at]ioflood.com to ask for a custom quote.
Gabriel is the owner and founder of IOFLOOD.com, an unmanaged dedicated server hosting company operating since 2010.Gabriel loves all things servers, bandwidth, and computer programming and enjoys sharing his experience on these topics with readers of the IOFLOOD blog.