K8S 1.31 新功能: 跨核分发CPU

news2024/11/16 17:35:24

​在Kubernetes的最新版本1.31中,一个超酷的新功能,叫做CPUManager的静态策略,里面有个选项叫做distribute-cpus-across-cores。虽然这个功能现在还在测试阶段,也就是alpha版,而且默认是藏起来的,但它的目的是让CPU的工作效率更高,特别是在那些有好多核心的处理器上,能让整个系统跑得更顺畅。

我们再来回顾一下Kubernetes的CPUManager是如何实现CPU资源分配的?

想象一下,Kubernetes的CPUManager就像个智能的管家,它负责把CPU资源分配给需要的容器。这整个过程是这样的:

  1. 资源请求:每个容器在启动时都会告诉CPUManager,它需要多少CPU资源,就像是说'嘿,我需要这么多CPU来干活'。

  2. 资源配额:CPUManager会看看集群的资源配额和限制,就像是看看家里有多少资源,然后决定能分给容器多少。

  3. CPU亲和性:有时候,容器可能更喜欢某些特定的CPU core,CPUManager会记下来,尽量满足它们的需求。

  4. 静态策略:在静态策略下,CPUManager会尝试把容器的CPU资源请求固定到特定的CPU core 上,就像是给每个容器分配一个固定的座位。

  5. 动态策略:动态策略就更灵活了,容器可以根据需要随时请求或释放CPU资源,就像是可以临时换座位。

  6. 资源调度:Kubernetes的调度器在分配容器到节点时,会看看哪个节点的CPU资源够用,确保每个容器都能得到它需要的资源。

  7. 资源监控:CPUManager还会时刻监控容器的CPU使用情况,确保它们不会超用。

  8. 资源回收:如果容器用得太多,CPUManager可能会限制它,保证其他容器也能正常运行。

通过这些办法,CPUManager确保了每个容器都能公平、高效地使用CPU资源,让整个集群的性能达到最佳。但是如果分配CPU资源的时候,总把它们都挤在一起,尽量用最少的物理core来处理的话,这样做有个问题,就是不同的CPU如果用同一个物理core,它们就得共享一些资源,比如缓存啊,执行单元这些,这就可能会影响效率。

 

所以呢,Kubernetes的这个新版本里就加了这个distribute-cpus-across-cores特性。即让CPUManager在分配CPU的时候,尽量把它们分散开,让每个CPU都能用上不同的物理core上。这样一来,每个CPU都有自己的空间,不用和其他CPU抢资源,运行起来自然就更顺畅,性能也能有所提升。

 

如果你想用这个distribute-cpus-across-cores新功能,首先得告诉Kubernetes的CPUManager用静态策略来管理CPU。这可以通过在启动kubelet的时候加个参数--cpu-manager-policy=static,或者在Kubelet的配置文件里设置cpuManagerPolicy: static来实现。

接下来,你还得告诉CPUManager用上这个分散CPU到不同核心的策略。这可以通过在配置里加上--cpu-manager-policy-options distribute-cpus-across-cores=true或者直接设置distribute-cpus-across-cores=true来做到。

不过得注意,这个新策略和另外两个选项full-pcpus-only或者distribute-cpus-across-numa是不能一起用的,别弄混了。

当然,每个新东西出来的时候,总有些限制,这个distribute-cpus-across-cores特性也不例外,尤其是它现在还在测试阶段。现在有个问题是,这个特性不能和其他一些可能会有冲突的CPU分配策略一起用。这可能会让一些需要特别资源管理的工作或者特定的部署环境用起来有点麻烦。

但是呢,别担心,社区正在努力改进这个特性。将来的更新会解决这些兼容性的问题,让这个策略能够和其他CPUManager的策略更好地配合。这样就可以打造一个既灵活又强大的CPU分配系统,能够满足各种不同的工作需求和性能目标。

最后,我们想一下,哪些场景可以使用 distribute-cpus-across-cores这个特性呢?

  1. 多核处理器优化:就像你有很多帮手,但大家都挤在一个小厨房里做饭,效率肯定不高。这个特性就是让每个容器都有自己的空间,避免大家挤在一起,提高效率。

  2. 缓存局部性:好比你的口袋里有各种工具,如果都放在一起,找起来就慢。分散开,每个工具有自己的位置,用起来就快多了。

  3. 避免资源争用:就像交通高峰期,大家都想走同一条路,结果就是堵车。这个特性就是让交通更顺畅,每个容器都有自己的路。

  4. 异构工作负载:如果你有各种各样的任务要处理,这个特性就能帮你把资源分配得更均匀,保证每个任务都能顺利进行。

  5. 性能敏感型应用:对于那些需要快速反应的应用,比如在线游戏或者股票交易,这个特性能确保它们总能拿到足够的CPU资源。

  6. 避免NUMA效应:在一些复杂的系统里,CPU和内存可能不在同一个地方,就像超市里不同区域的商品,拿起来会慢一些。这个特性就是减少这种延迟。

  7. 测试和开发:开发者可以用这个特性来试试看不同的CPU分配策略,就像是在做实验,看看哪种方法最好。

  8. 集群资源管理:管理员可以用这个特性来更好地管理资源,就像是在规划怎么分配家里的房间,让每个人都住得舒服。

总的来说,这个特性就像是个智能的资源分配器,特别适合那些需要精细控制CPU资源,让系统跑得更快更稳的场景。

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

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

相关文章

Backtrader 实现和理解海龟交易法

Backtrader 实现和理解海龟交易法 1. 海龟交易的理解 (1)资金管理 海龟将总资金分为N个交易单位,每个单位即称为头寸,划分的标准主要是参考标的的波动性。 波动性用一个指标量化即真实波动幅度均值(ATR)…

SSRF - 服务器端请求伪造

目录 SSRF dict协议 file协议 gopher协议 工具Gopherus 练习 练习1 练习2 docker镜像加速的方法 SSRF SSRF(Server-Side Request Forgery:服务器端请求伪造) 其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制&…

【物理学】什么是运动学和动力学?

Kinematics 和 Kinetics 是力学中的两个重要分支,它们虽然都涉及物体的运动,但关注的方面不同。 Kinematics(运动学) Kinematics 主要研究物体的运动,而不涉及导致运动的力。它关注的是运动的几何特性,比…

UE5学习笔记18-使用FABRIK确定骨骼的左手位置

一、在武器的骨骼资产中创建一个新的插槽 二、在动画类中添加代码 xxx.h UPROPERTY(BlueprintReadOnly, Category Character, meta (AllowPrivateAccess "true"))/** 蓝图只读 类型是Character 允许私有访问 */ FTransform LeftHandTransform;//拿武器时知道左手…

STL经典案例(三)——俺是歌手挑战赛管理系统(涉及的STL内容较多,篇幅有点长,耐心看完,相信我,一定会有收获的!)

一、需求:俺是歌手挑战赛比赛规则如下 目前共计12名选手报名参赛,选手编号为1-12号比赛分为A和B两组,每组6人,选手随机抽签进行分组比赛共两轮赛事,第一轮为淘汰赛,第二轮为决赛,淘汰赛中每组前…

Git —— 2、创建本地版本库

版本库 版本库又名仓库,英文名repository,这个仓库里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原“。   创建本地版本库…

day31-测试之性能测试工具JMeter的功能概要、元件作用域和执行顺序

目录 一、JMeter的功能概要 1.1.文件目录介绍 1).bin目录 2).docs目录 3).printable_docs目录 4).lib目录 1.2.基本配置 1).汉化 2).主题修改 1.3.基本使用流程 二、JMeter元件作用域和执行顺序 2.1.名称解释 2.2.基本元件 2.3.元件作用域 1).核心 2).提示 3).作用域的原则 2.…

【AI绘画】Midjourney前置/imagine与单图指令详解

文章目录 💯Midjourney前置指令/imagine什么是前置指令?/imaginepromptUpscale(放大)Variations(变化)🔄(重新生成一组图片) 💯单张图片指令Upscale (细节优化)Vary(变体…

计算机二级真题--程序填空大题 章节

每类题有一些规律,这里来总结一下个人做题遇到的一些规律,大家可以自行掌握 1.在while循环里常常会将将最后一行空着作为考点,例如下面第的10题,因为需要联系整个循环所以经常分析不出来,实际上for训话中也有过这种考…

无需标注数据:引领视频编辑模型达到新高度

人工智能咨询培训老师叶梓 转载标明出处 由于标注视频编辑数据的稀缺,开发精确且多样化的视频编辑模型一直是个挑战。目前研究者们大多聚焦于无需训练的方法,但这些方法在性能和编辑能力范围上都有所限制。为此Meta AI的研究团队提出了一种新的方法&…

Code Llama: Open Foundation Models for Code论文阅读

整体介绍 Code Llama 发布了3款模型,包括基础模型、Python 专有模型和指令跟随模型,参数量分别为 7B、13B、34B 和 70B。这些模型在长达 16k tokens 的序列上训练。都是基于 Llama 2。 作者针对infilling (FIM) 、长上下文、指令专门做了微调 long-con…

CSS Sprite(精灵图)

CSS Sprite也叫CSS精灵图、CSS雪碧图,是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去 优点: 减少图片的字节减少网页的http请求,从而大大的提高页面的性能 原理: 通过background-i…

《黑神话悟空》幽魂怎么打?大头怪幽魂打法攻略

黑神话悟空第一章中许多玩家都容易被大头怪幽魂给难住,这算是渡劫中的第一难,所以不少玩家想了解黑神话悟空大头怪怎么打?其实大头怪打起来并不难,只是很多的玩家们没有了解他的弱点以及特性。小编今天就为大家整理了大头怪幽魂的…

吴艳妮牵手创维,奥运后的首个代言为什么是她?

​近日,吴艳妮参加奥运会的表彰大会,晒出了与孙颖莎、王楚钦等运动员的合照,并写道:“最幸福的一天”在网络上引发讨论,让人不禁想起在巴黎奥运会刚结束的时候,家电巨头创维官宣她作为其品牌大使的消息也是…

在不训练模型的情况下强化语言模型

文章目录 一些神奇咒语提供额外资讯拆解任务使用工具让模型彼此合作 一些神奇咒语 让模型一步一步的思考 让模型解释一下自己的答案 对模型进行情绪勒索,比如对模型说:这件事对我真的很重要! 跟模型说”请“是没有用的;跟模型说“…

IO--标准函数使用方法

在学习这个知识点时,要清楚我们使用IO其实就是如何使用函数; 注意点 函数名函数参数之间的关系应用的场景,返回值缓冲区的概念 1、IO的分类 文件IO标准IO 重点 1、标准IO函数 fopen / fclosefprintf / fscanffputc / …

如何使用Kdrill检测Windows内核中潜在的rootkit

关于Kdrill Kdrill是一款用于分析 Windows 64b 系统内核空间安全的工具,该工具基于纯Python 3开发,旨在帮助广大研究人员评估Windows内核是否受到了rootkit攻击。 需要注意的是,该项目与Python2/3兼容,无其他依赖组件&#xff0c…

女明星玩乙游,为何会推动国乙玩家“世纪大和解”?

“震惊!叠姐和光姐竟然世纪大和解了。” 这件在国乙圈匪夷所思、想都不敢想的事,竟然在一位女明星的推动下发生了,也因此诞生了国乙圈的“8.22事件”。 事情的起因是女艺人乃万在社交平台上发布了乙游相关言论,引起了乙游玩家不…

SAP 有趣的‘bug‘ 选择屏幕输入框没了

如下代码将会输出一个P_U的字段 PARAMETERS p_u TYPE string VISIBLE LENGTH 12 MEMORY ID m1.AT SELECTION-SCREEN OUTPUT.LOOP AT SCREEN.IF screen-name P_U.screen-invisible 1.MODIFY SCREEN.ENDIF.ENDLOOP. 如果我们给这个字段设置一个默认值,参考如下代码…

8.26-docker创建容器+打包镜像+docker文件的学习

一、回顾 创建容器:docker run -it --name a1 centos:latest /bin/bash 查看容器:docker ps(查看正在up的容器) docker ps -a(查看所有的容器) 切回宿主机:ctrl p q 启动容器:d…