var/run/vmware/edge/cpu_usage.json , the following is observed: "highest_cpu_core_usage_dpdk": 77.88, "dpdk_cpu_per_core": { "0": 77.88, > This is high cpu core usage "1": 0.03, "2": 0.01, "3": 0.04, "4": 0.05, "5": 0.01, "6": 0.01, "7": 0.01, "8": 0.01, "9": 0.02, "10": 0.01, "11": 0.02 },There is a kni_single kernel thread, in charge of communication between the userspace and kernel space.
This runs on a datapath fastpath core (i.e. on core 0 or 1), if some workload network traffic gets hashed to CPU core 0 or 1, it may get dropped due to the high CPU utilization.
This is a known issue and resolved in NSX-T 3.2.3 / NSX 4.1.1 or higher.
Workaround:
The workaround is to move the kni_single kernel thread to a non datapath CPU core.
SSH as root to the NSX-T Bare Metal Edge Node.
1. List the available CPU cores (to be ran as root user):
root@Edge-1:~# lscpuArchitecture: x86_64CPU op-mode(s): 32-bit, 64-bitByte Order: Little EndianCPU(s): 8On-line CPU(s) list: 0-7 <<<<<<Thread(s) per core: 1Core(s) per socket: 1Socket(s): 8NUMA node(s): 1Vendor ID: GenuineIntelCPU family: 6Model: 85Model name: Intel(R) Xeon(R) Gold 6138 CPU @ 2.00GHzStepping: 4CPU MHz: 1995.312BogoMIPS: 3990.62Virtualization: VT-xHypervisor vendor: VMwareVirtualization type: fullL1d cache: 32KL1i cache: 32KL2 cache: 1024KL3 cache: 28160KNUMA node0 CPU(s): 0-7
2. Check which of the CPU cores are used by the dataplane, log in as admin user:
Edge-1> get dataplaneAccept_ra : FalseBfd_ring_size : 512Bitw_mode : FalseCorelist : 0,1,2,3,4,5 <<<<< cores used for dataplane
In this example cores 6 and 7 are not used for the dataplane.
3. Get the PID of the kni_single kernel thread, login as root:
root@edge02:~# ps -aux|grep -i [k]ni_singleroot 7128 4.1 0.0 0 0 ? S Aug12 243:18 [kni_single]
4. Use the "taskset" command to list the current CPU affinity for the kni_single process:
root@edge02:~# taskset -pc 71287128's current affinity list: 0-3
Note: The above PID 7128 will be different.
5. Use the taskset command to set the cpu affinity of kni_single to non datapath cores:
root@edge02:~# taskset -pc 6-7 71287128's current affinity list: 0-37128's new affinity list: 6,7
Note: The above PID 7128 will be different and the core numbers may be different.
6. Verify that the change was made:
root@edge02:~# taskset -pc 71287128's current affinity list: 6,7
Note:
The above command outputs and values are only examples, these may vary depending on the environment.
This workaround will not persist across reboots. Please contact Broadcom Support and note this Article ID (312599) in the problem description for any issues or assistance required for this workaround.