【笔记版】cgroup大摸底

news/2024/7/3 6:52:38

在这里插入图片描述

云端:

[图片]
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://lihuaxi.xjx100.cn/news/2085938.html

相关文章

算法-状数组与线段树-1264. 动态求连续区间和

题目 思路 线段树&树状数组 - AcWing算法学习笔记(14): 线段树 - 知乎 (zhihu.com) 代码 Python超时版 def calculate_subarray_sum(nums, a, b):return sum(nums[a-1:b])n, m map(int, input().split()) nums list(map(int, input().split()))for _ in range(m):op,…

IT外包的三大优势对企业的发展有何影响?

随着企业竞争的加剧和科技的不断发展,IT外包作为一种有效的业务策略,其三大优势——成本、专业和灵活性优势,已经成为企业提升竞争力和应对市场挑战的不可或缺的工具。本文将深入探讨这三大优势对企业发展的积极影响,为您解读IT外…

新概念英语第二册(78)

【New words and expressions】生词和短语(12) entitle v. 以……为名 calm v. 使镇定 nerve n. 神经 concentration n. 集中,专心 suffer …

剑指offer JZ23链表中环的入口节点 C++

1、题目描述 2、在VS2019上运行 #include <iostream>using namespace std;struct ListNode {int val;ListNode* next;ListNode(int x) : val(x), next(NULL) {} };class Solution { public:// 判断链表是否有环&#xff0c;返回相遇的地方ListNode* hasCycle(ListNode* …

SpringBoot中RestTemplate 发送http请求

SpringBoot中RestTemplate 发送http请求 引入fastjson <!--fastjson--> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.47</version> </dependency>创建配置文件 新建c…

【SpringCloud微服务全家桶学习笔记-GateWay网关(微服务入口)】

Gateway服务网关 API网关为微服务架构中的服务提供了统一的访问入口&#xff0c;客户端通过API网关访问相关服务。API网关的定义类似于设计模式中的门面模式&#xff0c;它相当于整个微服务架构中的门面&#xff0c;所有客户端的访问都通过它来进行路由及过滤。它实现了请求路…

2024护网面试题精选(二)完

0x02. 内网渗透篇 00- 内网渗透的流程 拿到跳板后&#xff0c;先探测一波内网存活主机&#xff0c;用net user /domian命令查看跳板机是否在域 内&#xff0c;探测存活主机、提权、提取hash、进行横向移动&#xff0c;定位dc位置&#xff0c;查看是否有能直接提权域 管的漏洞…

22.1 分布式_线程池

线程池 1. 学习内容2. 简介2.1 池概念2.2 不使用线程池创建线程2.3 线程池的好处2.4 线程池应用场景****************************************************************************************************************1. 学习内容 2. 简介 2.1 池概念 <