实现 cgroups的主要目的是为不同用户层面的资源管理,提供一个统一化的接口。从单个任务的资源控制到操作系统层面的虚拟化, groups提供了以下四大功能。
- 资源限制:groups可以对任务使用的资源总额进行限制。如设定应用运行时使用内存的上限,一旦超过这个配额就发出OOM( Out of Memory)提示。
- 优先级分配:通过分配的CPU时间片数量及磁盘O带宽大小,实际上就相当于控制了任务运行的优先级。
- 资源统计: groups可以统计系统的资源使用量,如CPU使用时长、内存用量等,这个功能非常适用于计费。
- 任务控制:groups可以对任务执行挂起、恢复等操作。