NUMA系统上的Spark

3

我正在考虑使用Apache Spark进行数据分析。过去,由于NUMA架构和对象仅局限在单个节点上,我曾经在4个插槽服务器上体验到Java/Scala的减速。解决方案是为每个NUMA节点启动一个单独的固定JVM,并使用Akka使它们彼此通信。

Spark如何处理NUMA以避免类似情况?

1个回答

2
如果您使用--executor-cores=32启动Spark(假设每个套接字有8个虚拟核心),则会遇到相同的问题。但是,您可以在每台机器上启动4个工作进程,每个进程都带有--executor-cores=8。然后您可以将这些执行程序固定到节点上。
这种设置会产生更多的通信开销,但可能是一个很好的折衷方案。Spark试图尽量减少执行程序之间的通信,因为它们通常在不同的机器上。

我已经尝试在一台机器上运行更多的工作进程,效果很好。不过我还没有尝试过NUMA性能,所以这部分只是我的猜测。希望对你有所帮助! - Daniel Darabos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接