Cgroup(Control Groups)是 Linux 内核的一个特性,它允许系统管理员对一组进程进行资源限制和隔离。在容器技术中,Cgroup 是实现资源隔离和限制的关键机制。

Cgroup 的作用

  • 资源限制:限制进程组使用的资源,如 CPU、内存、磁盘 I/O 等。
  • 优先级调整:调整进程组的优先级,影响系统资源的分配。
  • 进程隔离:隔离进程组,防止一个进程影响其他进程。

Cgroup 的组成部分

  • 子系统:Cgroup 支持多种子系统,如 cpu、memory、devices、net_cls、ns 等。
  • 控制组:由一个或多个子系统组成,用于管理一组进程。

常用子系统介绍

  • cpu:限制进程组使用的 CPU 核心数和 CPU 时间。
  • memory:限制进程组使用的内存大小和内存交换。
  • devices:限制进程组对某些设备的访问。

Cgroup 的使用方法

以下是一个简单的 Cgroup 配置示例:

# 创建一个名为 mycg 的控制组
cgcreate -g cpu,memory:mycg

# 将进程添加到 mycg 控制组
cgclassify -g cpu,memory:mycg <pid>

# 查看控制组信息
cgget -g cpu,memory:mycg

扩展阅读

想了解更多关于 Cgroup 的知识?可以阅读以下文章:

Cgroup 架构图