Memory Management with Go – Prometheus as a Case Study - Björn Rabenstein - code::dive 2023

preview_player
Показать описание
Memory Management with Go – Prometheus as a Case Study

Although Go is a garbage-collected language, it deliberately offers very few knobs to tweak its memory management. For a long time, there was only the GOGC environment variable. A bit more than a year ago, Go

1.19 introduced the GOMEMLIMIT variable in addition to that. To find out how both variables work, let's use the Prometheus monitoring server as a case study. Prometheus is also an excellent opportunity to study how to do memory mapping in Go. The mmap system call is familiar to many C programmers, but using it in Go comes with a few caveats.

About the speaker - Björn Rabenstein is an engineer at Grafana Labs and a Prometheus developer. Previously, he was a Production Engineer at SoundCloud, a Site Reliability Engineer at Google, and a number cruncher for science.
Рекомендации по теме