cgroups以及在K8s中的应用 - CPU

cgroups(control groups,控制组群) 是 Linux 内核的一个功能,用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等)。它是由 Google 的两位工程师进行开发的,自 2008 年 1 月正式发布的 Linux 内核 v2.6.24 开始提供此能力。cgroups到目前为止,有两个大版本, 即 v1 和 v2 。

cgroups可以限制、记录、隔离进程组所使用的物理资源(包括:CPU、memory、IO等),为容器实现虚拟化提供了基本保证,是构建docker、containerd、kubernetes等一系列容器服务的基石。

从单个进程的资源控制到操作系统层面的虚拟化。cgroups提供了以下四大功能

  1. 资源限制:cgroups可以对进程组使用的资源总额进行限制。如设定应用运行时使用内存的上限,一旦超过这个配额就发出OOM(Out of Memory)。
  2. 优先级分配:通过分配的CPU时间片数量及硬盘IO带宽大小,实际上就相当于控制了进程运行的优先级。
  3. 资源统计:cgroups可以统计系统的资源使用量,如CPU使用时长、内存用量等等,这个功能非常适用于计费。
  4. 进程控制:cgroups可以对进程组执行挂起、恢复等操作。

下面我们对v1和v2版本的使用进行一些简单的验证,并对于cgroups在kubernetes中的一些使用进行介绍,本节我们主要介绍cgroups对CPU使用率的限制能力。

cgroups v1介绍

猜你喜欢

转载自blog.csdn.net/qq_50573146/article/details/131411634
cpu