To ensure pinning and exclusive affinity of all vCPUs of a VNF-C, set the VM configuration parameter sched.cpu.latencySensitivity to HIGH. This configuration also disables the interrupt coalescing and Large Receive Offload (LRO) automatically, which is not an issue, because data plane intensive VNF-Cs use DPDK and VMXNET3 DPDK poll mode driver for their data plane intensive vNICs.

To set a VNF-C for CPU affinity, follow the steps:

  1. In the vSphere Web Client, right click the VM and select Edit Settings.
  2. Select Virtual Hardware.
  3. Set the CPU and memory reservations of the VM to their maximal value.
  4. Set the CPU limit to Unlimited.
  5. Click VM Options and select Advanced.
  6. Scroll down to Latency Sensitivity and select High from the drop-down menu.
Important: The vCPUs will be pinned and receive exclusive affinity to a complete CPU core as opposed to a hyperthread. This reduces the risk of two heavy processes competing for hyperthread resources on the same CPU core, therefore reducing the effective CPU cycles available to each vCPU.

Recommendations

  • Set VM CPU and memory reservation to maximum and the CPU limit to unlimited.
  • Set sched.cpu.latencySensitivity = High for data plane intensive workloads.
  • Ensure VNF-C is compiled with DPDK and uses VMXNET3 DPDK poll mode driver.