Hacker News new | ask | show | jobs
by StreamBright 2418 days ago
Do you have experience with performance optimization of Erlang code running in Docker? Is there a way to make the BEAM schedulers sticky? Does it make sense for latency reasons? I know that some products rely on core stickiness for maximum performance. Maybe Erlang/BEAM is not in that category.

https://www.scylladb.com/2018/08/09/cost-containerization-sc...

1 comments

There are some performance related topics covered in the Docker chapter regarding schedulers. And there are improvements already merged for Erlang 23 to remove the need for as much manual tweaking -- for example in 23 the VM will only start a scheduler per-cpu the cgroup actually allows, so if you are limited to 2 "cpus" by the cgroup there will only by 2 active schedulers.

Erlang does have the option to bind schedulers to processors but I don't know of any real world usage of it:

Binding Schedulers: http://erlang.org/doc/man/erl.html#+sbt

Custom CPU Topologies: http://erlang.org/doc/man/erl.html#+sct