Skip to content
Calcrivo

NIC Throughput Calculator

Estimate maximum usable NIC throughput after protocol overhead, with per-queue distribution.

Inputs

e.g. 10000 for a 10GbE NIC

Typically matches CPU core count for RSS

Max Usable Throughput (Mbps)

9,700.0

Throughput per Queue (Mbps)

1,212.50

RX/TX Queue Count

8

Step by step

  1. Values used

    NIC Line Rate (Mbps) = 10,000; Protocol/Framing Overhead % = 3; RX/TX Queue Count = 8

  2. Maximum usable throughput

    max_throughput = line_rate × (1 − overhead%)

  3. Max Usable Throughput (Mbps)

    = 9,700.0

  4. Throughput per Queue (Mbps)

    = 1,212.50

  5. RX/TX Queue Count

    = 8

How it works

A NIC's advertised line rate (e.g. 10GbE) is the raw physical-layer signaling rate, not the throughput available to applications — Ethernet/IP/TCP framing overhead (headers, interframe gaps, preambles, and any encapsulation like VLAN tags or tunneling) always consumes a percentage of that rate before payload data gets through. Modern multiqueue NICs also spread traffic across multiple RX/TX queues (typically one per CPU core, distributed via RSS) so that packet processing scales with core count rather than bottlenecking on a single CPU — dividing usable throughput by queue count estimates the per-queue share under evenly balanced load.

Formula

Maximum usable throughput

max_throughput = line_rate × (1 − overhead%)

R_{line}
NIC line rate
o
protocol/framing overhead fraction

Frequently Asked Questions

How do I check the number of RX/TX queues configured on a NIC?

`ethtool -l <iface>` shows the current and maximum combined/RX/TX queue counts; `ethtool -L <iface> combined <N>` adjusts it (support and limits vary by NIC driver).

Why doesn't traffic distribute perfectly evenly across queues?

RSS (Receive Side Scaling) hashes packet headers (typically the 5-tuple) to select a queue, so a small number of very high-volume flows can concentrate on fewer queues than expected — true even distribution depends on having many diverse flows, not just having many queues configured.

What typical overhead percentage should I assume?

For standard 1500-byte MTU Ethernet with TCP/IP, overhead is commonly in the 2-5% range; it rises with smaller packet sizes (fixed per-frame overhead is amortized over less payload) and with additional encapsulation layers like VLAN tagging, VXLAN, or IPsec.

You might also need