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 架构图