Linux cgroup 源码解读(一)

Linux Kernel Cgroups源码浅析 本文是我几个月前在研究linux kernel Cgroups时整理的。文中大部分的理论知识是从网上各种贴子solo的,源码分析部分,我是基于kernel 4.4.19的代码进行解读分析的,各个内核版本之间应该几乎没啥差别。介绍Cgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memo 阅读详情

Linux cgroup 几个重要的数据结构:

一个/多个cgroup_control子系统,组成一个树形结构。

1. cgroup_root:cgroup(树)的根,初始所有系统都挂载在全局默认cgrp_dfl_root上。一个cgroup_root可以挂载多个子系统。一个只系统,只能挂载在一个cgroup_root上。

2. cgroup:树子节点。每在一个cgroup_root下创建一个目录,就会创建一个cgroup。

3. cgroup_subsys_state:指定cgroup的子系统状态。因为无法确定一棵树所挂载的子系统,所以cgroup包含一个所有子系统状态的数组。

一个进程,一定是挂载多个子系统下,也即挂载多个不同的树的cgroup下。所以为了精简task结构体的大小,单独出一个css_set来表示。所以,css_set 包含一个系统当前所挂载的cgroup链表。

多个进程,可以在同一个css_set中,当把一个进程加入/移除某个cgroup,先在已有css_set查找是否已经存在这样的css_set,为了方便的查找是否已存在相应css_set,css_set还包括一个所有子系统状态的列表,只有所有子系统状态一样,再进行进一步查找,确保对应的cgroup也一样。

每次mount一个子/多个系统,就会创建一个cgroup_root,系统就会遍历所有css_set,更新所有css_set的cgroup链表。

 

cgroup初始化流程如下图:

 

 

 

深入解读Linux进程调度Schedule 长文慎入~~ 调度系统是现代操作系统非常核心的基础子系统之一,尤其在多任务并行操作系统(Multitasking OS)上,系统可能运行于单核或者多核CPU上,进程可能处于运行状态或者在内存中可运行等待状态。如何实现多任务同时使用资源并且提供给用户及时的响应实现实时交互以及提供高流量并发等对现代操作系统的设计实现带来了巨大挑战,而Linux调度子系统的设计同样需要实现这些看似矛盾的要求,适应不同... 阅读详情

相关推荐

Kubernetes源码编译安装最佳实践:Ubuntu 24.04 + k8s v1.28.8

Kubernetes(k8s)作为云原生核心编排系统,其稳定运行依赖于底层组件的精确构建与深度可控。源码编译并非炫技,而是实现确定性交付、安全合规审计与故障精准定位的技术前提——它揭示kube-apiserver的启动参数机制、kubelet与containerd的cgroup驱动协同原理,并支撑金融级SLA所需的可追溯SBOM生成能力。在Ubuntu 24.04这一cgroup v2原生、systemd 255优化、containerd 1.7+预置的新一代LTS基座上,结合k8s v1.28.8 LTS

462

Linux源码剖析——CGroup 实现原理

前面我们介绍了CGroup的使用与基本概念,接下来将通过分析源码(本文使用的 Linux2.6.25 版本)来介绍CGroup的实现原理。在分析源码前,我们先介绍几个重要的数据结构,因为CGroup就是通过这几个数据结构来控制进程组对各种资源的使用。cgroup。

白话机器学习 1208

Linux内核中的overlay文件系统

Docker 内核实现容器的功能用了linux 内核中的三个特性 Namespace、Cgroup、UnionFs,今天我们来说一下UnionFs。linux UnionFs 实现的是overlay 文件系统OverlayFs 文件系统分为三层,lower 是只读层Upper 是可读写Merged 是 lower 和Upper 合并的目录。

qq_32783703的博客 6187

Cgroup核心代码分析

Linux Kernel Cgroup Core

1647

波束形成算法:LCMV实现(MATLAB)

阵列信号处理,波束成形,

weixin_43601588的博客 1万+

量化实战:如何用Barra多因子模型给你的投资组合做一次‘风险体检’?

本文详细介绍了如何利用Barra多因子模型对投资组合进行全面的风险体检,帮助投资者识别行业和风格因子的风险暴露。通过实战案例和Python代码示例,展示了数据采集、风险归因和组合优化的完整流程,提升投资组合的风险调整收益。

weixin_27215337的博客 323

Linux源码编译开启cgroup blk限制io性能

经过上面的mout之后就可以看到/sys/fs/cgroup/blkio中出现了各种控制节点。

GetnextWindow的专栏 906

TT电机、310电机、370电机在智能小车与机器人中的性能对比与选型指南

本文深入对比了TT电机、310电机和370电机在智能小车与机器人项目中的核心性能差异。文章从尺寸、扭矩、转速、电压电流等关键参数入手,结合不同应用场景(如入门小车、竞技机器人、机械臂),提供了清晰的选型指南和驱动控制建议,帮助开发者根据项目需求选择最合适的电机方案。

weixin_29065015的博客 411

Linux Cgroups

Linux Cgroups详解,C语言代码测试

huchao_lingo的博客 1014

Hypermesh联合ABAQUS—Sets的建立和编辑

打开part copy对话框在对话框的最上面位置可以输入copy后的名称,然后将最下面的Separate disconnected regions into parts(将不连续的区域分割成parts)选项的前面方框勾选上。打开abaqus软件界面,File→import→model,将file filter选为inp格式,找到要导入的有限元文件,单击OK导入文件。HyperWorks新建Set时,会在Model Browser显示,打开Create Set对话框显示详细信息。快捷键,高亮set的内容。

动力资料屋的博客 1292

【深度学习新浪潮】Qwen门控注意力斩获NeurIPS 2025最佳论文!技术解析与代码实现

Qwen团队的门控注意力机制获得NeurIPS 2025最佳论文,不仅是中国AI研究的重大突破,更是大模型架构创新的重要里程碑。这项研究证明,通过巧妙的架构设计,可以在不显著增加计算成本的前提下,大幅提升模型性能。正如论文所展示的,用一个极其简单的改动,同时解决了Transformer架构中的多个核心问题,这正是优秀研究的价值所在。该技术已成功应用于Qwen3大模型,为通义千问系列产品的性能提升提供了坚实的技术支撑。轻量化大模型设计多模态统一架构专用领域大模型优化边缘计算场景部署。

专注:太空算力、AI infra、异构调度、大模型成本工程 570

cgroup底层技术研究二、cgroup源码解析(1)

cgroup底层技术研究二、cgroup源码解析(1)

phmatthaus的专栏 1502

Dify框架面试内容整理-如何优化Dify的应用性能?

为1536维)可选用 PCA、FAISS 的量化压缩方法降低维度(如128、256、512);对知识库预览、任务流配置等页面,使用 nginx/cache-control 减少请求。API 响应耗时(P50/P95)、Token 使用量、缓存命中率、向量检索耗时;对 Prompt+输入内容计算 Hash,缓存相同请求的返回结果;使用占位符 + 函数拼接,按需组合 Prompt,而非静态长模板;数据量大时,应在构建索引前清洗冗余段落、统一格式,避免重复向量。维度越低,检索越快,但可能影响召回准确度,需平衡。

不务正业的猿 1551

hadoop cgroup源码解读

版本:hadoop2.7.2 + centos 6.5现状想要理解hadoop cgroup,首先需要对linux cgroup有一定的了解,yarn目前的调度基于内存和cpu,但是cpu资源并没有像内存资源那样进行了严格的限制,一个container有可以占据很多的cpu资源。启用hadoop cgroup,可以参照我的博客hadoop启用cgroup还有一篇关于cgroup的介绍当前版本hado

刘光华的专栏 1478

大模型之Spring AI实战系列(二十六):Spring Boot + DeepSeek 实战指南:构建AI聊天应用

在人工智能技术飞速发展的今天,大型语言模型已经成为了推动技术创新的重要力量。DeepSeek作为国内领先的大型语言模型提供商,其推出的DeepSeek系列模型在多个领域都展现出了卓越的性能。本文将详细介绍如何使用Spring Boot框架集成DeepSeek API,构建一个简单的AI聊天应用。我们将实现两个核心功能:普通文本生成和流式文本生成。

寻道AI,探索AI无限可能! 2264

开源数字人、虚拟直播部署教程

对,你无看错,是欧美的。在直播带货案例里,我们把模型导入到ue4,我们给模型在ue4里预设了四个动作(站着、站着说话、坐着、坐着说话),三个表情(平静、开发、愤怒),三个镜头(全局、近矩说话、看显示器播放商品展示)。我们只需要把目标主播的直播给录制下来,提取样本数据,然后训练一个从粉丝的不同刺激的组合,到主播的不同响应方式的多元逻辑回归的数学模型参数即可。

南七小僧的学海无涯 4563

hcsshim GCS客座代理源码解读:Linux虚拟机内的容器管家如何运转

如果你在 Windows 上跑过 Linux 容器,一定听过 hcsshim 这个名字。它是微软开源的 **Host Compute Service Shim**,负责把 Windows 宿主机与 Linux 虚拟机(UVM)之间的指令"翻译"成双方都能听懂的语言。而本文要深度解读的,正是 hcsshim 中最神秘、也最关键的一环——**GCS 客座代理(Guest Compute Service

gitblog_00794的博客 336

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

深入解读Docker底层技术Cgroup系列(5)——cgroup子系统cpuset

日期 内核版本 CPU架构 作者 2019.04.06 Linux-4.4 PowerPC LoneHugo 系列文章:https://blog.youkuaiyun.com/Vince_/article/details/89070001 初始化过程 在start_kernel中cgroup_init之前调用cpuset_init进行初始化; 初始化struc...

Hugo的博客 750

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

《Linux内核源码全景解读:从上电到用户态》之 目录

从源码入手解读 Linux-7.1.3

m0_37749564的博客 222

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Linux源码解读作业之文件篇

操作系统文件的内部表示有文件索引节点表(inode)、文件表(file)、用户文件描述符表(files),请你基于Linux4.19.X源代码,找出其中对应的数据结构定义,并描述一下这三者之间的关系,举例说明。 >

weixin_52922105的博客 1030

从内核源码角度理解cgroup cpu中的cfs_period_us、cfs_quota_us配置

摘要:Linux内核5.10.202版本中,CFS调度器通过定时器机制实现带宽控制。当定时器周期到期时,会调用sched_cfs_period_timer回调函数,将任务的剩余可用时间(runtime)重置为预设的配额值(quota)。该机制通过__refill_cfs_bandwidth_runtime函数实现,确保任务在每个周期内获得固定的CPU时间配额。定时器初始化时配置了回调函数,并在到期时触发时间补充,从而维持公平调度。

kiraskyler的博客 633

源码解读Linux的limits.conf文件

目录 目录 1 1.前言 1 2.PAM 2 3.pam_limits 2 4.limits.conf的由来 3 5.模块入口函数 4 6.解析limits.conf 6 7.生效limits.conf 7 8.systemctl和systemd 8 9.总结 10 附1:资源 11 附2:编译ninja 11 附3:使用meson编译system...

一见 8494

Linux内核高危漏洞CVE-2023-XXX1/XXX2深度解析与实战修复指南

Linux内核作为操作系统的核心,负责管理系统的所有关键资源,其安全性直接关系到整个计算环境的稳定。内核漏洞,特别是内存管理和进程调度子系统中的缺陷,往往涉及底层原理,如内存页的分配回收机制(swap/KSM)和进程的调度权重计算(cgroup)。这类漏洞的技术价值在于,攻击者可能利用它们进行权限提升或拒绝服务攻击,危害极大。其应用场景广泛,从云计算平台的虚拟机、容器集群,到企业数据中心的物理服务器,乃至嵌入式设备,只要运行受影响版本的Linux内核,均面临风险。本文聚焦于近期披露的两个高危内核漏洞(涉及内

diandingyin9417的博客 429

Linux CFS 的 psi_enqueue/dequeue:压力状态信息收集

Linux内核PSI压力监控机制深度解析 PSI(Pressure Stall Information)是Linux 4.20引入的核心特性,通过精确测量任务因CPU、内存或IO资源不足而停滞的时间,为系统性能分析提供了革命性的工具。本文深入剖析了PSI在CFS调度器中的实现机制,重点关注psi_enqueue和psi_dequeue两个关键函数: 核心原理:PSI通过跟踪任务在就绪队列中的等待时间来计算三类资源压力指标(CPU/Memory/IO),分为"部分压力"和"完全压

望获实时Linux系统 222

Android源码分析 - SystemServer(上)

本篇以android-11.0.0_r25作为基础解析上一篇文章Android源码分析 - Zygote进程,我们分析了Android 进程的启动和之后是如何接收消息创建App进程的在上一章中,我们说了,的一大作用就是启动,那么是怎么启动的呢?启动后又做了些什么呢?我们分上下两篇来分析,本篇介绍是如何启动的主要是用来创建系统服务的,譬如我们熟知的,都是由它创建的我们从上一篇文章的开始,类的源码路径为 之前在c++代码中JNI调用Java函数的时候,带了参数,在这里就会通过这个参数判断是否启动,接下来调用方法

qq_34231329的博客 749
上一篇: 研发管理:管人之根本---始终坚持以提高工程师的个人能力为首要目的
下一篇: 研发管理人员能力维度
Chayton_Chan
博客等级 码龄17年 8粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值