Cgroup(Control Group)是Linux内核中用于隔离和限制进程组资源使用的一种机制。它允许管理员对系统资源(如CPU、内存、磁盘IO等)进行细粒度的控制。
Cgroup的用途
- 资源隔离:可以将不同的进程或服务隔离在不同的Cgroup中,从而避免它们之间相互干扰。
- 资源限制:可以对Cgroup中的进程进行资源限制,如限制CPU使用率、内存使用量等。
- 优先级管理:可以通过调整Cgroup的优先级来控制进程的执行顺序。
Cgroup的组成部分
- 子系统:Cgroup由多个子系统组成,每个子系统负责管理不同的资源。常见的子系统有:
cpu
:控制CPU的使用。memory
:控制内存的使用。devices
:控制设备的使用。net_cls
:为网络数据包分类。ns
:命名空间。
- 控制组:由子系统组成,用于对进程进行分组。
示例
以下是一个简单的Cgroup配置示例:
# 创建名为mycg的Cgroup
cgcreate -g cpu,memory:mycg
# 将进程pid为1234的进程加入到mycg
cgclassify -g cpu,memory:mycg -p 1234
# 查看mycg的CPU使用情况
cgstat -i mycg
扩展阅读
Cgroup架构图