How erlang processes get mapped to OS threads with SMP erlang

Rick Pettit rpettit@REDACTED
Thu May 27 15:36:15 CEST 2010


I've seen R13B-03 SMP erlang under load on a solaris system with multiple
cores hit one core particularly hard for just a few seconds before load
gets evenly distributed across all available cores as I would expect.  By
hard, I mean one CPU drops to 0% idle for a few seconds before load
becomes very evenly spread across all available cores.

Are there documents available which describe how erlang processes get
mapped to OS threads with SMP erlang? Does this sound like something I
might want to tune at the OS level, or on the erlang side? (I've already
started work on throttling the work done by SMP erlang so that the
distribution of load across cores can happen more smoothly, but am looking
for any other pointers on how to address this problem).

On solaris I've managed to isolate this SMP erlang node by placing it in
its own processor set, but I would rather not have to restrict it to a
subset of available cores (which are then unavailable to other processes
running on the server).

I'm happy to RTFM if someone could point me in the right direction for
this particular problem.

Thanks,

-Rick



More information about the erlang-questions mailing list