Prerequisities: Experience in developing and supporting languages running on the BEAM, including Erlang and Elixir.
Objectives:
Understand how the BEAM works under the hood.
Fine-tune it and optimize its settings for throughput and memory use.
Course Outline
Online tutorial with Michal Slaski who will share examples and hands on exercises to showcase how to manage the BEAM VM in operational environments, optimizing for memory utilisation and performance when using Erlang or Elixir. The course contains the following topics:
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 scheduler 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