【CGROUP】10分钟深入理解CGROUP V1本质

本文介绍了CGROUP V1的核心思想,通过树型结构管理资源,控制任务的资源使用。详细讨论了如何统计任务资源、如何从cgroup获取任务列表,并提到了CGROUP V2为解决V1复杂性而引入的unified hierarchy概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  本文作为cgroup内核代码的开篇文档,只介绍cgroup的设计理念,不介绍具体代码。理解了本文即理解了cgroup的核心思想,可以更容易地理解其它cgroup的源码分析文章。文中出现的内核源码来源于4.14.4版本。

一、资源的树型管理
  CGROUP是拥有共同资源属性的任务的集合,用来控制一组任务拥有多少资源可用。内核中有多种资源(称为子系统,参考struct cgroup_subsys和 参考struct  cgroup_subsys_state),这些资源绝大多数是可数、可分配的,因此CGROUP V1版本中是以层次树(也叫 hierarchy)的方式来进行管理。因为树的子树或子节点 (参考struct  cgroup )属性可以体现资源的包含或子集关系。比如根节点拥有全部的资源上限(如内存2G),子节点拥有部分的资源上限(如内存1G)。任务挂到哪个节点上,就有相应的资源控制属性。
  为了简化或者减少数据结构,可以把多个资源放到一颗树上进行管理,因此cgroup这个对象可以同时管理多个资源(subsys),可以看到它有一个 cgroup_subsys_state数组成员用来保存这个节点中的多种资源当时的状态。

二、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值