cgroup v2

概念

subtree control

利用 cgroup.controllerscgroup.subtree_control 可以指定子 cgroup 可以使用的 controller

  • cgroup.controllers 包含所有当前 hierarchy 可用的 controller(cgroup 根节点则是意味着所有可用挂载的 controller)

  • cgroup.subtree_control 包含子树中的 cgroup 可用的 controller(默认为空 - 即子 cgroup 不能使用任何 controller)

注意:cgroup.subtree_control 必须是 cgroup.controllers 的子集 —— 意味着,不能为子 cgroup 授权上层没有给自己授权的 controller

cgroup.type

默认情况下(cgroup.type = domain),所有 cgroup v2 的限制只能用来管理进程(而不能管理线程)

通过修改 cgroup.type 为 threaded 可以让 cgroup 可以用来管理线程

cgroup.threads


v2 controller (subsystem)

cpu

cpuset

freezer

hugetlb

io

memory

perf_event

pids

rdma

参考

https://man7.org/linux/man-pages/man7/cgroups.7.html

https://docs.kernel.org/admin-guide/cgroup-v2.html

https://github.com/systemd/systemd/blob/main/docs/CGROUP_DELEGATION.md