stop process migration

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


Karl,

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
L16t0c0p0n1:L18t0c1p0n1:L20t0c2p0n1:L22t0c3p0n1:L24t0c4p0n1:L26t0c5p0n1:L28t0c6p0n1:L30t0c7p0n1:L17t1c0p0n1:L19t1c1p0n1:L21t1c2p0n1:L23t1c3p0n1:L25t1c4p0n1:L27t1c5p0n1:L29t1c6p0n1:L31t1c7p0n1
-sbt nnts -S 16 -sbt nnts -- -root /usr/mongooseim -progname
mongooseim -- -home /usr/mongooseim -- -boot
/usr/mongooseim/releases/2.1.0beta1/mongooseim -embedded -config
/usr/mongooseim/etc/app.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