首页/系统/Linux 内核与性能调优速查/cgroup v2 memory.max 硬上限
内存与 OOM58 条

cgroup v2 memory.max 硬上限

内存硬限额:用量触顶时先在组内回收,无法满足则触发 cgroup 级 OOM;是容器与关键服务内存隔离的主力接口。

内存硬上限

cgroup v2 的 memory.max 是控制组的硬性内存上限:用量触顶时内核先在组内回收,回收不出来就触发 cgroup 级 OOM,杀掉组内进程,而不影响机器上的其他服务。这是容器与关键服务做内存隔离的主力接口。查看当前用量用 memory.current,上限用 memory.max,写入 max 表示不限制。systemd 中对应 MemoryMax=2G,常与软限 memory.high 配合使用以缓冲峰值。

基本信息

当前用量memory.current
硬上限memory.max,写入 max 表示不限
软上限memory.high,超限后回收并放慢分配
systemd 对应MemoryMax= 与 MemoryHigh=
触顶行为组内回收,仍无法满足则触发 cgroup OOM

典型使用场景

  • 容器内存限额:docker 的 -m 与 Kubernetes 的 limits.memory
  • 防止单个服务耗尽整机内存
  • 区分容器 OOM 与宿主 OOM 的排查方向
  • 与 memory.low、memory.min 配合给关键服务留余量
  • 按业务规划内存预算与超卖比例

查看与设置

查看与设置
cat /sys/fs/cgroup/<组>/memory.current            # 当前用量
cat /sys/fs/cgroup/<组>/memory.max                # 硬上限
cat /sys/fs/cgroup/<组>/memory.high               # 软上限
cat /sys/fs/cgroup/<组>/memory.events             # oom、oom_kill、max 触顶计数
cat /sys/fs/cgroup/<组>/memory.stat | head -20    # 分类用量明细
systemctl set-property myservice.service MemoryMax=2G
systemctl show myservice.service -p MemoryMax -p MemoryCurrent

相关文件读法

文件含义注意
memory.current该组当前内存用量含页缓存,可能高于应用自身占用
memory.max硬性上限写入 max 表示不限制
memory.high软性上限超过后回收并放慢分配,不立即 OOM
memory.events事件计数oom_kill 增长表示组内进程已被杀
memory.stat分类明细anon、file、slab 等分类查看
限额过低会让容器先于宿主 OOM,报错落在容器日志与 memory.events 中;排查时不要只看宿主的内核日志。
memory.max 不一定覆盖组内全部内核内存(例如部分 slab 计入方式特殊),实际余量要留够,否则宿主仍可能出现整体内存紧张。

上限怎么定

  • 先看业务稳态与峰值用量,参考 memory.current 的历史高位,再在峰值之上留安全余量
  • Java 等应用要额外计算堆外内存、线程栈与元空间,不能只按堆大小设置限额
  • 用压测验证:按峰值的合理比例施加限额,观察 memory.events 的 max 与 oom_kill 计数

与编排配置的对应

  • docker 的 -m 与 --memory-swap 会写入 memory.max 与 memory.swap.max
  • Kubernetes 的 limits.memory 对应 memory.max,requests 主要影响调度结果
  • cgroup v1 的对应文件是 memory.limit_in_bytes,路径与语义都不同

易错点

  • 只在宿主侧排查:容器级 OOM 的证据在容器日志与 memory.events 里
  • 限额与业务峰值贴平:稍有波动就触发回收甚至 OOM
  • 忽略 memory.high:没有软限时内存会直接冲到硬限,回收压力集中爆发
  • 以为 memory.max 能管住所有内存:部分内核内存不计入组限额
  • 把限额当性能优化手段:它只做隔离,不会提升吞吐

数据来源与参考

  • Linux 内核 Documentation/admin-guide/cgroup-v2.rst
  • systemd.resource-control 手册
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌