Есть несколько адвантангов с несколькими узлами на одной физической машине.
1) Затраты ресурсов на блокировку, как уже упоминалось.
2) Отказ. В телекоммуникационных продуктах вы действительно не хотите, чтобы луч рухнул на вас. Если в вашей системе есть NIF или встроенные драйверы, это может произойти.
3) Память местности. Несколько узлов - это простой способ форсировать процессы несколькими ядрами. Это может быть большим подспорьем для арок NUMA, но также и для SMP. Планировщик не учитывает NUMA (пока). Вы можете запустить процесс в определенном планировщике и заблокировать его, он не будет мигрировать, но это недокументированная функция ... или он был удален все вместе. Я забыл.
С несколькими узлами вам понадобится балансировщик нагрузки между узлами, но в любом случае это обычный способ сделать это. Некоторая логика, которая контролирует узлы.
Однако числа из документов EUC старше года [@], и я бы не рекомендовал многоузловой подход, если он вам действительно не нужен. Система времени выполнения гораздо лучше справляется с такими проблемами сегодня. Многие накладные расходы были удалены, а mrq-планировщик был улучшен.
Числа
@ 2009 выглядят как это .
Edit:
Относительно 3) упомянутой мной функции появления,
spawn_opt(fun() -> ... end, [{scheduler, Id}]) -> pid(),
where Id is an integer and refers to a specific scheduler.
Я бы не рекомендовал использовать его, поскольку он не имеет документов.