Существует средство pool(3)
: пул
может использоваться для запуска набора узлов Erlang в качестве пула вычислительных процессоров.Он организован как ведущий и набор подчиненных узлов.
pool:start/1,2
запускает новый пул.Файл .hosts.erlang
читается, чтобы найти имена хостов, с которых можно запускать узлы пула.Подчиненные узлы начинаются с slave:start/2,3
, проходя вдоль Name
и, если предусмотрено, Args
.Name
используется в качестве первой части имен узлов, Args
используется для указания аргументов командной строки.
С пулом вы получаете средство распределения нагрузки бесплатно.
Главный узел может быть запущен следующим образом:
erl -sname poolmaster -rsh ssh
Ключ -rsh
здесь указывает альтернативу rsh
для запуска подчиненного узла на удаленном хосте.Мы использовали SSH здесь.Убедитесь, что на вашем компьютере есть работающие ключи SSH, и вы можете проходить аутентификацию на удаленных хостах, используя эти ключи.
Если в файле .hosts.erlang
нет хостов, то никакие подчиненные узлы не запускаются, и вы можете использоватьslave:start/2,3
для запуска подчиненных узлов, вручную передавая аргументы, если это необходимо.
Вы можете, например, запустить удаленный узел:
Arg = "-mnesia_dir " ++ M,
slave:start(H, Name, Arg).
Обеспечить epmd(1)
запущен и работает на удаленных компьютерах для запуска узлов Erlang.
Надеюсь, это поможет.