Below you will find pages that utilize the taxonomy term “Cgroup”
April 26, 2021
docker如何利用cgroup对容器资源进行限制
"\u003cp\u003e在容器里有两个非常重要的概念,一个是 \u003ccode\u003enamespace\u003c/code\u003e 用来实现对容器里所有进程进行隔离;另一个就是 \u003ccode\u003ecgroup\u003c/code\u003e,用来对容器进程内使用资源进行限制。那 \u003ccode\u003ecgroup\u003c/code\u003e 又是如何实现对资源进行限制的呢,今天我们来了解一下它的实现原理。\u003c/p\u003e\n\u003ch2 id=\"什么是cgroup\"\u003e什么是cgroup\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ecgroup\u003c/code\u003e 是 \u003ccode\u003eControl Groups\u003c/code\u003e 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离 进程组 所使用的物理资源(如 cpu、memory、磁盘IO等等) 的机制,被 \u003ccode\u003eLXC\u003c/code\u003e、\u003ccode\u003edocker\u003c/code\u003e 等很多项目用于实现进程资源控制。cgroup 是将任意进程进行分组化管理的 Linux 内核功能。\n\u003ccode\u003ecgroup\u003c/code\u003e 本身是提供将进程进行分组化管理的功能和接口的基础结构,I/O 或内存的分配控制等具体的资源管理功能是通过这个功能来实现的。 一定要切记,这里的限制单元为 \u003ccode\u003e进程组\u003c/code\u003e,而不是进程。\u003c/p\u003e\n\u003ch2 id=\"子系统\"\u003e子系统\u003c/h2\u003e\n\u003cp\u003e上面提到的具体的资源管理功能统称为 cgroup \u003ccode\u003e子系统\u003c/code\u003e,所有子系统列表可以通过 \u003ccode\u003ecat /proc/cgroups\u003c/code\u003e 命令查看,主要有以下几大子系统:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e# cat /proc/cgroups\n#subsys_name\thierarchy …\u003c/code\u003e\u003c/pre\u003e"