Throughput measures how much data traverses a network at a given period of time. While similar to (and often mistaken for) network bandwidth, throughput focuses on actual data transmission from a source instead of measuring a network's transmission potential based on a number of factors. You can further contrast the two by thinking of throughput as the number of passengers an airport handles in an hour, versus the maximum number of passengers that airport could actually handle in that same period.
However, an hour is a lifetime for many high-volume web applications. As a result, throughput is measured differently and over shorter periods of time:
Quantity of packets received per unit of time
Bits (or any other relevant data units) per second
Organizations and savvy ISP customers alike can use this information to help assess network performance. Speed is a key component here, since accelerating data transmission across the network can pay enormous dividends. Good throughput, efficiency, and overall speed are key ingredients in application performance and therefore positive user experiences. Throughput optimization is therefore crucial.
How does throughput work?
While the factors that impact throughput are numerous, we use a simple calculation to determine overall network throughput:
Throughput = (Data size / transmission time) x 8
"Data size" is typically measured in bytes, while "transmission time" is measured in seconds. We multiply this number by eight since there are eight bits per byte. Here's a quick example:
Say we have a network with a data payload of 10,000 bytes, with a corresponding transmission time of 10 seconds. Using our equation above, the network's throughput is the following:
(10,000 / 10) x 8 = 1,000 x 8 = 8,000 bits per second (bps).
Which network factors can reduce throughput?
A number of factors can influence network throughput, including the following:
Intentional restrictions – Often implemented by ISPs that offer customers different plans based on performance, cheaper options may enforce throughput caps. Organizations might also want to prioritize certain types of traffic—reserving higher performance for applications that need it.
Network congestion – With more users and applications "fighting" over resources while sending or requesting data, too many data packets may be transmitted simultaneously for the network to efficiently deliver. Also called "saturation," congestion also occurs when too many devices share the same network.
Limited bandwidth – A network with higher bandwidth has a higher throughput ceiling, since the lanes that data travels through are wider. When bandwidth is limited, data cannot flow as freely in a given period of time. The network can only transmit a set, maximum data payload at a time before accommodating pending requests.
Transmission medium – While ethernet is the gold standard for connectivity speed and overall performance, wireless data transmission is more susceptible to congestion, interference, and failure. And even then, some networking cables may offer higher throughput than others.
Jitter – Unpredictable, delayed data transmission can harm network performance. Any waiting period means less data transmitted over a given time interval.
Errors and packet loss – Retransmission of dropped packets and outright transmission failures can reduce average throughput by impacting efficiency.
Protocol-based factors – Throughput can vary depending on the transmission protocol your application uses to transmit data (such as TCP or UDP). For example, some protocols include mechanisms to help finely control data flows and congestion. Others may be more susceptible based on how connections persist and react to traffic spikes.
How does HAProxy address throughput concerns?
HAProxy products are designed with high performance and efficiency in mind—a core component of that being effective data transmission. HAProxy Enterprise specifically boasts a number of application acceleration, high availability, and security features that can positively impact network throughput. These include PacketShield filtering, HTTP compression, and connection pooling (among others).
To learn more about how HAProxy can support network and application performance, check out our application acceleration solution page or our HAProxy Enterprise datasheet.