Искра на системах NUMA
Я рассматриваю Apache Spark для анализа данных. В прошлом я испытывал замедление Java/Scala на 4-сокетных серверах из-за архитектуры NUMA и локальных объектов для одного узла. Решение состояло в том, чтобы запустить отдельную закрепленную JVM для каждого узла NUMA и заставить их общаться друг с другом с помощью Akka.
Как NUMA будет обрабатываться в Spark, чтобы избежать подобных ситуаций?
1 ответ
Если вы начинаете Spark с --executor-cores=32
(при условии 8 виртуальных ядер на сокет) у вас будут те же проблемы. Но вы можете запустить 4 рабочих на машину, каждый с --executor-cores=8
вместо. Затем вы можете прикрепить этих исполнителей к узлам.
Эта настройка потребует больше коммуникационных издержек, но, вероятно, будет хорошим компромиссом. Spark старается свести к минимуму связь между исполнителями, так как они на разных машинах в типичном случае.