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

【访问控制】cgroup限制磁盘读写 blkio是cgroup中的一个子系统,可以用于限制及监控磁盘读写io blkio控制子系统可以限制进程读写的 IOPS 和吞吐量,但它只能对 Direct I/O 的文件读写进行限速,对 Buffered I/O 的文件读写无法限制 Buffered I/O 指会经过 PageCache 然后再写入到存储设备中。这里面的 Buffered 的含义跟内存中 buffer cache 不同,这里的 Buffered 含义相当于内存中的buffer cache+page cache。 阅读详情

编译选项 - 内核5.9

General Setup

        ---> Control Group support  ---> io controller

Enable the block layer

        --->Block layer bio throttling support

        --->Multiqueue writeback throttling

.config编译名称

CONFIG_FAIR_GROUP_SCHED=y
# CONFIG_CFS_BANDWIDTH is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_CGROUP_PIDS=y
# CONFIG_CGROUP_RDMA is not set
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_HUGETLB=y
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y

CONFIG_BLK_DEV_THROTTLING=y

mount cgroup

mount -t tmpfs cgroup_root /sys/fs/cgroup
mkdir /sys/fs/cgroup/blkio
mount -t cgroup -o blkio none /sys/fs/cgroup/blkio

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

参考文章:

Linux是如何对容器下的进程进行CPU限制的,底层是如何工作的?-电子发烧友网

cgroup-blkio子系统分析 1      概述Cgroup中的blkio子系统的主要功能是实现对磁盘i/o带宽的可定制化控制。目前支持的控制策略只要有两种:BLKIO_POLICY_PROP和BLKIO_POLICY_THROTL,即基于权重方式和基于流量方式。权重方式依赖于内核原生的CFQ i/o调度算法,i/o调度算法本身是工作在i/o调度层的,因此在使用上有一定的局限性,即被控制的设备必须使用cfq调度算法;为了弥补这... 阅读详情

相关推荐

RV1126B部署Docker:ARM64嵌入式内核定制与NPU容器化实战

Docker作为现代容器化技术的核心,其运行依赖Linux内核的cgroups、namespaces、OverlayFS等基础机制。在ARM64架构的嵌入式平台(如瑞芯微RV1126B)上,由于出厂内核高度裁剪、设备树限制及NPU硬件抽象层约束,标准Docker安装流程必然失败。需从内核源码级启用13项关键配置(如CONFIG_CGROUPS=y、CONFIG_USER_NS=y、CONFIG_OVERLAY_FS=m),手动挂载cgroup v2、加载模块并调优daemon.json。同时必须使用ARM6

weixin_29188997的博客 242

Linux kernel 配置选项

General setup 常规设置 Cross-compiler tool prefix CONFIG_CROSS_COMPILE 交叉编译工具前缀(比如"arm-linux-"相当于使用"make CROSS_COMPILE=arm-linux-"进行编译).除非你想配置后默认自动进行交叉编译,否则不要使用此选项. Local version - append to kernel rel...

qq_28779021的博客 1万+

KVM/QEMU虚拟化在Power架构嵌入式平台的实战:从原理到性能调优

虚拟化技术通过软件抽象层,将物理计算资源(如CPU、内存、存储)进行逻辑划分与隔离,从而在同一硬件平台上运行多个独立的操作系统实例。其核心原理在于利用处理器的硬件虚拟化扩展(如Intel VT-x、AMD-V或PowerPC的Book3S HV),由Hypervisor(如KVM)直接管理硬件,实现接近原生的性能。这项技术的核心价值在于提升硬件利用率、增强系统隔离性与安全性,并简化资源管理与部署。在嵌入式系统、云计算基础设施和服务器整合等场景中,虚拟化是实现多租户、功能安全隔离和混合关键性系统的关键技术。本

既是过河之卒,惟有奋力向前。 434

CentOS8配置k8s daemon.json报错

问题复现 配置k8s的过程种,需要对docker进行换源,同时需要修改k8s的驱动方式,参考了其他博客,于是: mkdir /etc/docker/ vim /etc/docker/daemon.json 在daemon.json写入: { "registry-mirrors" : ["https://mirror.aliyuncs.com"] "exec-opts":["native.cgroupdriver=systemd"] } 但是运行 systemctl res

hello world 2554

SoC到操作系统五层架构:嵌入式系统全栈实操指南

现代嵌入式系统并非简单的硬件+软件堆叠,而是由SoC、固件、设备驱动、内核和操作系统构成的五层协同体系。这一分层本质是对物理世界不确定性(如温漂、时序偏差、协议歧义)的逐级防御设计,每层承担特定维度的抽象与管控责任。SoC已演进为可编程硬件平台,其内部NPU、VPU、ISP等单元支持寄存器级功能重构;固件则超越启动代码角色,成为ACPI表生成、电源管理、安全服务等关键能力的提供者。理解该架构对解决真实工程问题至关重要——例如0.3%的固件时钟偏差可导致SD卡初始化失败率飙升至17%,而PCIe热插拔异常往往

weixin_30627341的博客 389

ARM64嵌入式平台Docker部署与深度电源管理实践

在嵌入式系统开发中,容器化技术通过提供轻量级、一致性的应用打包与部署方案,极大地提升了应用移植和迭代的效率。其核心原理基于Linux内核的命名空间和控制组(Cgroups)机制,实现进程、网络和文件系统的隔离与资源限制。这项技术的价值在于将应用与底层运行环境解耦,简化了依赖管理,并支持微服务架构。在边缘计算和工业物联网等场景,它使得在资源受限的设备上快速部署和弹性伸缩服务成为可能。与此同时,嵌入式设备对功耗极为敏感,有效的电源管理(如CPU动态频率调节和深度睡眠模式)是延长设备续航和保障稳定性的关键。本文将

stevenbill的博客 627

[原] Cgroup CPU, Blkio 测试

目录 关于Cgroup的简单测试 简单介绍Cgroup 测试及验证 总结 参考文献 关于Cgroup的简单测试 简单介绍Cgroup (如果对cgroup熟悉可以忽略) 一般情况下,cgroup挂载到一个虚拟文件目录,然后可以通过文件系统的API对其操作。 ># mount | grep cgroup 可以查看mount point (debian) /sys/fs/cgroup/ ...

weixin_33831196的博客 291

eCapture架构解析:无CA证书抓包与SSL/TLS流量解密原理

SSL/TLS加密是保障网络通信安全的基础技术,其核心在于通过非对称加密建立安全信道,并使用对称加密算法保护数据传输。传统抓包方法依赖安装自定义CA证书进行中间人解密,但这种方法需要控制客户端环境,在云原生、容器化或黑盒应用场景中难以实施。eCapture创新性地利用eBPF技术,从应用程序内存中直接提取会话密钥,实现了对加密流量的零侵入式解密。该技术通过在内核态挂载Uprobe探针,实时捕获SSL/TLS库函数调用,提取Master Secret和Client Random等关键信息,并与网络流量关联,最

weixin_33874713的博客 329

使用CGROUP限制mongd的disk io

使用cgroup做磁盘IO的资源隔离,用到blkio子系统 先测试blkio限制dd的情况,很重要的一点是只能限制direct io, dd if=/dev/zero of=/mongodb/dd1 bs=4K count=10240 oflag=direct 在测试mongod的时候,直接限制mongod的进程不起作用,猜测可能是mongod是先往内存里写,不是direct io,后来直接限

在风中寻找 从清晨到日暮 1748

【CGroup原理篇V1】五、BLKIO子系统

blkio,Block IO Controller,指block io控制器或块IO子系统。 IO控制策略就是用于控制特定设备的IO速率的一个节流策略。这种策略可以应用在内核通用块层(Generic Block Layer),也可以应用在页节点上和高级别逻辑设备,如设备映射器。

从0到1,突破自己 3075

AI助力运维——AIGC运维应用实践—玩转龙虾(OpenClaw)之编写并使用技能处理日常运维故障

本文介绍了OpenClaw在AIGC运维领域的应用实践,重点讲解了其与传统大模型的区别及技能编写方法。OpenClaw能像现场专家一样直接诊断并自动修复故障,而传统大模型仅能提供通用解决方案。文章详细展示了多个实用运维技能的创建过程,包括Linux通用故障排查、磁盘检测修复、文件系统异常诊断、Java性能调优、网络安全扫描和软件安装等场景。每个技能模板都严格遵循非侵入性原则,确保系统安全,并提供标准化的报告输出格式。为运维人员提供了开箱可用的智能化运维方案。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 83

Linux-3.10-x86_64 内核配置选项简介

http://www.jinbuguo.com/kernel/longterm-3_10-options.html Linux-3.10-x86_64 内核配置选项简介 作者:金步国 版权声明 本文作者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。 无担保:本文作者不保证作品内容准确无误,亦不承担任何由于使用此文档所导致的损

samssm的专栏 1万+

cgroup限制io速率方法+验证

cgroup限制io速率方法+验证

a2591748032的博客 1735

linux限制磁盘io,使用cgroups管理Linux磁盘io的方法

我们都知道Linux系统中的cgroups可用于管理cpu资源,今天小编要给大家介绍的是如何使用cgroups管理进程磁盘io,如果你对此感兴趣的话,不妨来了解下吧。这个功能通过 blkio 子系统实现。blkio 子系统里东西很多。不过大部分都是只读的状态报告,可写的参数就只有下面这几个:代码如下:blkio.throttle.read_bps_deviceblkio.throttle.read...

weixin_42339759的博客 2874

【PMP认证考试之个人总结】第 4 章 项目范围管理

第 4 章 项目范围管理 4.1 综述   1.产品范围和项目范围的区别 ①产品范围:某项产品、服务或成果所具有的特性和功能; ②项目范围:为交付具有规定特性与功能的产品、服务或成果而必须完成的工作; 2.收集需求、定义范围和创建WBS输出的区别 ①收集需求 ===> 需求跟踪矩阵; ②定义范围 ===> 项目范围说明书;

qq296398300的博客 2890

告别调参玄学:用 DINOv2 (ViT-S/ViT-G) 和 PCA 可视化,直观理解自监督特征

本文深入解析了DINOv2(ViT-S/ViT-G)模型在自监督学习中的特征提取机制,通过PCA降维技术实现特征空间的可视化。文章对比了不同规模模型的特征表达差异,并提供了PCA阈值调优和深度分析的实用技巧,帮助读者直观理解自监督学习的视觉密码。

weixin_42565865的博客 409

debian内核编译过程记录(使用kernel-package方法添加ftrace+gcov+CPU抢占模式+cgroup+ timer frequency)

之前我们编译内核一般也就是使用make --> make modules_install --> make install --> update-grub 这一系列步骤,自从知道 Debian、Ubuntu 机器上可以使用 kernel-package 神器来编译安装内核,上述方法就被我等菜鸟摒弃了。 kernel-package是Debian提供的一个编译Linux内核的一个工具集,安装k

wangyezi19930928的专栏 2836

[Ethernet in CANoe]2--如何在CANoe中去仿真CP版本的SOME/IP通信

上篇文章()介绍了SOME/IP的两种类型的数据格式,根据作者目前的项目经验,目前在CANoe V18之前的版本,CP版本的arxml是最方便实现SOME/IP以太网仿真的。作者目前只有CANoe V17的license,所以本片文章是在CANoe 17上基于CP版本的arxml去做仿真模拟。

汽车ECU自动化测试 1764

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

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

白话机器学习 1207

Ardupilot无人船(车)mavros自主控制

rover 4.4。

超维空间科技的博客 3229

【TIDB】TiDB认证考试PTCA 练习题 题库

TiDB认证考试PTCA 练习题 题库

DBA之路的博客 4718

Linux资源管理-IO优先级 使用cgroub控制进程优先级 cgroup blkio子系统

如果想要控制进程IO的优先级,需要内核支持,编译器需要开启以下两个参数 CONFIG_BLK_CGROUP=y CONFIG_CFQ_GROUP_IOSCHED=y 查看方式 [root@localhost ~]# grep -i 'cfq_group' /boot/config-`uname -r` CONFIG_CFQ_GROUP_IOSCHED=y [root@localhost ~]# grep -i 'blk_cgroup' /boot/config-`uname -r` CONFIG_BLK_

weixin_44637703的博客 1551

EMD-LSTM时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络)

EMD-LSTM时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 654

Cgroup核心代码分析

Linux Kernel Cgroup Core

1646

手把手教你学simulink(16.8)--基于Simulink的小波变换滤波器(Wavelet Transform Filter)项目

基于Simulink的小波变换滤波器(Wavelet Transform Filter)项目的详细实例介绍。这个项目将重点放在小波变换滤波器的设计、实现和仿真上,帮助你理解和应用小波变换滤波器在信号处理中的作用。

MHD0815的博客 534

C++面向对象编程-继承与派生练习题

2、共同派生类 3、人员类Person的派生(虚基类的使用)

编程小鹏的博客 1191
上一篇: Linux vfs各种operation操作介绍
下一篇: buffer_head数据结构
OS技术解密
博客等级 码龄16年 3760粉丝 189原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值