容器核心技术-Cgroups

一、Cgroups

  • Cgroups (Control Groups) 是 Linux 下用于对一个或一组进程进行资源控制和监控的机制;
  • 可以对诸如CPU使用时间、内存、磁盘I/O等进程所需的资源进行限制;
  • 不同资源的具体管理工作由相应的Cgroup 子系统(Subsystem)来实现;
  • 针对不同类型的资源限制,只要将限制策略在不同的的子系统上进行关联即可;
  • Cgroups在不同的系统资源管理子系统中以层级树(Hierarchy)的方式来组织管理:每个Cgroup都可以包含其他的子Cgroup,因此子Cgroup能使用的资源除了受本Cgroup 配置的资源参数限制,还受到父Cgroup 设置的资源限制。
  • 在cgroup中,使用 task(任务) 来表示系统的一个进程或线程。

二、子系统

  1. blkio: 这个子系统设置限制每个块设备的输入输出控制。例如:磁盘,光盘以及USB等等
  2. cpu: 这个子系统使用调度程序为cgroup任务提供CPU的访问
  3. cpuacct: 产生cgroup任务的CPU资源报告
  4. cpuset: 如果是多核心的CPU,这个子系统会为cgroup任务分配单独的CPU和内存
  5. devices: 允许或拒绝cgroup 任务对设备的访问
  6. freezer: 暂停和恢复 cgroup 任务
  7. memory: 设置每个cgroup的内存限制以及产生内存资源报告
  8. net_cls: 标记每个网络包以供cgroup方便使用
  9. ns: 名称空间子系统
  10. pid: 进程标识子系统

三、示例

3.1 cpu子系统

busyloop:

package main
func main(){go func(){for{}}()for{}
}

1.运行busyloop,top查看 CPU 使用情况,CPU 占用 200%:

在这里插入图片描述

2.通过cgroup 限制 cpu:

#在cgroup cpu 子系统目录中创建目录
#创建完之后在目录中自动生成一些文件,只需要修改文件的配置就可以
cd/sys/fs/cgroup/cpu
mkdir cpudemo

在这里插入图片描述
3.把进程添加到cgroup.procs

echo $(ps -ef | grep busyloop | grep -v grep | awk '{print $2}') > cgroup.procs
echo 10000> cpu.cfs_quota_us

在这里插入图片描述
4.进程的cpu限制到了10%

在这里插入图片描述
cpu.cfs_period_us ,是CFS 调度的周期,默认是 100000,单位是 microseconds 也就是 100ms
cpu.cfs_quota_us 在一个调度周期里,这个控制组被允许的运行时间,比如 30000 ,就是 30ms
这两个参数进行除法 cpu.cfs_quota_us/cpu.cfs_period_us ,比如 10ms /100ms = 0.1 ,表示这个控制组被允许使用的CPU最大配额是 0.1个cpu

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

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

相关文章

LabVIEW开发多速率实时混合仿真

LabVIEW开发多速率实时混合仿真 混合仿真是一种子结构技术,通过将数值建模的优点与实验测试的优点相结合来模拟感兴趣的结构。模拟结构的其余部分特别令人感兴趣,因此可以进行物理复制,以揭示粘弹性、屈曲、速率相关特性或其他非线性效应的影…

[Linux] GRUB引导 学习笔记(一)

目录 概念 2.1 BIOS 2.2 UEFI 2.3 MBR与GPT 2.3.1 MBR 2.3.2 GPT 2.3.3 总结 2.4 GRUB GRUB2和GRUB Legacy区别 进入GRUB命令行 命令 GRUB工具命令 GRUB2配置 1.主要配置文件 2. 通过/etc/default/grub文件生成grub.cfg 定制GRUB的步骤 概念 BIOS、UEFI、MBR、G…

C++基础——对于C语言缺点的补充(2)

上篇文章中说到,为了解决C语言会出现人为定义的函数和库函数出现重定义的错误,C引入了一个新的概念,即命名空间,通过认为定义命名空间,来解决上述问题。 在本篇文章中,将继续介绍C相对于C语言不足来进行的补…

Fourier分析导论——第4章——Fourier级数的一些应用(E.M. Stein R. Shakarchi)

第 4 章 傅里叶级数的一些应用 Fourier series and analogous expansions intervene very naturally in the general theory of curves and surfaces. In effect, this theory, conceived from the point of view of analysis, deals obviously with the study of arbitra…

基于MSF控制同一热点(局域网)下的其他设备

主要是基于Metasploit,利于msfvenom生成的恶意软件获取目标shell。 我想各位都很熟悉的一个操作,那就是使用虚拟机当攻击机,本地物理机作为靶机,但这样其实并不能很好的反应出现实情况,有点自己攻击自己的感觉。 因此…

pytorch安装1

用豆瓣源安装pytorch1.5.1(速度很快)-CSDN博客 详情请参考这位神仙的博客 我真的哭死,原来torch都安装好了,好不容易全部加载好了,但是,gpu配不上去,后来发现还是版本的问题版本不匹配具体版本…

JTS: 16 Orientation 方向

这里写目录标题 版本代码 版本 org.locationtech.jts:jts-core:1.19.0 链接: github 代码 public static void main(String[] args) {OrientationUse orientationUse new OrientationUse();orientationUse.test02();}public void test02() {A new Coordinate(2, 1);B new …

数据结构初阶---复杂度的OJ例题

复杂度的OJ例题 一、消失的数字1.思路一2.思路二3.思路三 二、旋转数组1.思路一2.思路二3.思路三 一、消失的数字 数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(N)时间内完成吗? 链接:力扣&…

远程管理SSH服务

一、搭建SSH服务 1、关闭防火墙与SELinux # 关闭firewalld防火墙 # 临时关闭 systemctl stop firewalld # 关闭开机自启动 systemctl disable firewalld ​ # 关闭selinux # 临时关闭 setenforce 0 # 修改配置文件 永久关闭 vim /etc/selinux/config SELINUXdisabled 2、配置…

【深度学习】pytorch——Autograd

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 深度学习专栏链接: http://t.csdnimg.cn/dscW7 pytorch——Autograd Autograd简介requires_grad计算图没有梯度追踪的张量ensor.data 、tensor.detach()非叶子节点的梯度计算图特点总结 利用Autograd实…

Transformer:开源机器学习项目,上千种预训练模型 | 开源日报 No.66

huggingface/transformers Stars: 113.5k License: Apache-2.0 这个项目是一个名为 Transformers 的开源机器学习项目,它提供了数千种预训练模型,用于在文本、视觉和音频等不同领域执行任务。该项目主要功能包括: 文本处理:支持…

【Redis】hash数据类型-常用命令

文章目录 前置知识常用命令HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGET关于HMSETHLENHSETNXHINCRBYHINCRBYFLOAT 命令小结 前置知识 redis自身就是键值对结构了,哈希类型是指值本⾝⼜是⼀个键值对结构,形如key"key",value{{field1…

面向萌新的数学建模入门指南

时间飞逝,我的大一建模生涯也告一段落。感谢建模路上帮助过我的学长和学姐们,滴水之恩当涌泉相报,写下这篇感想,希望可以给学弟学妹们一丝启发,也就完成我的想法了。拙劣的文笔,也不知道写些啥,…

idea必装插件EditStarters(快速引入依赖)

前言 一般来说我们要向一个 servlet 或者 Spring 项目中引入依赖都需要先到中心仓库找到对应的依赖,选择依赖的版本,把依赖添加到配置文件 pom.xml 中,这其实还是有点麻烦的,而通过 EditStarters 插件我们可以迅速的添加依赖到项目…

ElasticSearch高级功能详解与原理剖析

ES数据预处理 Ingest Node Elasticsearch 5.0后,引入的一种新的节点类型。默认配置下,每个节点都是Ingest Node: 具有预处理数据的能力,可拦截lndex或Bulk API的请求对数据进行转换,并重新返回给Index或Bulk APl 无…

万宾科技管网水位监测助力智慧城市的排水系统

以往如果要了解城市地下排水管网的水位变化,需要依靠人工巡检或者排查的方式,这不仅加大了人员的工作量,而且也为市政府带来了更多的工作难题。比如人员监管监测不到位或无法远程监控等情况,都会降低市政府对排水管网的管理能力&a…

自动控制原理答案

题目 现有一个单位反馈系统的开环传递函数为 试对该系统进行以下分析。 1.基础分析 计算该系统的闭环传递函数。 2.稳定性分析 2.1 使用劳斯判据分析该系统的稳定性 2.2 使用MATLAB编程,计算该系统有关于稳定性分析的零、极点,分析其稳定性。 3.暂态性…

京东数据平台:2023年Q3季度黄金市场数据分析

继9月国内黄金市场持续上涨后,进入10月中下旬后,黄金行情再度反转,多家品牌金饰价格再次突破600元/克,达到611元/克。 今年以来,黄金行情不断走俏,销售市场也有明显增长。根据鲸参谋平台的数据显示&#xf…

最受欢迎的程序员副业排行榜TOP6

程序员接单的情况并不少见,因为程序员职业工种的特殊性,能够比较快的衔接上新项目和新技术,所以接私活做副业成了许多程序员的不二之选。 程序员的副业是指程序员在业余时间里从事与编程相关的兼职工作,或者是与技术相关的创业项…

goquery库编写程序

goquery库的爬虫程序,该程序使用Go来爬取视频。。 package main ​ import ("fmt""net/http""net/http/httputil""io/ioutil""log""strings""golang.org/x/net/proxy""golang.org/x/n…