首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CPU限制在Kubernetes中有什么作用?多克?

CPU限制在Kubernetes中有什么作用?多克?
EN

Stack Overflow用户
提问于 2018-02-21 21:37:11
回答 1查看 1.2K关注 0票数 4

我深入研究了Kubernetes的资源限制,很难理解CPU limits是用来干什么的。我知道Kubernetes将requestslimits向下传递到(在我的例子中) Docker运行时。

示例:我有1个节点,1个CPU和2个Pods,CPU、requests: 500mlimits: 800m。在Docker中,这会导致(500m -> 0.5 * 1024 = 512) --cpu-shares=512和(800m -> 800 * 100) --cpu-quota=80000limits由Kube调度器分配,因为pod和不超过节点容量的100%;就pod而言,节点是过度使用的。

上面的设置允许每个容器每100ms周期获得80ms的CPU时间(默认)。一旦CPU使用率达到100%,就会根据容器的权重在容器之间共享CPU时间,以CPU份额表示。根据基值1024和每个容器的512份额,这将是每个容器的50%。在这一点上-在我的理解- limits没有更多的相关性,因为没有任何容器可以再得到它的80ms。他们都会得到50毫秒。因此,无论我定义了多少limits,当使用率达到关键的100%时,它无论如何都会被requests分区。

这让我想知道:为什么我首先要定义CPU limits,过量使用会有什么不同吗?另一方面,requests在“当所有东西都在使用时,我能获得多少份额”方面是完全可以理解的。

EN

回答 1

Stack Overflow用户

发布于 2019-12-25 06:01:22

仅cpu占有率没有上限。如果有空闲周期,您可以自由使用它们。设置了限制,这样一个恶意进程就不会永远占用资源。应该有一些公平的安排。CFS通过此处配置的limit属性强制使用cpu配额和cpu周期。

总之,这种属性确保了当我安排您的任务时,您至少有50毫秒的时间来完成它。如果您需要更多时间,那么如果没有人在队列中等待,我会让您再运行几次,但不会超过80毫秒。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48907371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档