简单认识Docker的资源控制

文章目录

  • 一、CPU资源限制
    • 1.设置CPU使用率上限
    • 2.设置CPU资源占用比(设置多个容器才有效)
    • 3.设置容器与CPU绑核
  • 二、内存资源限制
  • 三、对磁盘I/O配额的限制


一、CPU资源限制

1.设置CPU使用率上限

    Linux通过CFS(Completely Fair Scheduler,完全公平调度器)来调度各个进程对CPU的使用。CFS默认的调度周期是10ms。我们可以设置每个容器进程的调度周期,以及在这个周期内各个容器最多能使用多少CPU 时间。
--cpu-period        #设置调度周期,数值范围是1000~1000000
--cpu-guota        #设置在每个周期内容器能使用的CPU时间,值必须>=1000
--cpu-period,CPU分配的周期(微秒,所以文件名中用us表示)默认为100000。
--cpu-guota,表示该cgroups限制占用的时间(微秒),默认为-1,表示不限制。如果设为50000表示占用50000/100000=50%的CPU。 

在这里插入图片描述
创建时限制cpu,然后随便执行一个死循环,在另一个终端进入容器执行top命令,查看发现cpu跑满只有30%了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同时设置–cpu-period和–cpu-guota,周期设为10000,50%占用就设为5000
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

--cpu-shares         #指定CPU份额,默认值为1024,值为1024的倍数(多个容器的数值成比例,就能精确保证占用CPU的份额)

在这里插入图片描述

分别进入三个容器进行压测

#分别下载stress压测并使用
docker exec -it c1 bash
yum -y install epel-release
yum -y install stress
stress -c 4
 
docker exec -it c2 bash
yum -y install epel-release
yum -y install stress
 
stress -c 4
docker exec -it c3 bash
yum -y install epel-release
yum -y install stress
stress -c 4

在这里插入图片描述
在这里插入图片描述

3.设置容器与CPU绑核

--cpuset-cpus        #指定与哪个cpu绑定,cpu编号从0开始,多个可以用逗号隔开

在这里插入图片描述
在这里插入图片描述

二、内存资源限制

-m(--memory)        #限制容器使用的最大内存

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

三、对磁盘I/O配额的限制

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

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能

【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建,服务重启,服务发布的功能。一键实现。非常的舒服。 1. 启动脚本 shell脚本 这是 s…

vue3 路由缓存问题

目录 解决问题的思路: 解决问题的方案: 1、给roter-view添加key(破坏复用机制,强制销毁重建) 2、使用beforeRouteUpdate导航钩子 3、使用watch监听路由 vue3路由缓存:当用户从/users/johnny导航到/use…

【王道-进程与线程】

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.0 引言No.1 进程的概念、组成、特征一、进程的概念二、进程的组成1、PCB进程控制块2、程序段/数据段 三、程序是如何运行的?四、进程的特征五、总结 No.2 进程的状态转换和组织一、进程的状态1、创建态、就绪态…

(牛客网)链表相加(二)

嗯哼~ 题目 描述 假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。 给定两个这种链表,请生成代表两个整数相加值的结果链表。 数据范围:0 ≤ n,m ≤ 1000000,链表任意值 0 ≤ val ≤ 9 要求&#x…

c++优先级队列的模拟实现代码

了解: 1.优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。 2. 类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)。 3. 优先队列被实现为…

IDEA 如何制作代码补丁?IDEA 生成 patch 和使用 patch

什么是升级补丁? 比如你本地修复的 bug,需要把增量文件发给客户,很多场景下大家都需要手工整理修改的文件,并整理好目录,这个很麻烦。那有没有简单的技巧呢?看看 IDEA 生成 patch 和使用 patch 的使用。 介…

Ubuntu安装Apache+Php

环境:ubuntu 22.04 虚拟机 首先更新一下 sudo apt-get update sudo apt-get upgrade安装Apache2: sudo apt-get install apache2 输入y,继续。等着他恐龙抗浪抗浪的下载安装就好了 打开浏览器访问http://localhost/ 安装php: …

【Linux】进程信号篇Ⅰ:信号的产生(signal、kill、raise、abort、alarm)、信号的保存(core dump)

文章目录 一、 signal 函数:用户自定义捕捉信号二、信号的产生1. 通过中断按键产生信号2. 调用系统函数向进程发信号2.1 kill 函数:给任意进程发送任意信号2.2 raise 函数:给调用进程发送任意信号2.3 abort 函数:给调用进程发送 6…

【C语言】数组概述

🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:C语言 🔥该篇将带你了解 一维数组,二维数组等相关知识。 目录: 📘前言:&#x1f…

vue3+ts+vite使用el-breadcrumb实现面包屑组件,实现面包屑过渡动画

简介 使用 element-plus 的 el-breadcrumb 组件&#xff0c;实现根据页面路由动态生成面包屑导航&#xff0c;并实现面包屑导航的切换过渡动画 一、先看效果加粗样式 1.1 静态效果 1.2 动态效果 二、全量代码 <script lang"ts" setup> import { ref, watch…

JVM基础了解

JVM 是java虚拟机。 作用&#xff1a;运行并管理java源码文件锁生成的Class文件&#xff1b;在不同的操作系统上安装不同的JVM&#xff0c;从而实现了跨平台的保证。一般在安装完JDK或者JRE之后&#xff0c;其中就已经内置了JVM&#xff0c;只需要将Class文件交给JVM即可 写好的…

安装pyrender和OSMesa

1&#xff09;安装 pyrender Pyrender是一个基于OpenGL的库&#xff0c;可以加载和渲染三维网格、点云、相机等对象3。 pip install pyrender 2&#xff09;理解PyOpenGL和OSMesa的关系是: PyOpenGL是Python的OpenGL绑定库&#xff08;接口壳子&#xff09;,它提供了在Python中…

day9 STM32 I2C总线通信

I2C总线简介 I2C总线介绍 I2C&#xff08;Inter-Integrated Circuit&#xff09;总线&#xff08;也称IIC或I2C&#xff09;是由PHILIPS公司开发的两线式串行总线&#xff0c;用于连接微控制器及其外围设备&#xff0c;是微电子通信控制领域广泛采用的一种总线标准。 它是同步通…

基于ACF,AMDF算法的语音编码matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .......................................................................... plotFlag …

day-25 代码随想录算法训练营(19)回溯part02

216.组合总和||| 思路&#xff1a;和上题一样&#xff0c;差别在于多了总和&#xff0c;但是数字局限在1-9 17.电话号码的字母组合 思路&#xff1a;先纵向遍历第i位电话号码对于的字符串&#xff0c;再横向递归遍历下一位电话号码 93.复原IP地址 画图分析&#xff1a; 思…

微服务中间件--Ribbon负载均衡

Ribbon负载均衡 a.Ribbon负载均衡原理b.Ribbon负载均衡策略 (IRule)c.Ribbon的饥饿加载 a.Ribbon负载均衡原理 1.发起请求http://userservice/user/1&#xff0c;Ribbon拦截该请求 2.Ribbon通过EurekaServer拉取userservice 3.EurekaServer返回服务列表给Ribbon做负载均衡 …

学习笔记230810--get请求的两种传参方式

问题描述 今天写了一个对象方式传参的get请求接口方法&#xff0c;发现没有载荷&#xff0c;ip地址也没有带查询字符串&#xff0c;数据也没有响应。 代码展示 错误分析 实际上这里的query是对象方式带参跳转的参数名&#xff0c;而get方法对象方式传参的参数名是parmas 解…

【Python】解决“Tk_GetPixmap: Error from CreateDIBSection”闪退问题

解决Python使用Tkinter的Notebook切换标签时出现的“Tk_GetPixmap: Error from CreateDIBSection 操作成功完成”闪退问题 零、问题描述 在使用Tkinter的Notebook控件时&#xff0c;对其标签进行切换&#xff0c;发现切换不了&#xff0c;一切换就报如下图错误&#xff1a; …

如何在 Elasticsearch 中将矢量搜索与过滤结合起来 - Python 8.x

大型语言模型&#xff08;LLM&#xff09;每天都在发展&#xff0c;这种情况有助于语义搜索的扩展。 LLM 擅长分析文本和揭示语义相似性。 这种情况也反映在搜索引擎上&#xff0c;因为语义搜索引擎可以为用户提供更满意的结果。 尽管大型语言模型可以捕获语义上接近的结果&am…

解锁Spring AOP的神秘面纱

目录 Spring AOP的组成组成部分与常用注解举例理解 Spring AOP的实现添加 Spring AOP 框架⽀持定义切⾯和切点定义通知切点表达式说明 Spring AOP 实现原理JDK动态代理CGLIB动态代理 Spring AOP作为Spring框架的核心模块&#xff0c;为我们提供了一种优雅的方式来处理横切关注点…
最新文章