Сервис: gRPC плюс HTTP-гейтвей, ~9k RPS в пике, куча мелких аллокаций (протобуфы, мапы, строки), heap около 6 ГБ, GOGC=100, GOMEMLIMIT=10GiB, k8s, лимит 8 CPU на под.
Неделя наблюдений, сравнение по графикам за равные периоды:
— доля CPU на GC: было ~7.1%, стало ~4.4%
— p99 ответа: 41 мс → 34 мс
— p50 почти не сдвинулся: 3.9 → 3.8 мс
— пропускная при том же CPU-бюджете +6–7%
Кода не меняли вообще, только версию в Dockerfile. Откат на старый сборщик, если что, простой:
Код: Выделить всё
GOEXPERIMENT=nogreenteagc go build ./...