Docker Cgroups资源控制

news2024/11/25 14:49:29

目录

一、cgroups简介

cgroups有四大功能:

二、cpu时间片的概念

三、对CPU使用的限制

1 设置CPU使用率上限

(1)查看容器的默认CPU使用限制

 2 设置CPU资源占用比(设置多个容器时才有效)

1)创建两个容器,设置CPU资源占用比

 2)分别进入两个容器,进行压力测试

 3)查看容器运行状态,观察CPU使用占比

 3 设置容器绑定指定的CPU(绑核)

 四、对内存使用的限制

1 限制容器可以使用的最大内存

 2 限制容器可用的swap 大小

 五、对磁盘IO的配置控制(blkio)的限制

1 创建容器,不限制写速度

 2 创建容器,并限制写速度

 六、清除docker占用的磁盘空间


一、cgroups简介

cgroups,是一个非常强大的linux内核工具,他不仅可以限制被namespace 隔离起来的资源,还可以 为资源设置权重、计算使用量、操控进程启停等等。所以cgroups (Control groups) 实现了对资源的配额和度量。

cgroups有四大功能:

资源限制:可以对任务使用的资源总额进行限制。
优先级分配:通过分配的cpu时间片数量以及磁盘IO带宽大小,实际上相当于控制了任务运行优先级。
资源统计:可以统计系统的资源使用量,如cpu时长,内存用量等。
任务控制: cgroup可以对任务 执行挂起、恢复等操作。

二、cpu时间片的概念

时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片,即该进程允许运行的时间,使各个程序从表面上看是同时进行的。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。而不会造成CPU资源浪费。
在宏观上:我们可以同时打开多个应用程序,每个程序并行不悖,同时运行。但在微观上:由于只有一个CPU,一次只能处理程序要求的一部分,如何处理公平,一种方法就是引入时间片,每个程序轮流执行。

三、对CPU使用的限制

1 设置CPU使用率上限

Linux通过CFS (Completely Fair Scheduler, 完全公平调度器)来调度各个进程对CPU的使用。CFS默认的调度周期是100ms

我们可以设置每个容器进程的调度周期,以及在这个周期内各个容器最多能使用多少CPU时间。

使用 --cpu-period 即可设置调度周期,使用 --cpu-quota 即可设置在每个周期内容器能使用的CPU时间。两者可以配合使用。
CFS周期的有效范围是1ms ~ 1s, 对应的 --cpu-period 的数值范围是 1000 ~1000000 (单位微秒)。
而容器的CPU配额必须不小于1ms,即 --cpu-quota 的值必须 >= 1000。

(1)查看容器的默认CPU使用限制

 

 (2)进行压力测试

 

 

 

 (3)创建容器时设置CPU使用时间限制

 

 

 (4)对已存在的容器进行CPU限制

直接修改 /sys/fs/cgroup/cpu/docker/容器id/cpu.cfs_quota_us 文件即可

 2 设置CPU资源占用比(设置多个容器时才有效)

 Docker 通过 --cpu-shares 指定CPU份额,默认值为1024,值为1024的倍数。

1)创建两个容器,设置CPU资源占用比

 2)分别进入两个容器,进行压力测试

 进入c1容器,进行压力测试:

 

 

 进入c2容器,进行压力测试:

 

 

 3)查看容器运行状态,观察CPU使用占比

 3 设置容器绑定指定的CPU(绑核)

注意:CPU编号从0开始。 编号1、3代表第二个核和第四个核 。

 

 

 

 四、对内存使用的限制

1 限制容器可以使用的最大内存

-m (或--memory=)选项用于限制容器可以使用的最大内存

 

 2 限制容器可用的swap 大小

 #限制可用的swap 大小,--memory-swap
 ●强调一下, --memory-swap是必须要与 --memory(或-m)一起使用的。
 ●正常情况下, --memory-swap 的值包含容器可用内存和可用swap 。
 ●所以 -m 300m --memory-swap=1g 的含义为:容器可以使用300M 的物理内存,并且可以使用700M (1G - 300M)的swap。
 ​
 设置为0或者不设置,则容器可以使用的 swap 大小为 -m 值的两倍。
 如果 --memory-swap 的值和 -m 值相同,则容器不能使用swap。
 如果 --memory-swap 值为 -1,它表示容器程序使用的内存受限,而可以使用的swap空间使用不受限制(宿主机有多少swap 容器就可以使用多少)。

 五、对磁盘IO的配置控制(blkio)的限制

--device-read-bps:限制某个设备上的读速度bps ( 数据量),单位可以是kb、mb (M)或者gb。
--device-write-bps : 限制某个设备上的写速度bps ( 数据量),单位可以是kb、mb (M)或者gb。
--device-read-iops :限制读某个设备的iops (次数)
--device-write-iops :限制写入某个设备的iops ( 次数)

 --device-read-bps:限制某个设备上的读速度bps ( 数据量),单位可以是kb、mb (M)或者gb。
 例: docker run -itd --name test9 --device-read-bps /dev/sda:1M centos:7 /bin/bash
 #表示该容器每秒只能读取1M的数据量
 ​
 --device-write-bps : 限制某个设备上的写速度bps ( 数据量),单位可以是kb、mb (M)或者gb。
 例: docker run -itd --name test10 --device-write-bps /dev/sda:1mb centos:7 /bin/bash
 #表示该容器每秒只能写入1M的数据量
 ​
 --device-read-iops :限制读某个设备的iops (次数)
 --device-write-iops :限制写入某个设备的iops ( 次数)
 

1 创建容器,不限制写速度

 2 创建容器,并限制写速度

 六、清除docker占用的磁盘空间

docker system prune -a 可用于清理磁盘,删除关闭的容器、无用的数据卷和网络。

 

 

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

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

相关文章

回归商业初心,宝尊电商“深耕广拓”缔造品牌电商有质增长

今年来,受疫情、通胀、能源等因素影响,全球市场都经历了不同程度的“震荡”。 寒气传递之间,电商行业开始摸索后疫情时代的前进之路。随着财报季来临,市场开始期待从各赛道标杆企业财报中看出行业走势。 11月29日,“…

python3基础语法

Python 常用文件扩展名为 .py,可以新建一个 hello.py 文件开始下面的学习,执行使用命令 python3 hello.py 一、标识符 第一个字母必须是 字母 或 下划线 _标识符的其他的部分由 字母、数字 和 下划线 组成标识符对 大小写敏感 二、保留字&#xff08…

[2022世界杯] 小白也可以看懂的世界杯

⚽文化世界杯 如果问你全球最火,影响力最大的体育赛事是什么?那么很多人会说 “奥运会”!当然不完全对,如果从关注度来说 世界杯的影响力更大! 世界杯与奥运会的不同在于:会员协会的数量,拥有209个会员协会…

【踩坑】double和BigDecimal的精度问题

【踩坑】double和bigdecimal的精度问题背景debug尝试测试代码结果总结背景 今天生产报了个问题,在申报和预算相同的金额的时候,后台返回超出预算。一开始以为是判断逻辑的问题,找了个数据试了下发现重现不出来。又是改数据又是找前端传参最后…

Pose for Everything: Towards Category-Agnostic Pose Estimation 阅读笔记

类无关姿态估计 ECCV 2022 Oral 论文链接 代码链接 其他参考 引入了一个新任务:CategoryAgnostic Pose Estimation (CAPE) 类无关姿态估计 摘要: 目前的2D姿态估计与类别耦合,例如人、动物、车辆。但很多场景需要检测未知类的姿态/关键点。…

我是如何从测试开发做到年薪50万的?

入行测开,马上就要5年了。创业公司待过,大公司也待过,工作这一路走来,一些心得,转变,职场体会,早就想写出来分享一下。这个历程包含了技术的提升,工程师的素养和对这个行业的点滴感悟…

操作系统学习笔记(Ⅳ):文件

目录 1 文件管理 1.1 初识文件管理 1.文件属性 2.文件数据组织 3.向上功能 1.2 文件逻辑结构 1.无结构文件 2.有结构文件 3.顺序文件 4.索引文件 5.索引顺序文件 1.3 文件目录 1.文件控制块 2.目录结构 3.索引结点 1.4 文件物理结构 1.连续分配 2.链接分配 …

【面试题】【ES6】let和const命令 (面试必看)

给大家推荐一个实用面试题库 1、前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 1、let命令 基本用法 用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 let…

全国计算机三级嵌入式 - 题库 - 真题(含答案) - 未来教育 - 视频讲解 - 资料获取

全国全国计算机三级嵌入式等级考试 1. 考题大纲 历年不一样。但是换汤不换药。 2. 考试真题 历年全部考题、真题。包含全部答案。 3. 未来教育 考点、知识点、历年真题视频讲解。 4. 资料获取 在本人的博客上传资源里!!!下载不易&#xff0…

[附源码]计算机毕业设计springboot勤工俭学管理小程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

论文投稿指南——中文核心期刊推荐(计算机技术)

>>>深度学习Tricks&#xff0c;第一时间送达<<< &#x1f680; 写在前面 &#x1f431;‍&#x1f3cd; 本期开始&#xff0c;小海带会定期推荐各专业领域的中文核心期刊及论文投稿网址&#xff0c;供大家交流参考 ~ 《中文核心期刊要目总览》——是学术界…

功率放大器主要性能指标是什么(功率放大器工作状态的分类)

电子仪器中&#xff0c;放大器末级都要带动一定的负载&#xff0c;所以末级电路不仅要求可以输出较大幅度电压&#xff0c;而且要求输出较大幅度电流&#xff0c;也就是要求放大器能够对负载输出较大的功率&#xff0c;这种测试仪器就被称为功率放大器。 功率放大器主要性能指标…

人脸检测-级联卷积

人脸检测有好多种cv都有自带 说到人脸检测&#xff0c;应该是近几年不老的话题了&#xff0c;如果要将这技术真的落实到现在产品&#xff0c;其实还有很长的路&#xff0c;不知道大家有没有发现&#xff0c;很多无人超市开始走下坡路&#xff0c;也许不仅仅是技术的原因之一吧…

idea中LeetCode无法正常使用

在风诡云谲的互联网职场中&#xff0c;随时准备好简历和刷题能力是非常必要的&#xff01;在工作时间“光明正大”刷题的神器——LeetCode插件&#xff01; 原来&#xff1a;idea 2019&#xff1b;LeetCode 6.8 目前&#xff1a;idea 2020.3&#xff1b;LeetCode 8.4 一 ide…

ARM-A架构入门基础(四)Cache

14天学习训练营导师课程&#xff1a;周贺贺《ARMv8/ARMv9架构-快速入门》 1. 定义 Cache是ARM中一块可高速访问的内存块&#xff0c;每块cache包含&#xff1a; 主要的内存地址信息&#xff1b;缓存数据。 2. Cache模型 速度方面&#xff1a;L1 cache > L2 cache > L…

从json中获取嵌套对象值(Oracle中的json_value和MySQL中的JSON_EXTRACT) 以及Oracle和MySQL处理日期语法的不同

从json中获取嵌套对象值&#xff08;Oracle中的json_value和MySQL中的JSON_EXTRACT&#xff09; 以及Oracle和MySQL处理日期语法的不同1. 从json中获取嵌套对象值1.1 Oracle 的 json_value1.2 MySQL 的 JSON_EXTRACT2. 日期问题2.1 MySQL2.1.1 获取指定日期2.1.1.1 DATE_SUB() …

高等数学(第七版)同济大学 习题10-4 (后7题)个人解答

高等数学&#xff08;第七版&#xff09;同济大学 习题10-4&#xff08;后7题&#xff09; 函数作图软件&#xff1a;Mathematica 8.设球占有闭区域Ω{(x,y,z)∣x2y2z2≤2Rz}&#xff0c;它在内部各点处的密度的大小等于该点到坐标原点的距离的平方&#xff0c;试求这球的质心…

九、Sentinel熔断与限流

Sentinel实现熔断与限流 Sentinel介绍 官网 https://github.com/alibaba/Sentinel 中文 https://github.com/alibaba/Sentinel/wiki/介绍 是什么 一句话解释&#xff0c;之前的Hystrix 能干嘛 去哪下 https://github.com/alibaba/Sentinel/releases 怎么玩 https://sp…

vue学习笔记:还不会上传文件,10分钟教会你使用input file上传文件

最近在写一个用户上传MP3文件到服务器的小案例&#xff0c;我写一个这样的界面&#xff1a; 当用户点击input的时候&#xff0c;其实这里并不是input的样式&#xff0c;而是一个div将代替了input的原生样式&#xff0c;这样比较好看一点&#xff1a; <div class"addre…