-
Notifications
You must be signed in to change notification settings - Fork 14.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The Memory Manager official documentation #24642
Conversation
WIP Signed-off-by: Cezary Zukowski <c.zukowski@samsung.com>
Deploy preview for kubernetes-io-vnext-staging processing. Building with commit 9ccd0ca https://app.netlify.com/sites/kubernetes-io-vnext-staging/deploys/5f8dbe54a237100007f29a9d |
Welcome @cezaryzukowski! |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: cezaryzukowski The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/milestone 1.20 |
@cezaryzukowski: You must be a member of the kubernetes/website-milestone-maintainers GitHub team to set the milestone. If you believe you should be able to issue the /milestone command, please contact your Website milestone maintainers and have them propose you as an additional delegate for this responsibility. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@kbhawkey @kbarnard10 Hi, could you add it to the milestone 1.20? (only maintainers are allowed to do it via "/milestone 1.20") Thanks in advance. Cheers. |
/sig node |
/hold |
marked as draft. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here's some early feedback
In order to extract the best performance, optimizations related to CPU isolation, memory and device locality are required. However, in Kubernetes, these optimizations are handled by a disjoint set of components. | ||
--> | ||
|
||
The *Memory Manager* is a new component in *kubelet* ecosystem, and it enables 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. 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The *Memory Manager* is a new component in *kubelet* ecosystem, and it enables 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. 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. | |
The *Memory Manager* enables the feature of guaranteed memory (and hugepages) allocation for pods in the Guaranteed [QoS class](/docs/tasks/configure-pod-container/quality-service-pod/#qos-classes). You can select from two memory allocation strategies. The first one, the *single-NUMA* strategy, is intended for high-performance and performance-sensitive applications. 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. | |
With the *multi-NUMA* strategy, 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 |
|
||
`--feature-gates=MemoryManager=true` | ||
|
||
### Memory Manager Configuration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit:
### Memory Manager Configuration | |
### Memory Manager configuration |
|
||
Notice that both CPU and memory requests must be specified for a Pod to lend it to Guaranteed QoS class. | ||
|
||
### The Reserved Memory Flag |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
### The Reserved Memory Flag | |
### Reserved memory flag |
### Known Limitations | ||
|
||
- See [the limitations of Topology Manager](/docs/tasks/administer-cluster/topology-manager/#known-limitations). | ||
|
||
TBD |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be OK to omit this?
Friendly reminder that docs ready for review deadline is coming up on Nov 23rd, right after Kubecon NA. We would appreciate it if you could provide most of the doc content for this feature early so that it can be reviewed by Sig Docs before Kubecon and other events happening in November. When it's ready to be reviewed, please don't forget to change the stage from draft to ready to be reviewed. Thank you! |
Note: |
@annajung We will provide update ASAP. |
Hi @cezaryzukowski based on kubernetes/enhancements#1769 (comment) and kubernetes/kubernetes#95479 (comment), it looks like this will be deferred to 1.21. Please feel free to reopen this pr against the future release branch when it's available. /milestone clear |
@annajung: Closed this PR. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Hi @sftim @annajung, many thanks for initial feedback. I applied your suggestions. |
This is a placeholder PR.
PR refers to:
Signed-off-by: Cezary Zukowski c.zukowski@samsung.com