在我们的发现集群上增加 yarn 容器的利用率所需的建议
Suggestions required in increasing utilization of yarn containers on our discovery cluster
当前设置
- 我们有 10 个节点的发现集群。
- 这个集群的每个节点都有 24 个核心和 264 GB 内存保留一些内存和 CPU 留给后台进程,我们计划使用 240 GB 内存。
- 现在,当涉及到容器设置时,由于每个容器可能需要 1 个核心,所以我们最多可以有 24 个容器,每个容器有 10GB 内存。
- 通常集群有 1-2 GB 内存的容器,但我们受到可用内核的限制,或者我可能遗漏了一些东西
问题陈述
因为我们的集群被数据科学家和分析师广泛使用,所以只有 24 个容器是不够的。这会导致严重的资源争用。
有什么方法可以增加容器的数量?
我们正在考虑的选项
- 如果我们要求团队 运行 许多 tez 查询(不是单独的)但在一个文件中,那么最多我们将保留一个容器。
请求
- 是否有任何其他方法可以管理我们的发现集群。
- 是否有减小容器尺寸的可能性。
- 一个 vcore(因为它是一个逻辑概念)可以被多个容器共享吗?
Vcores 只是一个逻辑单元,与 CPU 核心无关,除非您使用 YARN with CGroups 并启用 yarn.nodemanager.resource.percentage-physical-cpu-limit
。大多数任务很少 CPU 绑定,但更常见的是网络 I/O 绑定。因此,如果您要查看集群的整体 CPU 利用率和内存利用率,您应该能够根据浪费的(备用)容量调整容器的大小。
您可以使用许多工具来衡量利用率,但 sar
、ganglia
和 grafana
是显而易见的工具,但您也可以查看 Brendan Gregg 的 Linux Performance tools更多想法。
当前设置
- 我们有 10 个节点的发现集群。
- 这个集群的每个节点都有 24 个核心和 264 GB 内存保留一些内存和 CPU 留给后台进程,我们计划使用 240 GB 内存。
- 现在,当涉及到容器设置时,由于每个容器可能需要 1 个核心,所以我们最多可以有 24 个容器,每个容器有 10GB 内存。
- 通常集群有 1-2 GB 内存的容器,但我们受到可用内核的限制,或者我可能遗漏了一些东西
问题陈述
因为我们的集群被数据科学家和分析师广泛使用,所以只有 24 个容器是不够的。这会导致严重的资源争用。
有什么方法可以增加容器的数量?
我们正在考虑的选项
- 如果我们要求团队 运行 许多 tez 查询(不是单独的)但在一个文件中,那么最多我们将保留一个容器。
请求
- 是否有任何其他方法可以管理我们的发现集群。
- 是否有减小容器尺寸的可能性。
- 一个 vcore(因为它是一个逻辑概念)可以被多个容器共享吗?
Vcores 只是一个逻辑单元,与 CPU 核心无关,除非您使用 YARN with CGroups 并启用 yarn.nodemanager.resource.percentage-physical-cpu-limit
。大多数任务很少 CPU 绑定,但更常见的是网络 I/O 绑定。因此,如果您要查看集群的整体 CPU 利用率和内存利用率,您应该能够根据浪费的(备用)容量调整容器的大小。
您可以使用许多工具来衡量利用率,但 sar
、ganglia
和 grafana
是显而易见的工具,但您也可以查看 Brendan Gregg 的 Linux Performance tools更多想法。