我们有 ambari 集群(版本 2.6),其中有 3 个工作机器,每个工作机器有 16 个 CPU 核心(见下图),每台机器有 32G 内存
根据:
yarn.nodemanager.resource.cpu-vcores:在所有节点的 yarn-site.xml 中将其设置为适当的数字。这严格取决于集群中运行的工作负载类型,但一般建议管理员将其设置为等于机器上的物理核心数。
我们设定yarn.nodemanager.resource.cpu-vcores至 16
但什么是正确的价值 -yarn.scheduler.最大分配-vcores?
yarn.scheduler.maximum-allocation-vcores:这是资源管理器上每个容器请求的最大分配,以虚拟 CPU 核心为单位。高于此值的请求将不会生效,并将被限制在此值内。
这是否意味着总核心的 80% 或总 CPU 核心的 50% 到 100% 之间?
答案1
...声明:
Qubole 中 yarn.scheduler.maximum-allocation-vcores 的默认值设置为 CPU 数量的两倍。这种超额认购假设 CPU 并非始终在运行线程,因此分配更多核心可实现最大 CPU 利用率。
如果您对此不满意,可以设置 yarn.scheduler.maximum-allocation-vcores = 80% * (总 CPU 核心数) * 2。在进行任何设置更改后,在负载下监控集群/节点 CPU 利用率一段时间。70%-80% 的利用率应该差不多。