Linux Control Cgroups

无论 Docker 如何进行隔离,无法否认的是我们在当前宿主机中运行的所有容器,它依赖的硬件资源都只是当前机器。

其实启动的每一个容器进程,它本身其实就是当前宿主机的进程之一,那么本质上来说,它也会和宿主机中的其他进程进行资源的竞争。

一、Control Cgroups

所以我们就要针对Docker运行的容器进行资源的限制,Cgroups 就是 Linux 内核中用来为进程设置资源的一个技术。

Linux Cgroups 的全称是 Linux Control Group。它最主要的作用,就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。

还可以对进程进行优先级设置,审计,挂起和恢复等操作。

Linxu中为了方便用户使用cgroups,已经把其实现成了文件系统,其目录在/sys/fs/cgroup下,在 /sys/fs/cgroup 下面有很多诸如 cpuset、cpu、 memory 这样的子目录,也叫子系统。这些都是我这台机器当前可以被 Cgroups 进行限制的资源种类。Cgroups 的每一个子系统都有其独有的资源限制能力,比如:

cpu限制进程在一段时间内能够分配到的 CPU 时间

blkio为块设备设定 I/O 限制,一般用于磁盘等设备

cpuset为进程分配单独的 CPU 核和对应的内存节点

memory为进程设定内存使用的限制

完整子系统如下图:

补充:当然这里面还牵扯到许多其他的问题,比如是如何实现的,资源如何分配等等。

我们可以把 Linux Cgroups 理解成一个子系统目录加上一组资源限制文件的组合。而对于 Docker 等 Linux 容器项目来说,它们只需要在每个子系统下面,为每个容器创建一个控制组(即创建一个新目录),然后在启动容器进程之后,把这个进程的 PID 填写到对应控制组的 tasks 文件中就可以了。而至于在这些控制组下面的资源文件里填上什么值,就靠用户执行 docker run 时的参数指定了。

二、Cgroups 存在的问题

跟 Namespace 的情况类似,Cgroups 对资源的限制能力也有很多不完善的地方,被提及最多的自然是 /proc 文件系统的问题。

我们知道,Linux 下的 /proc 目录存储的是记录当前内核运行状态的一系列特殊文件,用户可以通过访问这些文件,查看系统以及当前正在运行的进程的信息,比如 CPU 使用情况、内存占用率等,这些文件也是 top 指令查看系统信息的主要数据来源。

但是,你如果在容器里执行 top 指令,就会发现,它显示的信息居然是宿主机的 CPU 和内存数据,而不是当前容器的数据。

我在容器中执行 free 命令,展示的是我宿主机的相关信息。

造成这个问题的原因就是,/proc 文件系统并不知道用户通过 Cgroups 给这个容器做了什么样的资源限制,即: /proc 文件系统不了解 Cgroups 限制的存在

 

 

 

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

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

相关文章

HTML语言的由来与发展历程

HTML(HyperText Markup Language)是用来描述网页的一种语言,它的由来与发展历程可以追溯到20世纪90年代初。 1980年代初期,Tim Berners-Lee爵士在欧洲核子物理实验室(CERN)工作期间,开发了一种…

windows安装gdal库

提示:在windows上使用pip在cmd终端安装gdal 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 原因是由于丹丹安装使用pip安装gdal时报错Microsoft visual C 1…

【左程云算法全讲11】贪心算法 并查集

系列综述: 💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于左程云算法课程进行的,每个知识点的修正和深入主要参考…

Maven编译报错:javacTask: 源发行版 1.8 需要目标发行版 1.8

报错截图: IDEA中的jdk检查都正常设置的1.8一点毛病没有。参考其他帖子链接如下: https://blog.csdn.net/zhishidi/article/details/131480199https://blog.51cto.com/u_16213460/7197764https://blog.csdn.net/lck_csdn/article/details/125387878 逐…

Android 13.0 recovery出厂时清理中字体大小的修改

1.前言 在13.0的系统rom定制化开发中,在recovery模块也是系统中比较重要的模块,比如恢复出厂设置,recovery ota升级, 清理缓存等等,在一些1080p的设备,但是density只是240这样的设备,会在恢复出厂设置的时候,显示的字体有点小, 产品要求需要将正在清理的字体调大点,这…

A Comprehensive Survey on Graph Neural Networks

A Comprehensive Survey on Graph Neural Networks----《图神经网络研究综述》 摘要 近年来,深度学习已经彻底改变了许多机器学习任务,从图像分类和视频处理到语音识别和自然语言理解。这些任务中的数据通常在欧几里得空间中表示。然而,越来…

个体诊所电子处方模板,佳易王药店电子处方系统门诊病历软件教程

个体诊所电子处方模板,佳易王药店电子处方系统门诊病历软件教程 软件支持中医,西医,对于经常使用的配方,可以自己设置配方模板,点击右侧 配方模板,选择后一键导入配方即可。处方单使用A5纸打印。软件可以试…

【OpenCV实现图像:OpenCV进行OCR字符分割】

文章目录 概要基本概念读入图像图像二值化小结 概要 在处理OCR(Optical Character Recognition,光学字符识别)时,利用传统的图像处理方法进行字符切分仍然是一种有效的途径。即便当前计算机视觉领域主导的是卷积神经网络&#xf…

【软考篇】中级软件设计师 第四部分(三)

中级软件设计师 第四部分(三) 三十四. 结构化开发方法34.1 内聚34.2 耦合 三十五. 测试基础知识三十六. 面向对象36.1 UML图36.2 设计模式36.3 数据流图 读前须知: 【软考篇】中级软件设计师 学前须知 上一章节: 【软考篇】中级软…

【入门篇】1.7 Redis 之 codis 入门介绍

文章目录 1. 简介2. Codis的安装与配置下载编译源码安装1. 安装 Go 运行环境2. 设置编译环境3. 下载 Codis 源代码4. 编译 Codis 源代码 Docker 部署 3. Codis的架构Codis的架构图和组件Codis的工作流程 4. Codis的核心特性自动数据分片数据迁移高可用性全面支持Redis命令分布式…

Client not connected, current status:STARTING

上面的问题出现在springboot整合nacos的时候出现的 首先说明一点,我出现这个问题是使用了nacos集群,nacos版本为2.2.3,且使用了nginx做了负载均衡,如果您和我一样,那么可以接着往下看。 1️⃣:当nacos版本为…

windows与wsl互传文件

1.把windows上的文件传到wsl中,\\wsl.localhost\Ubuntu-22.04\mnt\wsl 将你要传的文件放到wsl这个路径下,Ubuntu-22.04是我的子系统,换成自己对应的 2.把wsl中的文件传到windows中 将wsl中的文件放到 /mnt/c 或 /mnt/d 中,这两…

汇川伺服【选型目录】

sv680旗舰: 编码器位数:26bit 电机额定转速:3000r【3k】圈脉冲: sv670标准: 编码器位数:23bit【台达B3:23bit,台达A2:bit】 电机额定转速:3000r【3k】圈脉冲&#xff1…

【AI视野·今日Sound 声学论文速览 第三十五期】Fri, 27 Oct 2023

AI视野今日CS.Sound 声学论文速览 Fri, 27 Oct 2023 Totally 8 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Controllable Generation of Artificial Speaker Embeddings through Discovery of Principal Directions Authors Florian Lux, Pascal T…

chatGPT API中参数temperature的含义是什么

在 ChatGPT API 中,temperature 参数用于控制回答的确定性和创造性。temperature 的值范围通常是从 0 到 1。这个参数影响模型生成回答时的随机性: 低温度值(如 0 或接近 0):会导致模型生成更确定、更一致、更少出乎意…

微服务实战系列之Sentinel

前言 微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。 近年来,微服务已赫然崛起于IT界,越来越多的程序员不得不向之靠拢。也正因为各行各业都愿为…

ZOC8 for Mac:最佳终端仿真器,助力您的工作效率飞升!

在现代的工作环境中,终端仿真器扮演着不可或缺的角色。无论是开发人员、系统管理员还是网络工程师,都需要一个功能强大、易于使用的终端仿真器来处理各种任务。而ZOC8 for Mac正是为这些专业人士而打造的最佳选择。 作为一款全功能的终端仿真软件&#…

Apache SCXML2 RCE漏洞

文章目录 前言源码利用上传恶意xml文件构造payload搭建Apache服务器 远程RCE 前言 在做 [HDCTF 2023]BabyJxVx 遇到的知识点,但是没公网的服务器只能作罢,写下这篇文章记录 源码利用 public String Flag(RequestParam(required true) String filenam…

微信如何设置自动保存图片和视频

8-6 在日常的工作中,如果你需要经常或者每天都要对同事们发来的大量图片和视频进行保存的,这种工作需要花费很多时间,如果你想节省这些手工时间的话,也许本文适合你,首先要明白的是,微信本身是没有任何相关…

备战旺季,赛盈分销解析2023年美国人爱买的年终爆款!

今年10月份美国人增加了自己在线上渠道的支出,Adobe Analytics的调查报告显示,美国消费者当月的线上支出达到了768亿美元,同比增长5.9%。 数据还表明,1-10月份美国人的线上购物相比去年增长了4.3%,整体消费达到7590亿…
最新文章