CGroup简介
CGroup是 Control Groups 的简称,通俗的来说,cgroups 可以限制、记录、隔离进程组所使用的物理资源(包括:CPU、memory、IO 等),为容器实现虚拟化提供了基本保证,是构建 Docker 等一系列虚拟化管理工具的基石。
CGroup主要有四大功能:
资源限制(Resource Limitation):cgroups 可以对进程组使用的资源总额进行限制。如设定应用运行时使用内存的上限,一旦超过这个配额就发出 OOM(Out of Memory)。
优先级分配(Prioritization):通过分配的 CPU 时间片数量及硬盘 IO 带宽大小,实际上就相当于控制了进程运行的优先级。
资源统计(Accounting): cgroups 可以统计系统的资源使用量,如 CPU 使用时长、内存用量等等,这个功能非常适用于计费。
进程控制(Control):cgroups 可以对进程组执行挂起、恢复等操作
要了解CGroup,就要了解一些术语:task(任务), cgroup(控制组),subsystem(子系统),hierarchy(层级树)
task: task就是表示系统的一个进程。
cgroup: 资源控制的单位,表示一整个任务组,每个任