什么是 cgroup?
cgroup(Control Group)是 Linux 内核提供的资源隔离与限制机制,用于将进程分组并控制其资源使用。
- 📌 核心功能:CPU、内存、磁盘 I/O、网络带宽等资源的分配与限制
- 🧩 技术基础:基于 Linux 内核的
cgroups
模块 - 🖥️ 应用场景:容器运行时(如 Docker、containerd)的核心依赖
cgroup 的作用 📈
- 资源隔离:确保容器内进程不会占用宿主机全部资源
- 优先级控制:通过权重分配实现资源抢占策略
- 统计监控:记录进程组的资源使用明细(如
cpuacct
子系统) - 限制上限:防止单个容器消耗过多内存或 CPU
典型使用场景 🌐
- Kubernetes 资源调度:通过 cgroup 实现 Pod 的资源配额
- 云服务计费:将容器资源使用量映射到虚拟机层级
- 故障隔离:限制异常进程对系统的影响范围
- 性能优化:为关键服务预留资源(如数据库容器)
示例:cgroup 层级结构 📁
$ ls /sys/fs/cgroup/
cpu memory pids blkio cpuacct net_cls freezer
每个子系统(如
cpu
、memory
)对应不同的资源控制维度
深入学习 🔍
想了解如何实际操作 cgroup?前往 容器原理:cgroup 使用实践 获取详细指南。