<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">This looks far better from my end.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">I was going to ask what you would like to use your pinning for, but I now see you needed it one level up from where I thought you needed it.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Feb 23, 2020 at 5:59 PM Satish Patel <<a href="mailto:satish.txt@gmail.com">satish.txt@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Karl,<br>
<br>
This is what currently we are doing to pin down CPU to specific NUMA<br>
to grain performance, i have 32 core machine and i pin down erlang to<br>
only stay on numa1 (because when i pin down on both numa then process<br>
migration happen and it hurt performance between cross NUMA)<br>
<br>
/usr/mongooseim/erts-7.3/bin/beam.smp -K true -A 5 -P 10000000 -Q<br>
1000000 -e 100000 -sct<br>
L16t0c0p0n1:L18t0c1p0n1:L20t0c2p0n1:L22t0c3p0n1:L24t0c4p0n1:L26t0c5p0n1:L28t0c6p0n1:L30t0c7p0n1:L17t1c0p0n1:L19t1c1p0n1:L21t1c2p0n1:L23t1c3p0n1:L25t1c4p0n1:L27t1c5p0n1:L29t1c6p0n1:L31t1c7p0n1<br>
-sbt nnts -S 16 -sbt nnts -- -root /usr/mongooseim -progname<br>
mongooseim -- -home /usr/mongooseim -- -boot<br>
/usr/mongooseim/releases/2.1.0beta1/mongooseim -embedded -config<br>
/usr/mongooseim/etc/app.config<br>
<br>
On Fri, Feb 21, 2020 at 2:58 PM Karl Velicka <<a href="mailto:karolis.velicka@gmail.com" target="_blank">karolis.velicka@gmail.com</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> (I'm reading your question as "how to pin an Erlang process to a CPU _core_)<br>
><br>
> 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.<br>
><br>
> 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.<br>
><br>
> All the best,<br>
> Karl<br>
><br>
> On Thu, 20 Feb 2020 at 17:05, Satish Patel <<a href="mailto:satish.txt@gmail.com" target="_blank">satish.txt@gmail.com</a>> wrote:<br>
>><br>
>> Folks,<br>
>><br>
>> Can i tell erlang to not load-balance process or migrate process to<br>
>> different CPU?<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">J.</div>