Everything you wanted to know about the BEAM but were afraid to ask! Through examples and hands-on exercises, we will showcase how to manage the BEAM VM in operational environments, optimising for memory utilisation and performance when using Erlang or Elixir.
OBJECTIVES: Understand how the BEAM works under the hood. See the variety of tools and controls allowing to fine-tune it and optimise its settings for throughput and memory use.
PREREQUISITES: Experience in developing and supporting languages running on the Beam, including Erlang and Elixir.
COURSE OUTLINE
- Intro to the BEAM - highlights of the BEAM Virtual Machine, the features which make it stand out in comparison to other VMs.
- Processes under the hood - how memory is allocated, managed and garbage collected.
- The Process Scheduler - how the schedulers works, how it scales on multi-core architectures and what its limitations are.
- Memory Management - different memory types including system, atom, binary, code and ets tables.
- Tweaking and fine-tuning - tweaks and possible fine-tuning