Calculate achievable throughput of a network interface card given link speed and overhead.
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.
Maximum usable throughput
max_throughput = line_rate × (1 − overhead%)
`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).
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.
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.