Как мониторить GC?

Middle
257 просмотров
AFK Offer AI

Go runtime экспортирует метрики GC через Prometheus: go_gc_duration_seconds (histogram длительности пауз), go_memstats_gc_sys_bytes, go_memstats_next_gc_bytes. GOGC (по умолчанию 100) контролирует частоту GC — при GOGC=50 GC чаще, но аллоцированная память меньше. В Go 1.19+ есть GOMEMLIMIT — hard limit на память. Через runtime/metrics (Go 1.16+) или debug.ReadGCStats() можно получить детали. Частый GC с большими паузами — признак чрезмерных аллокаций, нужно профилировать и оптимизировать.

Следующий вопрос

Что такое retrospective?