CPU资源控制

news2024/12/24 3:29:41

一、CPU资源控制定义

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

  所以cgroups(control groups)实现了对资源的配额和度量

二、cgroups四大功能

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

三、设置CPU使用率上限

  Linux通过CFS(Completely Fair Scheduler,完全公平调度器)来调度各个进程对CPU的使用。CFS默认的调度周期是100ms。
  设置每个容器进程的调度周期,以及在这个周期内各个容器最多能使用多少 CPU 时间。

-cpu-period:设置调度周期

-cpu-quota:设置每个周期内各个容器最多可以用多少CPU时间

注意:周期的有效范围是 1ms~1s,对应的--cpu-period的数值范围是 1000~1000000,即周期100毫秒 ,而容器的 CPU 配额必须不小于 1ms,即 --cpu-quota 的值必须 >= 1000。

  3.1 设置50%的比例分配CPU使用时间上限

docker run -itd --name xxx centos:7 /bin/bash

docker ps -a

cd /sys/fs/cgroup/cpu/docker/容器ID

cat cpu.cfs_quota_us

cat cpu.cfs_period_us

echo 50000 > cpu.cfs_quota_us

cat cpu.cfs_quota_us

cpu.cfs_period_us:cpu分配的周期(微秒,所以文件名中用 us 表示),默认为100000。


cpu.cfs_quota_us:表示该cgroups限制占用的时间(微秒),默认为-1,表示不限制。 

  3.2进行压力测试

docker exec -it 容器ID /bin/bash

vi haha.sh

chmod +x haha.sh

./haha.txt

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

  4.1 创建两个容器

docker run -itd --name xxx --cpu-shares 512 centos:7

docker run -itd --name xxx --cpu-shares 1024 centos:7

  4.2 分别进入容器内进行压力测试

  4.2.1 在容器一内进行压力测试

docker ps

docker exec -it 容器ID /bin/bash

yum install -y epel-release

yum install -y stress

docker exec -it 容器ID /bin/bash

stress -c 4

  4.2.2 在容器二内进行压力测试

docker ps

docker exec -it 容器ID /bin/bash

yum install -y epel-release

yum install -y stress

docker exec -it 容器ID /bin/bash

stress -c 4

   4.3 查看容器运行状态

docker stats

五、设置容器绑定指定的CPU

  5.1 先分配虚拟机4个CPU核数

docker run -itd --name hh2 --cpuset-cpus 1 centos:7 /bin/bash

docker ps

docker exec -it 容器ID /bin/bash

yum install -y epel-release

yum install -y stress

docker stats

六、对内存使用的限制

-m选项:限制容器可以使用的最大内存

docker run -itd --name xxx -m 512m centos:7 /bin/bash

docker stats

如果--memory-swap设置为0或者不设置,则容器可以使用的swap大小为-m值的两倍。


如果--memory-swap的值和-m值相同,则容器不能使用 swap。


如果--memory-swap值为-1,它表示容器程序使用的内存受限,而可以使用的swap空间使用不受限制(宿主机有多少 swap 容器就可以使用多少)。
 

 

七、对磁盘IO配额控制(blkio)的限制

--device-read-bps:限制某个设备上的读速度bps(数据量),单位可以是kb、mb(M)或者gb。
例:docker run -itd --name test9 --device-read-bps /dev/sda:1M  centos:7 /bin/bash

--device-write-bps: 限制某个设备上的写速度bps(数据量),单位可以是kb、mb(M)或者gb。
例:docker run -itd --name test10 --device-write-bps /dev/sda:1mb centos:7 /bin/bash

--device-read-iops:限制读某个设备的iops(次数)
 
--device-write-iops:限制写入某个设备的iops(次数)

  7.1 操作

    创建容器并限制写的速度,然后通过dd来验证写速度,最后用docker来清理空间

 

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

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

相关文章

西圣、小米、倍思开放式耳机好用吗?详细测评对比性能王者

身为一名在数码科技领域有着丰富经验的测评师,我深入接触过各种开放式耳机。在众多开放式耳机品牌中,西圣、小米和倍思三款产品以其出色的性能和独特的设计,受到市场的广泛议论,今天我将为大家带来这三款开放式耳机的详细测评对比…

最新AI创作系统ChatGPT网站源码Midjourney-AI绘画系统,Suno-v3-AI音乐生成大模型。

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持GPT…

Laravel 6 - 第十二章 控制器

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

javaScript基础3

javaScript 一.对象1.概念2.创建对象的三种方法(1).字面量创建(利用{})(2)变量、属性、函数、方法的区别(3).new Object创建(4).构造函数 3.new关键字的执行过程4.遍历对象(for..in) 二.内置对象1.了解2.math对象3.日期对象(构造函…

挖矿木马基础知识

文章目录 一、概述二、挖矿介绍三、挖矿的收益四、挖矿木马的传播方式漏洞利用NSA武器的使用无文件挖矿利用网页挂马暴力挖矿病毒黑吃黑 五、防范建议六、学习参考 一、概述 比特币(Bitcoin)的概念最初由中本聪在 2008年11月1日提出,并于 2009年1月3日正式诞生。根…

Shell全套课程2小时速通从小白变高手

1.Shell概述 1.1为什么要学shell ​ 1.看懂运维人员编写的shell脚本 ​ 2.偶尔会编写一些简单的shell程序来管理集群,提高开发效率 1.2 Shell介于外层应用和LInux内核之间;用来操作Linux内核; Shell是一个命令行解释器,它接收…

算法课程笔记——如何进制转换

python特性 八、为什么负数的补码的求法是反码1 因为负数的反码加上这个负数的绝对值正好等于1111,在加1,就是10000,也就是四位二进数的模,而负数的补码是它的绝对值的同余数,可以通过模减去负数的绝对值得到它的补码&…

2024最新SSL证书在线申请系统源码 | 支持API接口 支持在线付费 二开优化版

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 2024最新SSL证书在线申请系统源码 | 支持API接口 支持在线付费 二开优化版 最新SSL证书在线申请系统源码 | 支持API接口 SSL证书保证网络安全的基本保障。向您介绍我们的在线生成SSL…

权威解析Spring框架九大核心功能(续篇):专业深度,不容错过

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目:CSDN主页YAML墨韵 学如逆水行舟&#xff0c…

速度与激情:超高速--100G网卡篇

在数字化时代,信息传输的速度和效率成为了各个领域的关键。在这个快节奏的世界里,网络连接的快慢直接影响着工作效率、生活质量甚至是创新能力。而在网络连接技术中,网卡的作用举足轻重。近年来,随着网络技术的不断发展&#xff0…

路由引入,路由过滤,路由策略简单实验

实验要求: 1、按照图示配置 IP 地址,R1,R3,R4 上使用 1oopback 口模拟业务网段 2、R1 和 R2 运行 RIPv2,R2,R3和R4 运行 OSPF,各自协议内部互通 3、在 RIP 和 OSPF 间配置双向路由引入&#x…

在PostgreSQL中,如何创建一个触发器并在特定事件发生时执行自定义操作?

文章目录 解决方案示例代码1. 创建自定义函数2. 创建触发器 解释 在PostgreSQL中,触发器(trigger)是一种数据库对象,它能在特定的事件(如INSERT、UPDATE或DELETE)发生时自动执行一系列的操作。这些操作可以…

短期斩获多个访问学者邀请函|高校教师获批CSC赴伦敦大学学院

B老师申报的是2023年CSC西部/地方合作项目,因申报在即,所以时间是第一要素,国家定位在英国及澳大利亚。经过努力,我们先后获得英国布里斯托大学、伦敦大学学院及澳大利亚昆士兰大学等多个邀请函,最终其选择了英国伦敦大…

CSS学习(选择器、盒子模型)

1、CSS了解 CSS:层叠样式表,一种标记语言,用于给HTML结构设置样式。 样式:文字大小、背景颜色等 p标签内不能嵌套标题标签。 2、CSS编写位置 1、行内样式(内联样式):在标签里添加样式&#…

谷歌搜索SEO优化需要做什么?

最基本的要求,网站基础要优化好,让你的网站更加友好地服务于用户和搜索引擎,首先你要保证你的网站也适配手机端,现在手机端,如果你的网站在手机上打开慢,或者没有适配手机端,让用户用手机看着电…

Git merge的版本冲突实验

实验目的 发现 两个分支的 相同文件 怎样被修改 才会发生冲突? 实验过程 1.初始状态 现在目前有1.py、2.py两个文件,已经被git管理。现在我想制造冲突,看怎样的修改会发生冲突,先看怎么不会发生冲突。 目前仓库里的版本是这样…

【MySQL】A01、性能优化-参数监控分析

1、参数监控 1.1、MySQL command 查看 mysql>SHOW STATUS; (服务器状态变量,运行服务器的统计和状态指标) mysql> SHOW VARIABLES;(服务器系统变量,实际上使用的变量的值) mysql> SHOW STATUS …

2024年 团体程序设计天梯赛个人总结

前言: 这是一个悲伤的故事~ 🏆题目传送门 ⭐L1一阶题⭐L1-097 编程解决一切(5分)⭐L1-098 再进去几个人(5分)⭐L1-099 帮助色盲(10分)⭐L1-100 四项全能(10 分&#xff0…

做大模型产品,如何设计prompt?

做GenAI产品,除了要设计好的AI任务流程,合理的拆分业务以外,最重要的就是写好prompt,管理好prompt,持续迭代prompt。 prompt一般有两种形式:结构化prompt和对话式prompt。 结构化prompt的优点是通过规范的…

C++:二叉树进阶

二叉搜索树 二叉搜索树又称二叉排序树,它或者是一棵空树 ,或者是具有以下性质的二叉树 : 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 它的左右子…