Intel® Ethernet 800 Series

Linux Performance Tuning Guide

ID Date Version Classification
636781 10/23/2023 Public
Document Table of Contents

​Low Latency

  • ​​Turn hyper-threading (logical cores) off.
  • ​​Turn irqbalance off. systemctl stop irqbalance

    or, to make the change permanent:

    systemctl disable irqbalance
  • ​​To enable busy poll. sysctl -w net.core.busy_poll=50 sysctl -w net.core.busy_read=50
  • ​Limit number of queues to be equal to the number of cores on the local socket (32 in this example). ethtool -L ethX combined 32
  • ​​Pin interrupts to local socket only (script packaged with ice driver source). set_irq_affinity -X local ethX
  • ​​Enable symmetric queuing to align Tx/Rx queues (script packaged with ice driver source). set_xps_rxqs ethX
  • ​​Turn off interrupt moderation. ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
  • ​​Use an established benchmark like: netperf -t TCP_RR

    or

    netperf -t UDP_RR
  • ​​Pin benchmark to a single core in the local NUMA node. taskset -c <cpu>