Improve packet throughput by enabling Default Queue Receive Side Scaling (DRSS) on the NIC card.

After you enable the Default Queue Receive Side Scaling (DRSS) configuration on a NIC port, Enhanced Network Stack (ENS) manages the receive-side data arriving at physical NIC cards. A single port on the physical NIC card makes multiple hardware queues available to receive-side data. Each queue is assigned a local logical core from the non-uniform memory access (NUMA) node. When inbound packets - multicast, unknown, or broadcast - arrive at a physical NIC port, they are distributed across several hardware queues, depending on the availability of logical cores. DRSS reduces bottlenecks processed by a single queue. DRSS is intended to serve broadcast, unknown, or multicast (BUM) traffic.
For example, on a physical NIC card that has two ports, you can configure one port to make multiple hardware queues available to efficiently manage receive-side (Rx) traffic. It can be done by passing DRSS=4,0 value in the ESXi system parameters command. This parameter enables the first physical NIC port for DRSS.
Note: If multiple context is not enabled, then configuring vNICs for multiple context does not work.

Prerequisites

  • Ensure the NIC card supports Default Queue Receive Side Scaling.

Procedure

  1. Install i40en ENS driver NIC driver.
  2. If the NIC has two ports, enable RSS on the first port of the physical NIC, by running the command.
    esxcli system module parameters set -m -i40en_ens -p DRSS=4,0

    Where, DRSS is enabled for 4 Rx queues on the first port and it is not enabled for Tx queues.

    The number of DRSS queues assigned depends on the number of physical CPUs available on the host.
    Note: Depending on the version of the NIC card, by default, the DRSS might be enabled or disabled.
  3. If NIC teaming is in use, then configuration of both NIC ports must be the same.

    esxcli system module parameters set -m -i40en_ens -p DRSS=4,4

  4. Unload Load the NIC driver for module parameters to take effect.
  5. Load the NIC driver.

What to do next

Configure multiple context so that ENS module can improve packet throughput of vNIC queues.