这是本专栏的第二部分:容器篇,共 6 篇,帮助大家由浅入深的认识和掌握容器。前面,我为你介绍了容器生命周期和资源管理相关的内容,让你对容器有了更加灵活的控制。之后从进程的角度带你认识了容器的本质还是一组进程。本篇,我来为介绍容器的核心——cgroups。
什么是 cgroups
先引用一句 Wiki 上对 cgroups 的定义:
cgroups,其名称源自控制组群(control groups)的简写,是 Linux 内核的一个功能,用来限制、控制与分离一个进程组的资源(如 CPU、内存、磁盘输入输出等)。
这句定义虽然比较抽象,但却也道出了 cgroups 的主要功能,限制、控制与分离一个进程组的资源。
这也是我们在上篇中从进程的角度分析容器时,得出容器应该具备的属性:“具备相同特性,也受相同限制的进程组”,它们所受的控制恰好就是由 cgroups 来完成的。
你可能会想知道,cgroups 可以控制哪些资源呢?
- CPU
- 内存
- IO
- 网络</