On this page
Observe the actual distribution
Multiple receive queues do not guarantee balanced work. RSS distributes flows according to the fields supported by the network card; traffic with little variation may concentrate on a subset of queues. Compare per-queue counters with individual core utilization. A low CPU average can hide one saturated core. Include hardware drops in the observation.
Check memory locality
On NUMA systems, card placement, memory allocation and CPU affinity can influence access costs. Document the topology before changing affinity. A layout copied from another server may not fit this card's PCIe location. Change one setting at a time; additional queues can also increase coordination costs depending on the filtering software.
Measure the real rule path
Header parsing, map lookups, shared state, accounting and logging all contribute work. Test the active policy instead of a simplified empty filter. Detailed per-packet logging may itself become a bottleneck. Use counters and controlled sampling, then verify that instrumentation does not materially change the behavior being measured.


