一、综述
1、cgroup 可以控制进程组的资源(cpu,memory,i/o等)
2、cgroup 采用树型结构来控制进程组的资源
3、cgroup 利用资源子系统来分割资源
4、cgroup 是lxc,docker等虚拟化技术的基石
二、cgroup基本概念
1、task任务,就是系统中的一个进程
2、control group 控制族群,一个进程组,cgroup控制资源的基本单位
3、hierarchy层级,控制族群有层级,子层级自动继承父层级的特性
4、subsystem子系统,资源控制器,它需要附着到一个层级上,一般是顶级层级
三、android上的cgroup
上图是android使用cgroup的情况,它利用cpu子系统来控制进程的cpu资源
1、cpuctl是顶级层级,apps子层级,里面控制前后台进程的资源。
2、tasks 存放的是被控制的进程tid,procs存放的是被控制的进程pid
3、cpu.*存放的是cpu资源的参数
四、ubuntu上的cgroup
ubuntu的cgroup默认挂载点在/sys/fs/cgroup,里面的子系统是最全的,读者有兴趣可以看看