cgroup v1 与 v2 的差异与迁移

结论先行

cgroup v2 用统一层级管理 CPU、内存、I/O 等控制器,是现代发行版和容器运行时的默认选择。v1 是多层级、按控制器分别挂载,仍存在于老系统和部分混合模式中。

核心差异

维度 cgroup v1 cgroup v2
层级 每个控制器一棵树 单一统一层级
资源文件 控制器各自命名 统一 cgroup.controllers/cgroup.subtree_control
内存限制 memory.limit_in_bytes memory.max
CPU 配额 cpu.cfs_quota_us cpu.max
统计 分散在各控制器 memory.current、cpu.stat 等统一
线程模式 不统一 支持 threaded 子树
容器支持 广泛但复杂 新运行时默认

怎么选

检查与迁移

stat -fc %T /sys/fs/cgroup
mount | grep cgroup
cat /proc/cgroups
cat /sys/fs/cgroup/cgroup.controllers
cat /sys/fs/cgroup/memory.max
cat /sys/fs/cgroup/cpu.max

相关命令