Network throughput is the amount of data that is transmitted through a given network medium over a given amount of time. For example, an Ethernet connection that has a throughput of 30 Mbps is transferring 30 Megabits per second.
Here are the best network performance testing tools to measure throughput:
- SolarWinds Network Bandwidth Analyzer Pack (FREE TRIAL) – easily monitor network traffic, identify the top talkers on your network and prioritize bandwidth utilization.
- SolarWinds Real-Time Bandwidth Monitor (FREE TOOL) – monitor bandwidth usage in real-time; offers easy to understand graphs.
- ExtraHop – enterprise solution with the ability to automatically detect and correlate network issues
- Comparitech Speed Test – free and simple test that’s perfect if you just need to check one or a handful of devices.
- Iperf – open source tool used for taking active measurements of throughput on a network.
- NetCPS – freeware bandwidth monitor. NetCPS is a Windows Command Line utility.
- Netperf – free to use and a fairly popular tool for measuring throughput and benchmarking network speeds.
In the rest of this piece, we’ll dive into the basics of throughput and then provide an overview of some of the more popular throughput monitoring solutions available on the market today.
Based on the definition above, we can see that throughput helps us understand and quantify network performance. Network performance is often the difference between a productive day and an unproductive one. Given that, the need to measure and monitor throughput becomes clear. Monitoring throughput can help understand how your network is performing, enable you to better react to bottlenecks, help improve network planning and lead to more effective network troubleshooting.
- 1 What’s the difference between throughput and bandwidth?
- 2 Measurements of Throughput (MB vs Mb, Gigabit speeds etc)
- 3 Impact of latency on throughput
- 4 Impact of packet loss on throughput
- 5 What throughput should I expect for a given bandwidth?
- 6 What can measuring throughput help you do?
- 7 Can you forecast throughput?
- 8 How can you improve throughput?
- 9 Top tools to measure throughput
- 10 Let us know your feedback!
What’s the difference between throughput and bandwidth?
The differences between network throughput and bandwidth can be confusing to many. This is understandable given how the terms are generally used and that they deal with the same subject (amount of data transmitted over a given medium). In short, bandwidth is the maximum amount of data that can go through a given medium and throughput is the amount of data that actually goes through that medium. If you’re shopping for internet service, keep in mind you pay your Internet Service Provider (ISP) for bandwidth and get throughput.
In practice, throughput will always be less than your bandwidth. Additionally, your throughput at a given point in time will usually not be your maximum throughput. For example, if everyone in the office is streaming high-definition video a lot more data is being transmitted than if everyone was just sending plain text emails.
One of the most helpful ways to conceptualize bandwidth and throughput is the highway analogy. Bandwidth is the number of lanes on a highway while throughput is the cars traveling on that highway. Adding lanes (bandwidth) could improve traffic speeds, but it wouldn’t solve all your speed problems. On a highway, collisions and slow-moving vehicles can slow things down. Similarly, on a network, collisions, latency, and overhead can cause delays that aren’t necessarily solved by adding bandwidth.
Measurements of Throughput (MB vs Mb, Gigabit speeds etc)
There are multiple abbreviations thrown around when discussing throughput. All the different measurements somehow refer to an amount of data (usually bits or bytes) over a period of time (usually seconds). Understanding what the most popular measurements actually mean can help you better understand throughput. Below is a quick breakdown of some of the common measurements and terminology related to throughput.
- Bit – The smallest size of binary information used by computer devices. That is, the individual ones and zeros in binary math.
- Byte – 8 bits
- Megabit – 1 million bits
- Megabyte – 1 million bytes
- Gigabit – 1 billion bits
- Gigabyte – 1 billion bytes
- Mbps – Megabits per second
- MBps – Megabytes per second
- Gbps – Gigabits per second
- GBps – Gigabytes per second
One of the key takeaways here is: 1 MB is eight times more than 1 Mb. The same goes for GB vs Gb. Keep that in mind when comparing throughput statistics and ISP service plans.
Impact of latency on throughput
Latency can have a big impact on throughput. Latency is the amount of time it takes data to traverse a given path. If we think back to our highway analogy, the amount of time it takes to travel across the highway is latency. That wouldn’t matter too much if all traffic was one way, but when you start to think about, you begin to understand how it can impact throughput. TCP relies heavily on acknowledgments, which means a receiver must acknowledge a sender for the transmissions to proceed. If it takes a long time for the packets to get back to the sender, there will be a lot of wasted time and lower throughput.
High latency can occur for a variety of reasons, from bottlenecks to the number of hops between destinations to physical distance between sites.
Impact of packet loss on throughput
If a TCP packet is dropped, it will need to be resent. This redundancy negatively impacts throughput. A sender will know that a packet needs to be resent based on timeouts or lack of acknowledgment for a given packet(s). Packet loss can occur for a number of reasons including high latency, jitter (inconsistent speeds on a connection), hardware and connection issues, or software bugs.
What throughput should I expect for a given bandwidth?
There’s no one-size-fits-all answer to this question. A number of moving parts affect throughput, so every situation is unique. With current technology, latency, and packet overhead being what they are, you won’t get speeds that match the bandwidth you purchase from your ISP.
As a “best case scenario” reference, this CableFree article took a deep dive into maximum throughput, and determined that a 1 Gbps Ethernet connection has a potential for 94% efficiency (i.e. 940 Mbps). Enabling Jumbo Frames bumps the potential up to 99% (990 Mbps).
What can measuring throughput help you do?
In a word: measuring throughput helps you resolve complaints about the network being “slow”. This is because throughput measurements help you better understand a network connection and its real-world performance. Throughput monitoring can help with:
- Identifying bottlenecks
- Comparing real-world performance to SLAs
- Network design and planning
- Creating baselines
Can you forecast throughput?
Getting a baseline of your existing throughput will help you to spot peaks and troughs in volume. If you don’t intend to add on any new services to the network, your next task will be to ensure that there are is sufficient available capacity for trend growth in traffic volumes. If you are launching an expansion project, then you should expect increased demand on your network infrastructure.
In both cases, it helps to use a tool that can replay real traffic data and also generate extra traffic volumes to check that the bandwidth that you have available will be able to cope with that new demand.
Capacity planning tools such as the SolarWinds Flow Tool Bundle come in handy in these testing scenarios. The Bundle includes three tools that work with the Cisco-invented NetFlow v5 system. When you turn on NetFlow capabilities on your Cisco router, it will forward all packet headers to a collector. You can also use NetFlow to query the router and get aggregated data out of it.
The Bundle includes an interface to turn the NetFlow capabilities on your routers on and off. A second utility will replay captured traffic around your network and a third tool in the bundle will generate fake traffic to send around the network, testing the bandwidth capacity of all of your equipment and network software as well.
How can you improve throughput?
With an idea of what throughput is and what affects it, we’ll now talk about things that can be done to improve throughput. Again, there’s no one-size-fits-all answer; it’s important to understand the cause of your throughput problems to effectively address them. Below are some common methods employed to improve throughput.
- Increase bandwidth – Sometimes simply adding lanes to the highway is what you need. This is one of the most obvious solutions, but remember bandwidth can be expensive and might not be the root cause of your problems. Also be sure to have the network infrastructure in place to support your bandwidth updates if you go that route. After all, a 10 Gbps connection doesn’t mean much on a network full of 100 Mbps switches.
- Eliminate bottlenecks – Network bottlenecks are points on a network that cause traffic to slow down. For example, if you update your entire network to 1 Gpbs speeds, an old server with a 10 Mbps network interface may create a bottleneck.
- Update to fiber – Data on fiber connections move near or at the speed of light. Data on copper connections move significantly slower (for those of you into the science, it’s photon speed vs electron speed). Copper maxes out around 10 Gbps while fiber can reach terabit speeds or higher (check out this Engadget article for an example). While 10 Gbps is fine for most networks, fiber is much less susceptible to noise and can cover more ground that a comparable copper run, adding additional advantages that can help boost throughput.
- Adjust MTU – Adjusting MTU (Maximum Transmission Unit) sizes on a router can lead to improved throughput. For example, larger MTUs can minimize overhead and increase throughput. For more, check out this NetGear article designed to help you optimize the MTU size on a router.
- Use QoS – Configuring QoS (Quality of Service) on your routers and switches is another way to improve throughput. QoS can be used to dedicate bandwidth, manage congestion, shape network traffic, and set priorities on network traffic. For a deeper dive on the topic, check out this Cisco document. QoS doesn’t necessarily improve your throughput, it can help you make sure latency-sensitive applications (VOIP, video streaming, etc.) are less affected when things slow down.
- Use a CDN – A CDN (Content Delivery Network) can help get your content closer to users if you a dealing with a situation where many of your users are far from your servers (e.g. a website). Therefore, a CDN might be a great way to improve throughput. At the Human Health Project, we use CloudFlare as a CDN.
Top tools to measure throughput
SolarWinds Network Bandwidth Analyzer Pack is a premium monitoring solution that enables IT teams in organizations ranging in size from SMB (Small and Medium-sized Business) to enterprise to effectively monitor throughput. The Network Bandwidth Analyzer Pack is actually two SolarWinds products bundled together: Network Performance Monitor (NPM) and NetFlow Traffic Analyzer (NTA). You can learn more about each of these modules in our NPM and NTA reviews.
In short, NPM is one of the most popular pieces of enterprise monitoring software offered by SolarWinds and does a lot of the Simple Network Management Protocol (SNMP) and up/down monitoring you would expect from a Network Management System (NMS). Adding NTA to the mix enables support for monitoring the various flow protocols like NetFlow, sFlow, jFlow, etc. Combined, these two tools become a holistic, feature-rich, throughput monitoring solution.
If you’re looking for a free tool that can help you monitor individual devices and determine how much bandwidth they are consuming, the SolarWinds Real-Time Bandwidth Monitor may be right for you. This Windows Bandwidth monitoring tool uses SNMP (v1, v2C, and v3 are supported) traffic into and out of given interfaces. Scalability will likely become a problem if you are looking to monitor all the devices on a network. If you just need to monitor a handful of devices to determine if you have a bandwidth hog on your network creating your network throughput issues, this might be just what you need.
You can download the SolarWinds Real-Time Bandwidth Monitor for free.
ExtraHop is an enterprise-level monitoring solution with support for advanced features like contextual intelligence, forensic investigation, real-time analytics, and more. ExtraHop offers monitoring solutions for security, network performance, and the cloud. The section of this enterprise software we’re focused on here is its network performance monitoring capabilities. One of the major selling points of ExtraHop’s network performance solution is the ability to automatically detect and correlate network issues, which should help reduce mean time to resolution. Part its solution includes detailed metrics and charts covering average bandwidth utilization, average throughput, throughput by protocol, “top talkers” (endpoints with the highest average throughput), and more. If you’re looking for an enterprise level solution to your throughput monitoring problems, you may want to take a look at ExtraHop. You can demo ExtraHop directly from your browser (Contact info is requested, but demo access is given immediately after).
4. Comparitech Speed Test
If you need to check the throughput from a given computer or mobile device with a web browser, our very own speed test is a great way to do so and help raise money for charity. Our speed test will check your current download speed, upload speed, and ping response times. I’ve found that online speed tests too are a good way to determine if issues you are having with a given app are related to your network speeds or not (e.g. to check if you meet Netflix’s Internet Connection Speed Recommendations). Additionally, for each test (max one per user), Comparitech will donate one cent to charity.
Iperf is a free, open source tool used for taking active measurements of throughput on a network. It is officially supported on CentOS, FreeBSD, and macOS. According to its Github page, a number of other *nix based operating systems have been reported successfully using Iperf, and I was able to get it running on Linux Mint 17.1 without issue. Iperf can measure TCP (Transmission Control Protocol, UDP (User Datagram Protocol), and SCTP (Stream Control Transmission Protocol) throughput.
Iperf uses a client/server configuration, meaning the software needs to be installed on both endpoints for you to measure throughput. You can download and install Iperf here (Note: I was able to use apt-get install iperf on Mint 17.1).
In the example below, I ran Iperf in server mode by executing the command iperf –s, then connected to the server to measure TCP throughput by executing the command iperf –c 10.0.2.15 (10.0.2.15 was the IP address of the Iperf server). For more on Iperf, check out its Github page.
NetCPS is a Windows Command Line utility that also follows the client/server paradigm for measuring throughput. It has been around for a long time, but can still be useful on many modern Windows operating systems (it worked well on Windows 10 for me).
NetCPS is freeware, with the one exception that it is NOT permitted for governmental or military use. You can download, learn more about, and view the source code of NetCPS here.
In the example below, I used NetCPS to measure throughput on a local PC’s loopback address. First, from the directory where the NetCPS.exe file was loaded, I executed the command NetCPS.exe –s to place NetCPS in server mode, then in a separate cmd.exe Window I executed the command NetCPS.exe 127.0.0.1 to test the loopback IP address.
NetPerf is a CLI tool used on *nix operating systems (it also compiles on Windows) similar to Iperf that was originally developed by Hewlett Packard. While it’s not technically open source, it is free to use and a fairly popular tool for measuring throughput and benchmarking network speeds.
Like NetCPS and Iperf, Netperf uses a client/server model. You can start the server using the command netserver –p <port_number> and then connect from a client using the command netperf –H <server_IP_address_or_FQDN> -p <port_number>. In the example below, we started the server on port 15222 from a host with IP address 10.0.2.15.
Let us know your feedback!
That was our crash course on throughput and list of throughput measurement tools. Did we leave anything out? Do you have any questions about the tools we mentioned here? Let us know in the comment section below.