Skip to content

Commit 88bd54b

Browse files
authored
Merge pull request #48578 from Tal-or/mm_goes_ga_blog
blog: Memory Manager goes GA
2 parents 84dff7c + 18c34f7 commit 88bd54b

File tree

1 file changed

+72
-0
lines changed
  • content/en/blog/_posts/2024-11-11-memory-manager-moves-to-ga

1 file changed

+72
-0
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
layout: blog
3+
title: "Kubernetes v1.32: Memory Manager Goes GA"
4+
date: 2024-11-11
5+
slug: memory-manager-goes-ga
6+
author: >
7+
[Talor Itzhak](https://github.com/Tal-or) (Red Hat)
8+
draft: true
9+
---
10+
11+
With Kubernetes 1.32, the memory manager has officially graduated to General Availability (GA),
12+
marking a significant milestone in the journey toward efficient and predictable memory allocation for containerized applications.
13+
Since Kubernetes v1.22, where it graduated to beta, the memory manager has proved itself reliable, stable and a good complementary feature for the
14+
[CPU Manager](/docs/tasks/administer-cluster/cpu-management-policies/).
15+
16+
As part of kubelet's workload admission process,
17+
the memory manager provides topology hints
18+
to optimize memory allocation and alignment.
19+
This enables users to allocate exclusive
20+
memory for Pods in the [Guaranteed](/docs/concepts/workloads/pods/pod-qos/#guaranteed) QoS class.
21+
More details about the process can be found in the memory manager goes to beta [blog](/blog/2021/08/11/kubernetes-1-22-feature-memory-manager-moves-to-beta/).
22+
23+
Most of the changes introduced since the Beta are bug fixes, internal refactoring and
24+
observability improvements, such as metrics and better logging.
25+
26+
## Observability improvements
27+
28+
As part of the effort
29+
to increase the observability of memory manager, new metrics have been added
30+
to provide some statistics on memory allocation patterns.
31+
32+
33+
* **memory_manager_pinning_requests_total** -
34+
tracks the number of times the pod spec required the memory manager to pin memory pages.
35+
36+
* **memory_manager_pinning_errors_total** -
37+
tracks the number of times the pod spec required the memory manager
38+
to pin memory pages, but the allocation failed.
39+
40+
41+
## Improving memory manager reliability and consistency
42+
43+
The kubelet does not guarantee pod ordering
44+
when admitting pods after a restart or reboot.
45+
46+
In certain edge cases, this behavior could cause
47+
the memory manager to reject some pods,
48+
and in more extreme cases, it may cause kubelet to fail upon restart.
49+
50+
Previously, the beta implementation lacked certain checks and logic to prevent
51+
these issues.
52+
53+
To stabilize the memory manager for general availability (GA) readiness,
54+
small but critical refinements have been
55+
made to the algorithm, improving its robustness and handling of edge cases.
56+
57+
## Future development
58+
59+
There is more to come for the future of Topology Manager in general,
60+
and memory manager in particular.
61+
Notably, ongoing efforts are underway
62+
to extend [memory manager support to Windows](https://github.com/kubernetes/kubernetes/pull/128560),
63+
enabling CPU and memory affinity on a Windows operating system.
64+
65+
## Getting involved
66+
67+
This feature is driven by the [SIG Node](https://github.com/Kubernetes/community/blob/master/sig-node/README.md) community.
68+
Please join us to connect with the community
69+
and share your ideas and feedback around the above feature and
70+
beyond.
71+
We look forward to hearing from you!
72+

0 commit comments

Comments
 (0)