跳转到内容
搜索 RunEntLinux 文档

仅搜索 RunEntLinux 通用文档,各发行版文档使用各自的搜索入口。

    浏览当前文档目录

    EL 9:cgroup v2 成为默认

    EL 9 把默认控制组层级切换为 cgroup v2(统一层级,挂载为 cgroup2fs)。对容器用户,这意味着 rootless Podman 也能做完整的 CPU/内存限制;对运维用户,这意味着所有硬编码 /sys/fs/cgroup/memory/… 这类 v1 路径的监控与代理工具需要适配。

    cgroup v1 按控制器划分多个层级(/sys/fs/cgroup/cpu、/sys/fs/cgroup/memory……),同一进程在不同控制器里属于不同路径,语义混乱且有竞态。cgroup v2 改为单一统一层级:

    • 一棵树,每个进程组一个节点,所有控制器(cpu、memory、io、pids)在同一节点配置;
    • 更安全的委派模型:非特权用户可以被安全地委派一棵子树——这是 rootless 容器资源限制的前提;
    • 新增 PSI(Pressure Stall Information)等压力指标,成为新一代调度/自动扩缩容的数据源。

    EL 8 已提供 v2 但默认混合模式(hybrid),EL 9 起默认为纯 v2。

    项EL 8EL 9
    默认层级hybrid(v1+v2 并存)纯 v2(unified)
    挂载点多个 v1 层级 + /sys/fs/cgroup/unified/sys/fs/cgroup(cgroup2fs)
    rootless 容器资源限制受限完整支持
    v1 路径(如 …/memory/memory.limit_in_bytes)存在不存在
    • 监控/安全代理/旧版容器运行时:读取 v1 路径或期望 v1 布局的工具会拿到空数据或报错;需升级到支持 cgroup v2 的版本。
    • systemd 服务与切片:systemctl set-property 等接口不变,但底层落点变为统一层级;自定义的 cgroup 手工操作脚本需要改写。
    • 容器:Podman 4 在 v2 上获得更精确的内存记账与 OOM 处理;rootless 场景的限制(podman run --memory …)真正生效。
    • 回退:内核参数 systemd.unified_cgroup_hierarchy=0 可临时退回 hybrid,但仅作过渡手段,不建议长期。
    确认当前 cgroup 层级类型
    stat -fc %T /sys/fs/cgroup # cgroup2fs = v2
    mount | grep cgroup
    查看某服务的资源视图(v2 路径)
    cat /sys/fs/cgroup/system.slice/sshd.service/memory.current