cgroup底层技术研究一、cgroup简介与cgroup命令行工具

本文参考以下文章:

58 | cgroup技术:内部创业公司应该独立核算成本

特此致谢!

一、cgroup简介

1. cgroup是什么

cgroup(Control Group)是Linux内核提供的一种机制,用于对进程或进程组进行资源限制、优先级控制、账户计费等操作。它可以将一组进程组织在一起,并为这组进程分配资源,以便更好地管理和控制系统资源的使用。

cgroup可以对CPU内存磁盘IO网络等资源进行限制和控制。通过将进程分组并将资源限制应用于这些组,可以实现对系统资源的精细化管理。例如,可以限制某个进程组的CPU使用率,或者限制某个进程组的内存使用量。

cgroup的使用非常灵活,可以通过文件系统的方式进行配置和管理。在Linux系统中,cgroup通常被挂载在/sys/fs/cgroup目录下通过在该目录下创建相应的文件和目录来配置和管理cgroup

2. cgroup的主要功能

Cgroup的主要功能包括:

(1)资源限制

可以为每个cgroup分配特定的资源限制,如CPU使用时间、内存使用量等,以避免某个进程或进程组占用过多资源导致系统崩溃或变慢。

(2)优先级管理

可以为不同的cgroup设置不同的优先级,确保重要的进程或进程组能够获得更多的资源。

(3)资源统计

可以实时监视和记录每个cgroup使用的资源量,以便进行性能分析和故障排查。

(4)进程控制

可以对cgroup中的进程进行控制,如暂停、恢复、终止等操作。

3. cgroup的主要特点

cgroup的主要特点包括:

(1)层次结构

cgroup可以以层次结构的方式组织,形成一个树状结构,方便管理和控制。

(2)细粒度控制

cgroup可以对进程或进程组进行细粒度的资源限制和控制,满足不同应用场景的需求。

(3)动态调整

可以动态地调整cgroup的配置和资源限制,以适应系统负载的变化。

(4)账户计费

可以通过cgroup对资源的使用情况进行统计和计费。

二、cgroup命令行工具

cgroup命令行工具是用于管理Linux Control Groups(cgroups)的工具集合。cgroups是Linux内核提供的一种资源管理机制,可以对进程组进行资源限制、优先级控制等操作。cgroup命令行工具提供了一系列命令,可以用于创建、删除、查看和修改cgroup。以下是一些常用的cgroup命令行工具及其功能:

1. cgcreate

用于创建一个新的cgroup。

示例:cgcreate -g cpu:/mygroup

2. cgdelete

用于删除一个已存在的cgroup。

示例:cgdelete -g cpu:/mygroup

3. cgexec

用于在指定的cgroup中执行命令。

示例:cgexec -g cpu:/mygroup command

4. cgclassify

用于将一个或多个进程加入到指定的cgroup中。

示例:cgclassify -g cpu:/mygroup pid

5. cgset

用于设置cgroup的参数,如资源限制、优先级等。

示例:cgset -r cpu.cfs_quota_us=50000 cpu:/mygroup

6. cgget

用于获取cgroup的参数信息。

示例:cgget -r cpu.cfs_quota_us cpu:/mygroup

7. cgtop

以top命令的形式显示当前系统中各个cgroup的资源使用情况。

8. cgconfigparser

用于解析和加载cgroup配置文件。

以上这些命令只是cgroup命令行工具中的一部分,还有其它更多的命令可以用于管理和监视cgroup。可以通过运行man cgcreate等命令来查看详细的帮助文档。这些命令也可以通过在终端中输入命令名称加上--help参数来获取更详细的帮助信息,例如cgcreate --help

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/410727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDA使用-2023CICSN华中赛区pwn题逆向为例

文章目录 相关字节标识导入函数和导出函数找程序入口函数选项设置重命名CISCN2023华中赛区分区赛AWDIDA源码main 构造结构体sub_141B() 打开局部变量类型的视图增加变量类型重新定义变量类型再次设置变量类型并重新定义再次设置变量类型并重新定义再次设置变量类型并重新定义 设…

项目实战:Qt监测操作系统cpu温度v1.1.0(支持windows、linux、国产麒麟系统)

若该文为原创文章,转载请注明出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/136277231 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

linux系统---nginx基础

目录 一、Nginx的概念 二、Nginx常用功能 1、HTTP(正向)代理,反向代理 1.1正向代理 1.2 反向代理 2、负载均衡 2.1 轮询法(默认方法) 2.2 weight权重模式(加权轮询) 2.3 ip_hash 3、web缓存 三、基础特性 四…

@ControllerAdvice 统一管理异常/错误

ControllerAdvice 统一管理异常/错误 文章目录 ControllerAdvice 统一管理异常/错误一、注意事项二、统一管理异常/错误的好处三、代码实现1. 普通方法2. 统一管理ControllerAdvice3. PostMan测试结果 一、注意事项 1. 如果校验注解不指定 message 属性 ,会返回默认消息, 这些…

C++之善用const修饰成员函数

C之善用const修饰成员函数 文章目录 C之善用const修饰成员函数前言1. 约束函数对成员变量的修改2. 允许 const 对象调用3. 在重载函数中提供重载决策总结 前言 ​ 在C编程中,使用const修饰成员函数是一种非常重要的技术手段,它能够提高代码的可维护性、…

Object中的hashCode()

让hashcode方法的返回值为地址 vm参数中输入-XX:UnlockExperimentalVMOptions -XX:hashCode4,如下图: 参考 搞懂JAVAObject中的hashCode()_java_脚本之家 JDK核心JAVA源码解析(9) - hashcode 方法 - 知乎

【k8s】-- 查询 pod 磁盘容量

命令:kubectl get pvc -n 你的namespace --context上下文命名 -o wide 举例:kubectl get pvc -n my-bigdata --contextprod-6 -o wide

10分钟快速开始SkyWalking结合Springboot项目

10分钟快速开始SkyWalking结合Springboot项目 实习期间,公司让我去学习一下链路追踪如何集成到Springboot项目中。 为此有两个方案: 1.opentelementryjaegerprometheus opentelementry 收集器收集线上的metrics和traces,然后发送给jaeger和p…

水资源费征收管理系统V1.1

水资源费征收管理系统 Water Resource Fee Collection And Management System 水资源费征收管理系统 Water Resource Fee Collection And Management System

MS2402隔离Σ-Δ调制器

产品简述 MS2402 是一款二阶 Σ-Δ 调制器,集成片上数字隔离器,能将模 拟输入信号转换为高速 1 位码流。调制器对输入信号连续采样,无 需外部采样保持电路。模拟信号输入满量程为 320mV ,转换后的 数字码流的最高数据速率为 1…

js 常见报错 | js 获取数据类型 | js 判断是否是数组

文章目录 js 常见报错1.1 SyntaxError(语法错误)1.2 ReferenceError(引用错误)1.3 RangeError(范围错误)1.4 TypeError(类型错误)1.5 URLError(URL错误)1.6 手…

如何用二维码高效收集信息?表单功能轻松实现

表单作为草料二维码的高级功能之一,可用于收集格式统一的数据。你可以通过组合姓名、图片、检查项等组件搭建出电子表单,关联到二维码中,扫码填写表单即可更快速、规范的收集数据。 下面为大家介绍下表单的制作教程。 1、新建表单 新建表单…

跨区域复制建筑UI输入框脚本迷你世界

--复制区域文件 --设置坐标起点,终点 --创建区域 --获取坐标id,data --星空露珠工作室制作 local pos1{x-16,y7,z28} local pos2{x28,y44,z-9} local block{num0} local str{} local str0{} local num0 local count0 local ui6 --几个输入框 local romath.random(…

辽宁博学优晨教育视频剪辑培训探索学习新意义

在当今数字化快速发展的时代,视频已成为信息传达的重要载体。辽宁博学优晨教育视频剪辑培训应运而生,不仅为学员提供了专业的学习平台,更在探索学习的意义方面赋予了新的内涵。 视频剪辑作为现代媒体行业的重要技能,其学习意义不仅…

武汉建筑安全员ABC小题库不存在未雨绸缪“时间够”

武汉建筑安全员ABC小题库不存在未雨绸缪“时间够” 关于武汉三类人员(安全员ABC)考试小题库,一般都是考试时间出来,准考证下来了,匹配题库,好好看题(认真练习即可),一般…

如何在Linux搭建MinIO服务并实现无公网ip远程访问内网管理界面

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼…

微信小程序(四十五)登入界面-简易版

注释很详细,直接上代码 上一篇 此文使用了vant组件库,没有安装配置的可以参考此篇vant组件的安装与配置 新增内容: 1.基础组件的组合 2.验证码倒计时的逻辑处理 源码: app.json {"usingComponents": {"van-field…

数据结构知识点总结-绪论 数据结构基本术语 算法及评价

要求 (1)对数据结构这么课学了哪些知识有个清楚的认知; (2)掌握目录结构,能复述出来每个知识点下都有哪些内容。 如下图所示,可自行制作思维导图,针对自己薄弱的地方进行复习。 …

签三方协议?大家一定要注意的问题!

签三方协议?大家一定要注意的问题! 一、三方协议是什么?二、签三方协议要注意什么?1、待遇问题2、发展机会3、违约金 三、三方协议的一些疑问?1、三方协议和劳动合同的区别?2、签了三方会失去应届生身份嘛&…