Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Runbook: GCBloatHigh

Source of truth: tools/observability/alerts/angarabase_alerts.yaml. Backed by: RM-0.6.3.8 S7.

Что означает

angarabase_gc_tuning_bloat_ratio_percent > 50 — на одну “живую” версию приходится больше одной “мёртвой” (которую AngaraGC не может удалить). Чаще всего это симптом блокирующей долгой транзакции (см. LongTransaction).

Severity

warning. При 80+ % bloat hit ratio buffer pool падает.

Initial response

  1. Grafana Overview v2 → row “GC / MVCC”.
  2. Проверить LongTransaction алерт — обычно root cause там.
  3. Проверить gc_tuning_state — auto-tuning сам реагирует или нет.

Diagnostics

curl -sf http://127.0.0.1:9898/metrics | rg gc_
curl -sf http://127.0.0.1:9898/metrics | rg mvcc_

# Top tables by bloat
psql -c "SELECT schemaname, relname, n_dead_tup, n_live_tup,
                round(100.0 * n_dead_tup / NULLIF(n_live_tup,0), 2) AS bloat_pct
         FROM pg_stat_user_tables
         WHERE n_dead_tup > 1000
         ORDER BY bloat_pct DESC NULLS LAST LIMIT 10;"

Mitigation

  1. Закрыть длинные транзакции — см. LongTransaction.
  2. Запустить vacuum на горячих таблицах.
  3. Настроить GC — увеличить агрессивность auto-tuning (см. mvcc-gc.md §Knobs).
  4. Полный rebuild (downtime) если bloat > 70 % и vacuum не помогает.

Escalation

Если bloat > 70 % и не падает после vacuum + закрытия long txns — собрать diagnostics и эскалировать (потенциально нужен сервисный downtime).

Связанные