Linux Cgroup from First Principles
a year ago
- #cgroups
- #Linux
- #system-resources
- Linux cgroups(控制组)用于限制进程的内存、CPU和网络带宽等资源分配。
- Cgroup v2随Linux内核4.5引入,相比v1提供了更简洁的设计架构。
- Linux遵循Unix哲学'一切皆文件',允许通过文件操作与内核子系统交互。
- Cgroups组织在`/sys/fs/cgroup`目录下,每个cgroup包含用于设置限制和监控使用的虚拟文件。
- 可通过启用`memory.max`、`cpu.max`等控制器强制实施资源约束。
- 通过将进程PID写入`cgroup.procs`或使用`cgexec`等工具可将进程移入cgroup。
- 可设置内存限制(如5MiB)防止进程超额使用资源,触发OOM(内存不足)终止机制。
- 可应用CPU节流(如1%分配比例)模拟资源超分场景。
- Cgroups提供隔离机制,适用于受限条件下的性能基准测试。
- 无效cgroup操作(如违反'无内部进程'约束)的错误信息可更具描述性。