Check out my first novel, midnight's simulacra!

Receive Side Scaling: Difference between revisions

From dankwiki
No edit summary
Tags: mobile web edit mobile edit
No edit summary
Tags: mobile web edit mobile edit
 
Line 2: Line 2:


<tt>irqbalance</tt> works by identifying large interrupt sources, and binding their handlers to different processors. Under this scheme, a single NIC's traffic will only be handled on a single CPU. With sufficiently high loads, we need handling on multiple CPUs. RSS is typically configured so that all packets of a given flow go to a single CPU, and different flows are randomly distributed across CPUs. Each receive queue gets its own IRQ, which can then be directed to a set of CPUs via standard processes. <tt>irqbalance</tt> can conflict with manual RSS configurations.
<tt>irqbalance</tt> works by identifying large interrupt sources, and binding their handlers to different processors. Under this scheme, a single NIC's traffic will only be handled on a single CPU. With sufficiently high loads, we need handling on multiple CPUs. RSS is typically configured so that all packets of a given flow go to a single CPU, and different flows are randomly distributed across CPUs. Each receive queue gets its own IRQ, which can then be directed to a set of CPUs via standard processes. <tt>irqbalance</tt> can conflict with manual RSS configurations.
==ethtool==
* <tt>--show-ntuple</tt>:


==Links==
==Links==
* Microsoft [https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-receive-side-scaling RSS docs] under "Driver Technologies"
* Microsoft [https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-receive-side-scaling RSS docs] under "Driver Technologies"

Latest revision as of 15:15, 2 April 2022

Receive Side Scaling (RSS) is a method of directing incoming traffic to different CPUs. It requires support in the bus (MSI-X), NIC hardware (such hardware is commonly referred to as "multi-queue") and driver. In the absence of hardware support, Linux implements Receive Packet Steering in software, but it is higher in the stack.

irqbalance works by identifying large interrupt sources, and binding their handlers to different processors. Under this scheme, a single NIC's traffic will only be handled on a single CPU. With sufficiently high loads, we need handling on multiple CPUs. RSS is typically configured so that all packets of a given flow go to a single CPU, and different flows are randomly distributed across CPUs. Each receive queue gets its own IRQ, which can then be directed to a set of CPUs via standard processes. irqbalance can conflict with manual RSS configurations.

ethtool

  • --show-ntuple:

Links

  • Microsoft RSS docs under "Driver Technologies"