KEP-1769keps/sig-node/1769-memory-manager
Memory Manager
The Memory Manager is a new component in kubelet ecosystem proposed to enable the feature of guaranteed memory (and hugepages) allocation for pods in Guaranteed QoS class. The feature offers a couple of allocation strategies. The first one, the single-NUMA strategy, is intended for high-performance and performance-sensitive applications. Relevant user storie… Full summary
The Memory Manager is a new component in kubelet ecosystem proposed to enable the feature of guaranteed memory (and hugepages) allocation for pods in Guaranteed QoS class. The feature offers a couple of allocation strategies. The first one, the single-NUMA strategy, is intended for high-performance and performance-sensitive applications. Relevant user stories are illustrated in here for the single-NUMA strategy. The second one, the multi-NUMA strategy, complements the overall design while it overcomes the situation that cannot be managed with the single-NUMA strategy. Namely, whenever the amount of memory demanded by a pod is in the excess of a single NUMA node capacity, the guaranteed memory is provisioned across multiple NUMA nodes with the multi-NUMA strategy. In both scenarios, the Memory Manager employs hint generation protocol to yield the most suitable NUMA affinity for a pod, and it feeds the central manager (Topology Manager) with those affinity hints. Moreover, Memory Manager ensures that the memory which a pod requests is allocated from a minimum number of NUMA nodes. The up-to-date implementation of the Memory Manager is available through the link in Implementation History section. Technically, the single-NUMA strategy is a special case of the multi-NUMA strategy, and thus, no separate implementation was developed for them. Still, the proposal differentiates between the single-NUMA and the multi-NUMA strategies. First of all, it allows for a number of important use cases or situations to be discussed and contrasted.
Facts
- Approvers
- @klueska@derekwaynecarr
- Reviewers
- @klueska@derekwaynecarr
- Tracking issue
- #1769(opens GitHub in a new tab) closedcompletedclosed 2025-02-03 23:46 UTCmilestone v1.32sig/nodestage/stablekind/featurekind/kep
- Milestones
- alpha v1.21beta v1.22stable v1.32
- Participating SIGs
- none
- Feature gates
- MemoryManager
- Created / last updated
- 2020-02-03 / 2024-11-10