You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes内存请求与限制在cgroup v2中的工作机制及memory.high参数的具体作用问询

Kubernetes内存请求与限制在cgroup v2中的工作机制及memory.high参数的具体作用问询

大家好,我最近在琢磨Kubernetes里的内存请求(request)和限制(limit)在cgroup v2下的工作机制,先跟大家同步下我目前理清的K8s配置与cgroup v2参数的对应关系:

  • memory.min 会被设置为K8s中配置的内存请求(memory request)的值
  • memory.max 直接对应K8s里的内存限制(memory limit)的值
  • memory.high 默认会设为内存限制的80%,但如果内存请求和限制的数值完全相等,这个参数就不会被设置
  • memory.low 始终保持未设置状态

其中memory.max的逻辑我倒是搞懂了:当cgroup里的进程尝试分配内存页时,要是分配后内存使用量会超过memory.max,而且没办法从这个cgroup内部回收足够的内存来把使用量控制在memory.max范围内,内核就会触发OOM killer,杀掉cgroup里的某个进程来释放内存,这个逻辑很直观。

但memory.high就有点让人摸不着头脑了,我查了内核文档,里面说当内存使用达到这个高水位线时,对应的cgroup会处于“高回收压力”状态,但这个“高回收压力”具体指什么?这个参数实际运作起来到底会对cgroup里的进程产生哪些具体影响?实在是没太搞明白,想请教下各位大佬。

备注:内容来源于stack exchange,提问作者Grisu47

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:13:03