什么是 cgroup?

cgroup(Control Group)是 Linux 内核提供的资源隔离与限制机制,用于将进程分组并控制其资源使用。

  • 📌 核心功能:CPU、内存、磁盘 I/O、网络带宽等资源的分配与限制
  • 🧩 技术基础:基于 Linux 内核的 cgroups 模块
  • 🖥️ 应用场景:容器运行时(如 Docker、containerd)的核心依赖
cgroup_概念

cgroup 的作用 📈

  • 资源隔离:确保容器内进程不会占用宿主机全部资源
  • 优先级控制:通过权重分配实现资源抢占策略
  • 统计监控:记录进程组的资源使用明细(如 cpuacct 子系统)
  • 限制上限:防止单个容器消耗过多内存或 CPU
cgroup_作用

典型使用场景 🌐

  • Kubernetes 资源调度:通过 cgroup 实现 Pod 的资源配额
  • 云服务计费:将容器资源使用量映射到虚拟机层级
  • 故障隔离:限制异常进程对系统的影响范围
  • 性能优化:为关键服务预留资源(如数据库容器)
cgroup_使用场景

示例:cgroup 层级结构 📁

$ ls /sys/fs/cgroup/
cpu    memory    pids    blkio    cpuacct    net_cls    freezer

每个子系统(如 cpumemory)对应不同的资源控制维度

cgroup_层级结构

深入学习 🔍

想了解如何实际操作 cgroup?前往 容器原理:cgroup 使用实践 获取详细指南。

cgroup_操作示例