BEAM VM Under the Hood
-
Expertise
Intermediate
- Target audience The course is aimed at experienced developers and devops engineers, helping them pre-empt and address behaviour which arise as the result of VM specific settings, be it disruption of soft real time properties as a result of garbage collection or bottlenecks in the scheduler.
- Duration 7 hours
- Prerequisites
Experience in developing and supporting languages running on the Beam, including Erlang and Elixir
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, optimizing for memory utilisation and performance when using Erlang or Elixir.
Objectives
- Gain practical experience through hands-on exercises and real-world examples to effectively apply learned concepts in a variety of scenarios.
- Gain insights into best practices for achieving optimal performance and reliability in Erlang or Elixir applications running on the BEAM VM.
- Upon completion of the course, participants will be equipped with the knowledge and skills to effectively manage the BEAM VM, optimize memory utilization, and enhance performance of Erlang or Elixir applications in real-world scenarios.
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