Я хочу ammend предыдущих ответов.
Эрланг, или, скорее, система времени выполнения Erlang (erts), по умолчанию задает количество планировщиков (потоки ОС) и количество строк в количестве обрабатываемых элементов на вашей платформе. Это процессорные ядра или аппаратные потоки. Вы можете изменить эти настройки во время выполнения с помощью:
erlang:system_flag(schedulers_online, NP) -> PrevNP
Процессы Erlang не имеют сродства к любым планировщикам еще. Логическая балансировка процессов между планировщиками выполняется по двум правилам. 1) Голодный планировщик будет украсть работу у другого планировщика. 2) Пути миграции настраиваются для толкания процессов от планировщиков с большим количеством процессов для планировщиков с меньшими затратами.Это делается для обеспечения справедливости в количестве сокращений (времени выполнения) для каждого процесса.
Планировщики, однако, могут быть заблокированы для конкретных элементов обработки. Это не сделано по умолчанию. Для того, чтобы сделать ГЭР scheduler-> основного использования сродства:
erlang:system_flag(scheduler_bind_type, default_bind) -> PrevBind
Несколько других типов связывания можно найти в документации. Использование аффинности может значительно повысить производительность при тяжелых нагрузках! Особенно в ситуациях с высокой степенью блокировки. Кроме того, ядро Linux не может обрабатывать гиперпотоки, если не сказать больше. Если у вас гипертексты на вашей платформе, вы действительно должны использовать эту функцию в erlang.
Да, у меня такое чувство, что что-то происходит по этим линиям ... –