【笔记版】cgroup大摸底

在这里插入图片描述

云端:

[图片]
subsystem实际上就是cgroups的资源控制系统。

  • blkio: 这个subsystem可以为块设备设定输入/输出限制,比如物理驱动设备(包括磁盘、固态硬盘、USB等)。
  • cpu: 这个subsystem使用调度程序控制task对CPU的使用。
  • cpuacct: 这个subsystem自动生成cgroup中task对CPU资源使用情况的报告。
  • cpuset: 这个subsystem可以为cgroup中的task分配独立的CPU(此处针对多处理器系统)和内存。
  • devices 这个subsystem可以开启或关闭cgroup中task对设备的访问。
  • freezer 这个subsystem可以挂起或恢复cgroup中的task。
  • memory 这个subsystem可以设定cgroup中task对内存使用量的限定,并且自动生成这些task对内存资源使用情况的报告。
  • perf_event 这个subsystem使用后使得cgroup中的task可以进行统一的性能测试。{![perf: Linux CPU性能探测器,详见https://perf.wiki.kernel.org/index.php/Main_Page]}
  • *net_cls 这个subsystem Docker没有直接使用,它通过使用等级识别符(classid)标记网络数据包,从而允许 Linux 流量控制程序(TC:Traffic Controller)识别从具体cgroup中生成的数据包。

边端:

在这里插入图片描述

  • cgroup.controllers展示了当前cgroup能限制的资源类型。
$ cat cgroup.controllers
cpuset cpu io memory hugetlb pids rdma misc
$ cat cgroup.subtree_control
cpuset cpu io memory hugetlb pids rdma misc
  • cgroup.subtree_control限制了下层级可以设限的资源种类。
  • cgroup.events:展示当前cgroup中是否有进程,以及当前cgroup是否为frozen状态。
  • cgroup.type:当前cgroup类型,如默认类型domain;线程类型threaded等等。
  • cgroup.threads:和cgroup.procs差不多,只是单位为线程,内容为tid。
  • cgroup.max.descendants:当前cgroup允许的最大子cgroup个数。
  • cgroup.max.depth:当前cgroup允许的最大子cgroup深度。 cgroup.stat:展示当前cgroup状态。
  • cgroup.freeze:设置其是否为freeze状态。

cgroupfs驱动

cgroupfs驱动是指在不同操作系统中对cgroupfs的实现方式和特性不同。

在Linux操作系统中,cgroupfs驱动主要有以下几种:

  1. cgroup v1:是最早实现的cgroupfs驱动,将cgroup目录结构以层级树的形式组织,使用文件系统的形式提供限制和控制接口。

  2. cgroup v2:是对cgroup v1的改进版本,引入了新的目录结构和接口。cgroup v2使用单个虚拟文件系统,不再以层级树的形式组织,而是以分层的方式进行资源管理。它提供了更加灵活和细粒度的资源控制,支持更多的资源类型。

  3. systemd cgroup:systemd 是一种使用cgroup实现的初始化系统,它对cgroup进行了一些自定义的修改和扩展,用于管理和控制系统服务和进程。

这些驱动之间的主要区别在于目录结构、接口和支持的功能。cgroup v2相比于cgroup v1提供了更强大的资源控制和管理能力,但在一些旧的系统中可能仍然使用cgroup v1。而systemd cgroup则是一种特殊的实现方式,适用于使用systemd作为初始化系统的系统。

Docker的cgroupfs驱动可以在Docker的配置文件中进行配置,具体路径为/etc/docker/daemon.json
如果该文件不存在,则可以创建该文件,并添加以下配置内容:

{"cgroupfs": "/path/to/cgroupfs"
}

其中,/path/to/cgroupfs是cgroupfs驱动所在的路径。配置完成后,保存文件并重启Docker服务使其生效。
在这里插入图片描述

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

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

相关文章

力扣大厂热门面试算法题 12-14

12. 整数转罗马数字,13. 罗马数字转整数,14. 最长公共前缀,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.11 可通过leetcode所有测试用例。 目录 12. 整数转罗马数字 解题思路 完整代码 Java Pytho…

STM32 学习11 独立看门狗与窗口看门狗

STM32 学习11 独立看门狗与窗口看门狗 一、**看门狗概述**二、**STM32中的看门狗类型**1. 独立看门狗(IWDG)(1)基本概念(2)独立看门狗框图(3)独立看门狗配置步骤(4&#…

十大排序算法(冒泡排序、插入排序、选择排序、希尔排序、堆排序、快排、归并排序、桶排序、计数排序、基数排序)

目录 一、冒泡排序: 二、插入排序: 三、选择排序: 四、希尔排序: 五、堆排序: 六、快速排序: 6.1挖坑法: 6.2左右指针法 6.3前后指针法: 七、归并排序: 八、桶…

Linux报错排查-CentOS/BigCloud_Enterprise_Linux系统yum安装kvm报错

Linux运维工具-ywtool 目录 一.系统环境二.问题描述三.问题解决四.其他命令 一.系统环境 系统版本:BigCloud_Enterprise_Linux 7.1 二.问题描述 通过yum安装kvm报错提示: /usr/bin/yum install -y qemu-kvm qemu-img libvirt libvirt-python virt-manager libvirt-client …

系统运维网络知识汇总

一、系统运维中网络方面的规划与思考 系统运维建立在网络的基础之上,如果没有一个相对合理的网络架构,恐怕系统运维做起来也不是那么的顺手。一个公司基本上都会把网络和服务器独立开来,划分不同的区域摆放设备,很多时候都是物理…

Rust 的 into_owned() 方法

into_owned 是 Rust 语言中 std::borrow::Cow 枚举的一个方法。Cow 是一个“克隆在写时”(Copy on Write)的智能指针,它可以包含对数据的引用或数据的实际所有权。这种设计模式在需要避免不必要的数据复制时特别有用,尤其是当数据…

2024年家政预约上门服务小程序【用户端+商家端+师傅端】源码

024最新家政预约上门服务小程序源码 主要功能:商家入住,师傅入住,缴纳保正金 支持师傅,抢单派单 支持多城市多门下单,支持预约上门服务到店核销 支持补差价义价,支持区域服务限制 基于thinkphp和原生小程序开发

多媒体技术1-颜色在计算机中的表示

在计算机中,颜色通常使用RGB(红绿蓝)模型来表示。RGB模型是一种加法混色模型,通过调节红、绿、蓝三个颜色通道的亮度和组合,可以得到各种不同的颜色。 在RGB模型中,每个颜色通道的取值范围是0到255&#x…

【五】【算法分析与设计】双指针的初见

167. 两数之和 II - 输入有序数组 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index(1)] 和 numbers[index(2)] ,则 1 &…

js【详解】事件

给 DOM 节点绑定事件 推荐使用 addEventListener 函数 第一个参数:事件名称第二个参数:事件处理函数(第一个参数为 event)第三个参数: true 采用捕获法来处理事件false 【推荐】采用冒泡法来处理事件 let div1 docu…

React Fiber的原理

React Fiber是React 16及更高版本中引入的一种新的核心算法,它作为React内部调度机制的重构部分,对原有的Reconciliation(协调)过程进行了升级。Fiber架构的目标是提高React在复杂应用中的性能和可预测性,并支持异步渲…

排序类算法

目录 一、交换类排序 1.冒泡排序 2.快速排序 二、 插入排序 1.直接插入排序 2.折半插入排序 3.希尔排序 三、选择排序 1.简单选择排序 2.堆排序 完整代码 四、归并排序 完整代码 五、汇总 六、OJ练习 1.冒泡排序:正确表示前一个数和后一个数 2.选…

LLM推理框架Triton Inference Server学习笔记(一): Triton Inference Server整体架构初识

官方文档查阅: TritonInferenceServer文档 1. 写在前面 这篇文章开始进行大语言模型(Large Language Model, LLM)的学习笔记整理,这次想从Triton Inference Server框架开始,因为最近工作上用到了一些大模型部署方面的知识, 所以就快速补充了…

【STM32】串口助手接受数据是乱码如何解决

第一步 首先判断自己使用的串口助手和工程配置的波特率是否相同,一般都是115200 第二步 如果不是上一条的问题,继续排查,检查时钟问题 打开工程,找到此文件(stm32f10x.h)的这个位置,如工程中未添加,可以从…

centos安装hadoop启动问题解决方案

1、出现了问题localhost: ERROR: JAVA_HOME is not set and could not be found. *解决方案尝试: 修改hadoop-env.sh(在etc/hadoop) sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh 将原本的JAVA_HOME 替换为绝对路径就可以了 #expo…

solana 入门 1

solana-co-learn Solana 开发学习笔记(一)——从 Hello World 出发 列出可用的分发版 安装开发环境 windows下环境配置 wsl wsl --install wsl wsl.exe --list --online显示: 以下是可安装的有效分发的列表。 使用 ‘wsl.exe --install ’ 安装。 NAME FRIENDLY…

Leetcode 144. 二叉树的前序遍历

题目描述:给定一个二叉树的根节点 root ,返回 它的 前序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root [] 输出:[] 示例 3: 输入&…

关于C语言调用Python,PyImport_ImportModule函数的简介

函数原型:PyObject *PyImport_ImportModule(const char *name) 用于加载编译目标的文件 这个模块必须为.py文件,因为说直白点就是通过Python3 xxxx.py能够通过编译的东西

项目管理【引论二】项目管理的逻辑

系列文章目录 【引论一】项目管理的意义 【引论二】项目管理的逻辑 一、项目管理的目标 项目管理的目标是在规定的时间内,在批准的预算内,完成事先确定的工作范围内的工作,并且达到预期的质量性能要求。 1.1 时间、成本和质量之间的关系 1…

力扣226.翻转二叉树(二叉树的先序遍历)

文章目录 题目描述思路复杂度Code 题目描述 思路 利用二叉树的先序遍历,每次递归遍历时将当前节点的左右子节点交换即可 复杂度 时间复杂度: O ( n ) O(n) O(n);其中 n n n为树节点的个数 空间复杂度: O ( h e i g h ) O(heigh) O(heigh);其…