4.2.4. Performance Tuning

Slow packet processing

Symptoms
  • Packet processing performance is not as high as expected.

Hints
  • Follow the advice provided in fast-path.sh config -i when using the advanced configuration.

  • If running in a VM, check that the qemu instance handling your VM is pinned on specific cores. See CPU Pinning for VMs section for details.

Performance drop with Mellanox ConnectX-3 devices

Symptoms:
  • Packet processing is slower than expected

Hints:
  • On Dell and SuperMicro servers, PCI read buffer may be misconfigured for ConnectX-3/ConnectX-3-Pro NICs. Check the output of setpci -s <NIC_PCI_address> 68.w. For instance:

    # lspci | grep Mellanox
    04:00.0 Ethernet controller: Mellanox Technologies MT27520 Family [ConnectX-3 Pro]
    # setpci -s 04:00.0 68.w
    202e
    

    Warning

    Beware with the following command, it is known to cause spontaneous reboot on some systems.

    If the value is below 0x5020 (here that’s the case), set it to 0x5020:

    # setpci -s 04:00.0 68.w=5020
    

Performance drop with AWS ENA devices

Symptoms:
  • Packet processing is slower than expected

Hints:
  • If ENAv2 is used (both HW, and SW driver), the Low Latency Queue v2 (LLQv2) feature may be enabled on the platform. In this case, DPDK documentation suggests enabling “write combining” for the virtualization driver used as a backend by the PMD. This is disabled by default.

    You can automatically do this at module insertion time with an appropriate modprobe.d configuration file:

    # /etc/modprobe.d/igb_uio.conf
    options igb_uio wc_activate=1
    

    Warning

    Be careful though, as this has been known to degrade performance depending on your setup (kernel version, ENA without LLQv2…), so make sure to test it.