首页 > 解决方案 > Apache Yarn - 分配比物理内存或 RAM 更多的内存

问题描述

我正在考虑更改yarn.nodemanager.resource.memory-mb为高于我机器上可用 RAM 的值。快速搜索发现没有多少人这样做。

许多在 yarn 上长期存在的应用程序,必然会有一个 jvm 堆空间分配,其中一些内存被更频繁地使用,而另一些则很少使用。在这种情况下,将一些不经常使用的内存部分交换到磁盘并将可用的物理内存重新分配给其他需要它的应用程序,对于此类应用程序来说是非常有意义的。

鉴于上述背景,有人可以证实我的推理或提供另一种观点吗?另外,您能否澄清一下yarn.nodemanager.vmem-pmem-ratio在上述情况下该参数将如何工作?

标签: apache-sparkhadoophadoop-yarnvirtual-memory

解决方案


这不是一个好主意。尝试使用比可用内存更多的内存最终会使您的节点管理器主机崩溃。

已经有一个称为机会容器的功能,它使用 NM 未使用的备用内存并向这些主机添加更多容器。参考:

YARN-1011 [Umbrella] 根据当前分配的容器的利用率安排容器

此外,如果您等不及 YARN-1011,Pepperdata 有一个产品可以做几乎相同的事情。

https://www.pepperdata.com/products/capacity-optimizer/

至于yarn.nodemanager.vmem-pmem-ratio,不要启用它,因为它不再推荐了。

YARN-782 vcores-pcores ratio 的功能与 vmem-pmem ratio 不同,具有误导性


推荐阅读