Memory Management: Battle Stories
summary
Explains concrete allocator changes and measured effects: synthetic e-stone runs faster with allocators disabled while a 4G telecom benchmark shows ~50% speedup using them; diagnostics come from erlang:system_info and the recon.alloc tool; one site shows msegaloc cache hit 80–85% and millions of binary allocs; another case moves the single-block carrier threshold to 2 MB, shrinking multiblock fragmentation and raising carrier utilization from ~22% toward ~40–50%; new features: carrier pool (r16b01), supercarrier / erlang mmapper (r16b03), carrier migration on by default in r17.
AI-written summary · about
chapters (12)
- 0:00Introduction to allocators
- 1:44Allocators and performance
- 3:50Core concepts and terminology
- 5:41Single vs. multi-block
- 8:31Allocator types and mapping
- 10:40Allocation strategies
- 14:06Carrier allocation methods
- 16:28Multi-scheduler architecture
- 19:15Analyzing statistics
- 23:35Case studies and tuning
- 32:06New features and tools
- 35:20Questions and answers
related talks
01h 07mInside memory management on the BEAM
29mSqueezing the BEAM into 16MB
40mOpen Riak how we gained from leaning on the BEAM
44mBattling Memory Leaks: Tales from the Trenches at WhatsApp
40mBuilding blocks and How to Use Them: A MongooseIM Case Study
41mBuilding blocks & how to use them: MongooseIM case study
19mErlang/OTP Update
48mGetting to Know the Erlang Virtual Machine, the BEAM
