首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >纱线容器如何使用分配的CPU?

纱线容器如何使用分配的CPU?
EN

Stack Overflow用户
提问于 2021-12-02 07:12:48
回答 1查看 30关注 0票数 0

我很难理解纱线容器是如何受限于分配的资源的,尤其是CPU。

我在纱线集群中运行Spark或Flink作业。每个执行器或任务管理器请求一个具有1个CPU的纱线容器。基本上,容器的数量等于主机中可用CPU的数量。

据我所知,YARN会监控内存使用情况,如果容器超出了限制,它会发送一个kill信号。我想知道CPU调度到底是如何工作的。

我在纱线容器(1CPU)中的JVM作业可以尝试创建多个CPU绑定的工作线程。JVM是否会被限制在一个CPU核心来执行这些线程,或者它会从其他容器中窃取资源?从技术上讲,纱线容器是否会影响其他容器的CPU性能?

假设我在主机中有10个CPU,并且我创建了一个容器。该容器的CPU性能是否会达到主机CPU性能的10%?

EN

回答 1

Stack Overflow用户

发布于 2021-12-02 16:20:04

默认情况下,yarn仅按RAM分配资源。因此,默认情况下,它希望每个人都玩得很好,并且您可以受到CPU消耗较大的作业的影响。您可以对此进行更改:

From Apache

资源计算器用于比较调度器中的资源的ResourceCalculator实现。默认情况下,org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator只使用内存,而DominantResourceCalculator使用主导资源来比较多维资源,如内存、CPU等。

一般来说,通过记忆来估计就足够了。大多数人实际上对内存和线程的需求估计得很低。除非遇到问题,否则最好忽略线程。如果它仍然是一个问题,那么也许可以考虑考虑DominantResourceCalculator。如果/当你打开resourceDominantCalculator时,准备好让很多人感受到它的影响。你可能已经分配了过多的线程,当我们开始计算线程数时,他们会突然不得不考虑他们所要求的。(或者至少这是我的经验。)这可能会严重收缩集群的容量,因为空间被保留在以前没有的地方。

TLDF:除非你有很好的理由,否则不要碰它。(等到出现问题时再进行优化,直到出现瓶颈时才进行优化)。用户可能会在他们的资源估计中犯一些无伤大雅的错误,而培养他们正确估计他们需要的东西的能力可能是痛苦的。

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

https://stackoverflow.com/questions/70195385

复制
相关文章

相似问题

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