news 2026/6/10 15:25:31

cgroup(Control Group)是 Linux 内核提供的一种机制,用来“控制、限制、隔离、统计”进程对系统资源的使用。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
cgroup(Control Group)是 Linux 内核提供的一种机制,用来“控制、限制、隔离、统计”进程对系统资源的使用。

1. cgroup 是什么?它是做什么的?

cgroup(Control Group)是 Linux 内核提供的一种机制,用来“控制、限制、隔离、统计”进程对系统资源的使用。
它的作用可以理解成——给一组进程设置一个“资源沙箱”。

来自多个权威技术资料指出:

  • cgroup 能限制、统计并隔离一组进程对CPU、内存、I/O、网络等资源的使用
  • 是 Linux 系统实现容器(如 LXC/Docker)资源约束与隔离的关键基础
  • cgroup 不仅能限制资源,还能让系统管理员根据优先级优化资源调度,提高系统整体稳定性和性能

2. CGroup 的诞生

2006 年,Google 工程师在开源社区发起了一个用来管理和限制进程资源使用的项目,名为“process containers”,2007 年,Linux 内核团队将其改名为 cgroup 纳入到 Linux 内核 feature 项目中。在 2008 年 1 月发布的 Linux 2.6.24,这一功能被合并到了内核中。到 Linux 4.5 版本内核,CGroup v2 被合并到内核,这是一次在使用方式上的重大更新。

CGroup 一般也被称为“cgroups”,是 control groups 的简称。

CGroup 机制的功能就是对 linux 的一组进程进行包括 CPU、内存、磁盘 IO、网络等在内的资源使用进行限制、管理和隔离。

3. CGroup 的主要功能

CGroup 的主要功能有:

  1. 限制资源的使用,如划定内存等资源的使用上限,对文件系统的缓存进行限制等;
  2. 优先级控制,如让进程以低优先级被 CPU 调度等;
  3. 审计和统计,
    1. 某组消耗了多少 CPU 时间
    2. 内存峰值是多少
    3. 例如cpuacct子系统能统计 CPU 使用报告

  4. 挂起进程和恢复进程执行。

4. cgroups 子系统

CGroup 对进程组资源的限制是通过子系统来实现的,这样做的好处是可以便于新的功能的增加。目前已有的子系统有:

  1. cpu 子系统:主要限制进程的 cpu 使用率。
  2. cpuacct 子系统:可以统计 cgroups 中的进程的 cpu 使用报告。
  3. cpuset 子系统:可以为 cgroups 中的进程分配单独的 cpu 节点或者内存节点。
  4. memory 子系统:可以限制进程的 memory 使用量。
  5. blkio 子系统:可以限制进程的块设备 io。
  6. devices 子系统:可以控制进程能够访问某些设备。
  7. net_cls 子系统:可以标记 cgroups 中进程的网络数据包,然后可以使用 tc 模块(traffic control)对数据包进行控制。
  8. net_prio 子系统:这个子系统用来设计网络流量的优先级
  9. freezer 子系统:可以挂起或者恢复 cgroups 中的进程。
  10. ns 子系统:可以使不同 cgroups 下面的进程使用不同的 namespace
  11. hugetlb 子系统:这个子系统主要针对于HugeTLB系统进行限制,这是一个大页文件系统。

🧩cgroup v1 vs v2

很关键,因为实际系统行为依赖版本:

项目cgroup v1cgroup v2
控制器结构多层级、各自独立统一单层级
配置复杂度更简洁统一
应用场景旧系统/兼容性新系统(Android 新版本 & 主流 Linux)

文档指出:

  • v2 统一了层级结构,提高一致性和可维护性
  • Android、容器和现代发行版正在逐步向 v2 迁移,但仍保留 v1 以兼容某些控制器(如 cpuset)

🧪一句话总结

cgroup = Linux 给进程分配资源的“管家”和“警戒线”。 它让系统可以限制、隔离、统计并优化资源使用,是容器和现代系统资源管理的核心。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 6:50:43

Vue3+Pinia实战:从零搭建企业级后台管理系统的核心架构

第一部分:架构设计原则与技术选型依据企业级后台管理系统的核心需求分析企业级后台管理系统与普通Web应用存在本质差异,其核心需求可以归纳为四个维度:功能性需求、性能需求、安全需求和可维护性需求。功能性需求包括多模块集成、复杂数据交互…

作者头像 李华
网站建设 2026/6/10 11:48:09

Flink 自适应批执行(Adaptive Batch Execution)让 Batch 作业“边跑边优化”

1. 自适应批执行解决的核心痛点 传统静态计划的问题不在于优化器不聪明,而在于“信息不够”: 输入数据统计经常缺失或不准中间数据量和分布要等跑起来才知道Join 的两侧大小变化大,今天广播是神优化,明天可能直接 OOM并发度每天…

作者头像 李华
网站建设 2026/6/10 14:49:58

【总和拆分 + 双变量遍历】LCR_012_寻找数组的中心下标

求解代码 public int pivotIndex(int[] nums) {int leftSum 0;int rightSum 0;// 遍历数组&#xff0c;把所有元素的和存入 rightSum&#xff0c;// 此时 rightSum 是 “整个数组的和”for (int num : nums) {rightSum num;}for (int i 0; i < nums.length; i) {// 从总…

作者头像 李华
网站建设 2026/5/30 19:22:29

Flutter 三端应用实战:OpenHarmony “安全文本溢出处理调节器”

一、为何聚焦“文本溢出处理”&#xff1f;一个被忽视的体验断层点 在 OpenHarmony 应用开发中&#xff0c;文本溢出处理&#xff08;Text Overflow&#xff09; 是高频却高危的细节&#xff1a; ⚠️ TextOverflow.fade 真机渲染异常&#xff1a;手表端&#xff08;OH 3.2&am…

作者头像 李华
网站建设 2026/6/1 3:46:05

开题报告 简易移动端在线考试系统的设计与实现

目录 简易移动端在线考试系统的设计与实现介绍背景与意义核心功能模块技术实现方案创新点与难点预期成果 项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 简易移动端在线考试系统的设计与实现介绍 背景与…

作者头像 李华
网站建设 2026/6/9 20:53:20

多智能体系统工作流的设计模式与实现策略

一、多智能体系统工作流的核心理解 1.1 基本概念界定 多智能体工作流是指由多个具有自主决策能力的AI智能体通过结构化协作&#xff0c;完成复杂任务的系统性过程。这不是简单的任务队列&#xff0c;而是动态、自适应、可恢复的协作网络。 1.2 与传统工作流的区别 维度传统…

作者头像 李华