What would you like to be added:
/kind feature
Why is this needed:
This issue is intended to start discussion for future enhancement of kubelet
-
Currently, there is no way to guarantee
local memory access
when container is deployed to machine that has multiple NUMA nodes. -
When container is pinned to specific
CPUs
by usingCPU Manager
, It can cause inter-NUMA node communication(remote memory access
) for Memory access which leads to increase an I/O latency and decrease performance. -
remote memory access
produces high latency and leads performance degradation ofDPDK
containers.
kubelet
sets a memory limits for a container throughCreateContainer
CRI message.
[code link]
- Using the
cpuset subsystem
,CPU
andMemory
can be isolated to a single NUMA node. cpuset.mems
requires memory node selection to permit processes to access a certain NUMA memory node.- Setting
cpuset.mems
to use a specific NUMA memory node also influence ahugepages
allocation policy so that hugepages can be isolated to the desired NUMA node.
kubelet
should provide a way to guaranteelocal memory access
on multi NUMA node machine.Cpuset subsystem
is key solution for this issue.