Docker资源配额

        Docker资源配额指的是对Docker容器或服务在系统资源使用方面的限制。 通过资源配额,可以控制和限制Docker容器可以使用的CPU、内存、磁盘空间和网络带宽等资源。

        根据应用程序的需求和系统环境来设置适当的资源配额:过于严格的配额可能导致应用程序性能下降,而过于宽松的配额可能会导致资源浪费和冲突,资源配额提供了更好的资源控制和管理机制,以确保容器化环境的稳定性和性能。

CPU资源配额

#查看帮助
docker run --help | grep cpu--cpu-period int                 Limit CPU CFS (Completely Fair Scheduler) period--cpu-quota int                  Limit CPU CFS (Completely Fair Scheduler) quota--cpu-rt-period int              Limit CPU real-time period in microseconds--cpu-rt-runtime int             Limit CPU real-time runtime in microseconds-c, --cpu-shares int                 CPU shares (relative weight)--cpus decimal                   Number of CPUs--cpuset-cpus string             CPUs in which to allow execution (0-3, 0,1)--cpuset-mems string             MEMs in which to allow execution (0-3, 0,1)#CPU份额-c, --cpu-shares
CPU shares在创建容器时指定容器所使用的CPU份额值
是一个相对的加权值,不能保证获取绝对的core数量,默认docker容器cpu份额为1024
份额为1000的A容器和2000的B容器,B获取CPU占用时间的是A的两倍
如果CPU是充足,那么A和B都能获得充足的CPU
docker run -itd --name cpu1 --cpu-shares 1000 centos /bin/bash
docker exec -it cpu1 /bin/bash
cat /sys/fs/cgroup/cpu/cpu.shares
#1000#CPU核数--cpuset-cpus、--cpuset-mems
可以控制容器运行限定使用哪些cpu内核和内存节点
更适用于具有NUMA拓扑(具有多CPU、多内存节点)的服务器
#nproc查看有多少个可用cpu
8
#使其绑定两个CPU
docker run -itd --name cpu1 --cpuset-cpus 0,1 centos /bin/bash#puset-cpus和cpu-shares混合使用
docker run -itd --name cpu1 --cpuset-cpus 0,1 --cpu-shares 1000 centos /bin/bash
docker exec -it cpu1 /bin/bash
rm -rf /etc/yum.repos.d/* && exitdocker cp Centos-vault-8.5.2111.repo cpu1:/etc/yum.repos.d/
docker run -itd --name cpu2 --cpuset-cpus 0,1 --cpu-shares 2000 centos /bin/bash
docker exec -it cpu2 /bin/bash
rm -rf /etc/yum.repos.d/* && exit
docker cp Centos-vault-8.5.2111.repo cpu2:/etc/yum.repos.d/
#在容器内下载与使用stress压测软件,然后我忘了要在里面放centos8的源文件了
docker exec -it cpu1 yum install -y epel-release
docker exec -it cpu1 yum install -y stress
docker exec -it cpu2 yum install -y epel-release
docker exec -it cpu2 yum install -y stress
stress --help #查看stress帮助,直接看example就行
#Example: stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s#开始测试,开三个terminal,一个cpu1,一个cpu2,一个看top
docker exec -it cpu1 /bin/bash 
stress -c 2 --timeout 5m
docker exec -it cpu2 /bin/bash
stress -c 2 --timeout 5m
#再开一个terminal看top

内存资源配额

根据容器所运行的业务,配置相应最大内存,防止用太多影响其他的业务
docker run --help | grep -i memory--kernel-memory bytes            Kernel memory limit-m, --memory bytes                   Memory limit--memory-reservation bytes       Memory soft limit--memory-swap bytes              Swap limit equal to memory plus swap: '-1' to enable unlimited swap--memory-swappiness int          Tune container memory swappiness (0 to 100) (default -1)docker run -itd --name mem1 -m 1g centos
docker exec -it mem1 cat /sys/fs/cgroup/memory/memory.limit_in_bytes
1073741824

IO资源配额

控制IO资源
docker run --help | grep write--device-write-bps list          Limit write rate (bytes per second) to a device (default [])--device-write-iops list         Limit write rate (IO per second) to a device (default [])
docker run --help | grep read--device-read-bps list           Limit read rate (bytes per second) from a device (default [])--device-read-iops list          Limit read rate (IO per second) from a device (default [])#创建容器io,设置存储映射关系,设备sda限制io速度1mb每秒
docker run -it  -v /test/:/test/ --device /dev/sda:/dev/sda \\
--device-write-bps /dev/sda:1mb --name io centos  /bin/bash
#使用dd命令,从sda写到/test/内,块大小1M,传送60个块,绕过内核缓存,直接读取和写入设备
time dd if=/dev/sda of=/test/transblock bs=1M count=60 oflag=direct,nonblock#读数据同理

结束运行资源释放

设置容器结束运行后自动释放资源,适用于一次性的容器如测试容器
如果容器是异常退出了也会被删除
docker run --help | grep rm--rm                             Automatically remove the container when it exits
#只设置一个5秒钟的任务
docker run -it --rm --name rmtest alpine sleep 5
docker ps -a | grep rm
#无,已经被自动删除了

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

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

相关文章

码云Gitee复制 GitHub 项目

码云提供了直接复制 GitHub 项目的功能,方便我们做项目的迁移和下载。 1.新建仓库 2.导入仓库 3.强制同步 如果 GitHub 项目更新了以后,在码云项目端可以手动重新同步,进行更新!

CSS新增文本描边-text-stroke属性

-webkit-text-stroke属性 概念:-webkit-text-stroke属性为文本添加描边效果。所谓的描边效果,指的是给文字添加边框 语法: -webkit-text-stroke:width color;Chrome和Firefox这两个浏览器都只能识别带有-webkit前缀的text-stroke属性 -web…

金和OA C6 UploadFileEditorSave.aspx 任意文件上传漏洞

产品介绍 金和网络是专业信息化服务商,为城市监管部门提供了互联网监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 漏洞概述 金和 OA C6 uploadfileeditorsave接口处存在任意文件上传漏洞,攻击者可以通过构造特殊…

洛谷——P1983 [NOIP2013 普及组] 车站分级(拓扑排序、c++)

文章目录 一、题目[NOIP2013 普及组] 车站分级题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示 二、题解基本思路:代码 一、题目 [NOIP2013 普及组] 车站分级 题目背景 NOIP2013 普及组 T4 题目描述 一条单…

面试题:说一下Java开启异步线程的几种方法?

文章目录 整体描述实现方法一、注解Async1. 添加注解2. 创建异步方法Service和实现类3. 调用异步方法 二、AsyncManager1. 创建AsyncManager类2. 创建一个耗时的操作类3. 执行异步操作 三、线程池1. 创建线程池2. 创建一个耗时的操作类3. 执行线程池 总结 整体描述 在java中异…

使用STM32的定时器和PWM实现LCD1602的背光控制

使用STM32的定时器和PWM功能来控制LCD1602的背光是一种常见的方法,它可以实现背光的亮度调节和闪烁效果。在本文中,我们将讨论如何利用STM32的定时器和PWM来实现LCD1602的背光控制,并提供相应的代码示例。 1. 硬件连接和初始化 首先&#x…

大语言模型LLM微调技术:Prompt Tuning

1 预训练语言模型概述 1.1 预训练语言模型的发展历程 截止23年3月底,语言模型发展走过了三个阶段: 第一阶段 :设计一系列的自监督训练目标(MLM、NSP等),设计新颖的模型架构(Transformer&#…

二蛋赠书十三期:《一书读懂物联网》

前言 大家好!我是二蛋,一个热爱技术、乐于分享的工程师。在过去的几年里,我一直通过各种渠道与大家分享技术知识和经验。我深知,每一位技术人员都对自己的技能提升和职业发展有着热切的期待。因此,我非常感激大家一直…

标书制作的几个关键部分

在当今社会,无论是企业还是个人,参与招投标都是获取资源、项目或服务的重要途径。而一份优秀的标书,无疑是成功的关键。那么,标书究竟包含哪些部分呢? 1.封面与目录 封面是标书的脸面,它直接决定了评审专…

k8s的声明式资源管理(yaml文件)

1、声明式管理的特点 (1)适合对资源的修改操作 (2)声明式管理依赖于yaml文件,所有的内容都在yaml文件当中 (3)编辑好的yaml文件,还是要依靠陈述式的命令发布到k8s集群当中 kubect…

js 颜色转换,RGB颜色转换为16进制,16进制颜色转为RGB格式

颜色转换,RGB颜色转换为16进制,16进制颜色转为RGB格式,可以自己设置透明度。 //十六进制颜色值的正则表达式 var reg /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; /*RGB颜色转换为16进制*/ String.prototype.colorHex function () {var that this;if (/^…

Python逻辑运算符详解

在Python中,逻辑运算符用于比较两个或多个条件,并根据条件的结果返回一个布尔值(True或False)。 Python中的逻辑运算符有三种:and、or和not。 and运算符 and运算符用于判断两个条件是否同时为True。只有当两个条件都…

软件验收测试计划、验收测试报告案例模板参考

1. 概述 1.1. 编写目的 1.2. 测试背景 1.3. 测试依据 1.4. 测试对象 1.5. 测试资源 2. 测试方式与环境 2.1. 测试方式 2.2. 测试环境 3. 测试结果 3.1. 功能适合性和准确性 3.1.1. 总体统计 3.1.2. 详细结果 3.2. 安全性 3.3. 可靠性和性能 4. 总体分析 5. 测试…

创建VScode的C/C++编译环境

创建VScode的C/C编译环境 安装软件json文件 安装软件 可以选择安装Dev-Cpp、BlockCode或者MinGW。这里选择了Dev-Cpp。 json文件 launch.json { "version": "0.2.0", "configurations": [ { "name": "(gdb) L…

python解决如何判断平衡二叉树问题

对于二叉树中的特殊二叉树,平衡二叉树,要想解决判断二叉树是否是平衡二叉树问题,首先需要知道什么事平衡二叉树。 平衡二叉树的概念是指给定一颗二叉树,这颗二叉树以及二叉树的所有子二叉树的左右子树的高度之差不大于1&#xff…

redis的搭建及应用(六)-redis应用LUA脚本

edis的lua脚本 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University …

STM32 IAP学习

STM32三种烧录方式 ISP:In System Programming(在系统编程) 执行芯片厂商的BootLoader程序进入ISP模式,进入ISP模式后,用户可选择官方提供的烧录通信接口(如:串口),并配…

C++ UTF-8与GBK字符的转换 —基于Windows (MultiByteToWideChar WideCharToMultiByte)

1、UTF-8 和 GBK 的区别 GBK:通常简称 GB (“国标”汉语拼音首字母),GBK 包含全部中文字符。 UTF-8 :是一种国际化的编码方式,包含了世界上大部分的语种文字(简体中文字、繁体中文字、英文、…

word2019保存后的图片变模糊了怎么办?Word 2019 默认保存后压缩变模糊的问题,解决方案

Word 2019 默认保存后压缩变模糊的问题,解决方案 1,新建word 文件,插入一张原始图片,1080*1920,如下图: 2,保存时,word 2019默认选项,导致word 保存后,图片…

CTFshow web入门web127-php特性30

开启环境: extract() 函数从数组中将变量导入到当前的符号表,使用数组键名作为变量名,使用数组键值作为变量值 举例就是?a2,就会变成$a2,这里ctf_show有个_需要构造,前面说过php中变量名只有数字字母下划线&#xff…