Что показывают метрики allocation rate и promotion rate?
Allocation rate — сколько МБ/с приложение создаёт объектов: чем выше, тем чаще minor GC. Promotion rate — сколько МБ/с переезжает в старое поколение: чем выше, тем чаще old/full GC.
- Высокий allocation rate лечат кодом: меньше временных объектов, без лишней упаковки
- Высокий promotion rate — объекты живут дольше одной-двух сборок или мал Survivor
- Снимают из GC-логов (-Xlog:gc*), JFR, Micrometer
А ещё Сотни МБ/с — норма для нагруженного сервиса; важна динамика и связь с паузами
Подробно
Allocation rate. Eden заполняется со скоростью аллокаций; заполнился — minor GC. Удвоили аллокации — удвоили частоту молодых сборок. Источники: промежуточные коллекции в стримах, упаковка Integer, конкатенация строк в цикле, лишние DTO, логирование с формированием строк при выключенном уровне.
Promotion rate. Объекты, пережившие несколько молодых сборок (порог tenuring), уезжают в старое поколение. Если туда едет много «среднеживущего» — кэшей, буферов запросов, сессий, — старое поколение быстро заполняется и требует дорогих сборок. Признак premature promotion: высокий promotion rate при том, что объекты вскоре умирают.
Где смотреть: GC-логи и анализаторы (GCeasy, GCViewer), JFR (события выделения с профилем — какой код аллоцирует), метрики jvm.gc.memory.allocated и jvm.gc.memory.promoted в Micrometer.
Анализ всегда в связке: частота и длительность пауз, обе метрики, живой набор после full GC.
Что хотят услышать
- Определение и связь каждой метрики с видом сборок.
- Как снизить каждую.
- Где измерить.
Частые ошибки
- Путать allocation rate с размером кучи.
- Лечить высокий allocation rate только флагами.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓allocation rate — скорость создания объектов; promotion rate — скорость переезда в old
- ✗allocation rate — частота full GC, а promotion rate — частота minor GC
- ✗Это размеры -Xms и -Xmx соответственно
- ✗Оба показывают только длительность пауз stop-the-world
Что спросят дальше
- Как высокий allocation rate связан с паузами?
- Где взять эти метрики в проде?
Разбор темы
- GC: тюнинг и мониторинг
Ключевые флаги, unified GC-логи, метрики (паузы, throughput, allocation/promotion rate) и диагностика частых проблем.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.