1. cgroups概述
1.1 为什么需要cgroup
在Linux里,一直以来就有对进程进行分组的概念和需求,比如session group, progress group等,后来随着人们对这方面的需求越来越多,比如需要追踪一组进程的内存和IO使用情况等,于是出现了cgroup,用来统一将进程进行分组,并在分组的基础上对进程进行监控和资源控制管理等。
1.2 cgroups简介
cgroups全称是control groups,是 Linux 内核的一个功能,用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等)。它是由 Google 的两位工程师进行开发的,自 2008 年 1 月正式发布的 Linux 内核 v2.6.24 开始提供此能力。cgroups 到目前为止,有两个大版本, cgroup v1 和 v2 。cgroup 主要限制的资源是、CPU、内存、网络、磁盘 I/O。当我们将可用系统资源按特定百分比分配给 cgroup 时,剩余的资源可供系统上的其他 cgroup 或其他进程使用。
cgroup 的作用基本上就是控制一个进程或一组进程可以访问或使用给定关键资源