Linux Cgroups 的全称是 Linux Control Group。它最主要的作用,就是限制、记录、隔离,一个进程组(process groups)能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等。
在 Linux 中一切皆文件,Cgroups 给用户暴露出来的操作接口是文件系统,即它以文件和目录的方式组织在操作系统的 /sys/fs/cgroup 目录下。
mount -t cgroup
简单的理解Linu Cgroups: 就是一个子系统目录加上一组资源限制文件的组合。
task: 任务,在cgroups中,任务就是系统的一个进程
control group: 控制族群
关系
默认root cgroup所在的位置:/sys/fs/cgroup/
一个子系统最多只能附加到一个层级
一个任务可以是多个cgroup的成员,但是这些必须在不同的层级
系统中的进程(Task)创建子进程(task)时,该子任务自动成为其父进程所在cgroup的成员。然后可根据需要将该子任务移动到不同的cgroup中,单开始时它总是继承其父进程的cgroup。
Cgroups子系统
在 /sys/fs/cgroup目录 下面有 cpuset、cpu、 memory 这样的子目录,也叫子系统。这些都是我这台机器当前可以被 Cgroups 进行限制的资源种类。而在子系统对应的资源种类下,你就可以看到该类资源具体可以被限制的方法。
[root@localhost cgroup]# ls /sys/fs/cgroup/
blkio cpuacct cpuset freezer memory net_cls,net_prio perf_event systemd
cpu cpu