intel/CPU-Manager-for-Kubernetes

Asymmetric Core Requests Across Sockets (Feature Request)

Opened this issue · 0 comments

This is related to an ongoing conversation with @przemeklal and @lmdaly.

We have a use case where pods have a known affinity to NICs and/or other devices that may be asymmetric across sockets. For example, let's say we have the following hardware configuration:

Dual socket 18-core xeon
4 40Gbps NICs, two per socket

We launch a pod that requests resources for 3 NICs, and to service the throughput on those NICs with DPDK, we need 6 exclusive/isolated data plane cores per NIC. In this case we would want to request 6+6 cores from socket 0, and 6 cores from socket 1 so that our pod does not cross UPI/QPI on the data path. It would be ideal if in CMK there was flexibility to make requests as specific as this. In our case, we have a custom scheduler where we know exactly how many cores and NICs are free on each node, so we can make the appropriate combination of request. This would allow another pod that only needs a single NIC and 6 cores to be scheduled on the same node, and not have any affinity issues.