一、Cgroups 简介
- Cgroups 是 Linux 系统内核提供的一种机制,这种机制可以根据需求将一些列系统任务机器子任务整合或分离到按资源划分登记的不同组内,从而为系统资源管理提供一个的框架。简单地说,Cgroups 可以限制、记录任务组所使用的物理组员(比如 CPU、Memory、IO等),为容器实现虚拟化提供了基本保证,是构建 Docker 等一些列虚拟化管理工具的基石。
- 从 2013 年开源的 Docker 推出、2014 年开源的 Kubernetes 出现,到现在的云原生技术与生态的全面普及与火热化,容器技术已经逐步成为主流的基础云原生技术之一。使用容器技术,可以很好地实现资源层面上的限制和隔离,这都依赖于 Linux 系统内核所提供的Cgroups和 Namespace 技术。
- Cgroups 主要用来管理资源的分配、限制;Namespace 主要用来封装抽象、限制、隔离资源,使命名空间内的进程拥有它们自己的全局资源。Linux 内核提供的 Cgroups 和 Namespace 技术,为容器实现虚拟化提供了基本保证,是构建 Docker 等一些列虚拟化管理工具的基石。
- Cgroups 是 control groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如 CPU、Memory、IO 等