filmov
tv
Memory Management with Go – Prometheus as a Case Study - Björn Rabenstein - code::dive 2023
![preview_player](https://i.ytimg.com/vi/hbFJi9G9rsg/maxresdefault.jpg)
Показать описание
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.
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.