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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python[6]

类和对象 面向对象编程–说白就是让对象干活 创建类:class 类名: 创建类对象 对象名 类名() 构造方法 1、构造方法的名称是__init__ 2、构造方法的作用? 构建类对象的时候会自动运行 构建类对象的传参会传递给构造…

react+canvas实现刮刮乐效果

话不多说,直接看代码吧 import { useEffect } from react; import styles from ./index.less;export default function Canvas() {function init() {let gj document.querySelector(.gj);let jp document.querySelector(#jp) as HTMLElement;let canvas documen…

mac flutter 配置

下载Flutter Sdk 直接访问官网无法下载,需要访问中国镜像下载 Flutter SDK 归档列表 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter Start building Flutter Android apps on macOS - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 下载后解压…

Java+SpringBoot+Vue+MySQL:美食推荐系统的技术革新

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

基于STM32的蓝牙遥控小车:手机APP控制小车运动

这里写目录标题 一、智能双轮小车蓝牙APP控制前后左右调速运动功能描述原理图设计PCB设计源码设计 二、更多功能小车网友推荐后开发... 一、智能双轮小车蓝牙APP控制前后左右调速运动 功能描述 1、小车可以前后左右运动 2、可以调节小车的速度 3、使用两个电机驱动两个轮子&a…

Go语言必知必会100问题-06 生产者端接口

生产者端接口 Go语言必知必会100问题-05 接口污染中介绍了程序中使用接口是有价值的。在编码的时候,接口应该放在哪里呢?这是Go开发人员经常有误解的一个问题,本文将深入分析该问题。 在深入探讨问题之前,先对提及的术语做一个定…

MySQL(2/3)

select和别名的使用 主要是用以查询数据 语法:select 字段 from 库名 -- *代表全部字段 select * from student; -- 可以查询多个字段,并使用as起别名,as可以省略 select id as bbb ,name as hhh from student; -- 可以使用函数concat(a,b…

新版Java面试专题视频教程——虚拟机篇②

新版Java面试专题视频教程——虚拟机篇② 3 垃圾收回3.1 简述Java垃圾回收机制?(GC是什么?为什么要GC)3.2 对象什么时候可以被垃圾器回收3.2.1 引用计数法3.2.2 可达性分析算法 3.3 JVM 垃圾回收算法有哪些?——4种3.3…

Python实现DAS单点登录

❇️ 流程 进入登录页面 (DAS验证的登录页面) 获取验证码图像,百度OCR识别 登录 🏞️ 环境 Windows 11 Python 3.12 PyCharm 2023 🧵 准备工作 安装必要依赖库 bs4 Jupyter 推荐安装 Jupyter(Anaco…

数学建模【相关性模型】

一、相关性模型简介 相关性模型并不是指一个具体的模型,而是一类模型,这一类模型用来判断变量之间是否具有相关性。一般来说,分析两个变量之间是否具有相关性,我们根据数据服从的分布和数据所具有的特点选择使用pearson&#xff…

Linux系统——Nginx小总结

目录 一、影响用户体验的因素 二、网络连接——Apache/Nginx服务请求过程 三、I/O模型——Input/Output模型 1.同步/异步 2.阻塞/非阻塞 3.同步异步/阻塞非阻塞组合 四、Nginx用法 一、影响用户体验的因素 客户端硬件配置客户端网络速率客户端与服务端距离服务端网络速…

【JS】事件绑定方法自带一个形参e“function(e)”,what is e?

在学习js的时候 我跳过了一部分章节的内容,导致现在学习react的时候很多内容都不知所措,因为这些教程都是建立在它认为你js所有内容都掌握的前提下,当然这是我自身的原因。需要反省。 下面是正题: 我们知道js有很多事件&#…

【一】【SQL】表的增删查改(部分)

表之“增”操作 建表的操作 mysql> create table students(-> id int unsigned primary key auto_increment,-> sn int unsigned unique key,-> name varchar(20) not null,-> qq varchar(32) unique key-> ); Query OK, 0 rows affected (0.03 sec)mysql&g…

Day01:Web应用架构搭建站库分离路由访问配置受限DNS解析

目录 常规的Web应用搭建 三种常规网站搭建模式 程序源码 中间件配置 数据库类型 文件访问路径 总结 章节知识点: 应用架构:Web/APP/云应用/三方服务/负载均衡等 安全产品:CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令:文件…

Pytorch添加自定义算子之(1)-安装配置Eigen库

一、安装对应的ubuntu环境 推荐使用Docker FROM nvcr.io/nvidia/pytorch:23.01-py3 RUN pip install tensorboardX RUN pip install pyyaml RUN pip install yacs RUN pip install termcolor RUN pip install opencv-python RUN pip install timm0.6.12 WORKDIR /app COPY . …

Python入门必学:print函数--从基础语法到高级用法

Python入门必学:print函数–从基础语法到高级用法 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您…

2024 春招市场行情报告:鸿蒙人才遭“爆抢”

前言 2024年可以说是布道鸿蒙开发行业的最佳时机,华为在千帆启航仪式会中发布会中表示,已有200家头部企业加入原生开发当中,并且一直有高薪抢人的局面,这一信息已经引起业界很大关注。 因此有很多公司开始准备要招聘鸿蒙工程师&…

机器学习YOLO操作全流程​​编

YOLO介绍 Ultralytics YOLOv8,是最新的著名实时目标检测和图像分割模型。它基于深度学习和计算机视觉的最新进展,提供了无与伦比的速度和精度性能。由于其精简的设计,适用于各种应用,并且可以轻松适配不同的硬件平台,从边缘设备到云端API。 探索 YOLOv8 文档,这是一个全…

【MySQL】探索表结构、数据类型和基本操作

表、记录、字段 数据库的E-R(entity-relationship,实体-关系)模型中有三个主要概念: 实体集 、 属性 、 关系集 。 一个实体集对应于数据库中的一个表,一个实体则对应于数据库表 中的一行,也称为一条记录。…

【Linux基础】Linux自动化构建工具make/makefile

背景 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后…