top | item 21381350

(no title)

kungfooguru | 6 years ago

Hi, one of the authors here, the Docker chapter and soon to come Kubernetes chapter hopefully shed some light on this very question. They are not alternatives, docker and k8s complement Erlang.

Jose Valim, creator of Elixir, also wrote about this recently http://blog.plataformatec.com.br/2019/10/kubernetes-and-the-...?

discuss

order

StreamBright|6 years 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...

kungfooguru|6 years ago

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