stop process migration

Satish Patel satish.txt@REDACTED
Sun Feb 23 17:59:01 CET 2020


This is what currently we are doing to pin down CPU to specific NUMA
to grain performance, i have 32 core machine and i pin down erlang to
only stay on numa1 (because when i pin down on both numa then process
migration happen and it hurt performance between cross NUMA)

/usr/mongooseim/erts-7.3/bin/beam.smp -K true -A 5 -P 10000000 -Q
1000000 -e 100000 -sct
-sbt nnts -S 16 -sbt nnts -- -root /usr/mongooseim -progname
mongooseim -- -home /usr/mongooseim -- -boot
/usr/mongooseim/releases/2.1.0beta1/mongooseim -embedded -config

On Fri, Feb 21, 2020 at 2:58 PM Karl Velicka <karolis.velicka@REDACTED> wrote:
> Hi,
> (I'm reading your question as "how to pin an Erlang process to a CPU _core_)
> There is an option to erlang:spawn_opt - {scheduler, SchedNum} to pin a process to a specific scheduler in the VM. However, this option is undocumented so it's probably exposed on "caveat emptor" basis. We get the possible scheduler numbers by doing lists:seq(1, erlang:system_info(schedulers_online)) and we've been using the flag in OTP versions 20-22.
> The scheduler itself is just a thread from the perspective of the OS so I assume it shouldn't be difficult to pin to a core.
> All the best,
> Karl
> On Thu, 20 Feb 2020 at 17:05, Satish Patel <satish.txt@REDACTED> wrote:
>> Folks,
>> Can i tell erlang to not load-balance process or migrate process to
>> different CPU?

More information about the erlang-questions mailing list