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: BufferPoolPressure

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

Что означает

Buffer pool hit ratio упал ниже 90 % (метрика angarabase_buffer_pool_hit_ratio_milli < 900) на протяжении 10 минут. Каждое page-чтение всё чаще идёт на диск, а не из памяти.

Severity

warning. Производительность чтений деградирует; ещё не critical.

Initial response

  1. Grafana Overview v2 → row “Buffer Pool & Memory”.
  2. Сравнить pages_loaded rate с pages_evicted rate — есть ли churn.
  3. Проверить angarabase_jemalloc_resident_bytes — растёт ли RSS (намёк на leak).

Diagnostics

# Текущая ёмкость и загрузка буферного пула (RM-0.6.6.3 S6-D2)
curl -sf http://127.0.0.1:9898/metrics | rg "buffer_pool_capacity|buffer_pool_hit|buffer_pool_miss"
# Пример вывода:
#   angarabase_buffer_pool_capacity_pages 195797   ← авто-детект 25% AvailRAM (3.0 GiB)
#   angarabase_buffer_pool_hit_total 4120000
#   angarabase_buffer_pool_miss_total 380000

curl -sf http://127.0.0.1:9898/metrics | rg buffer_pool
curl -sf http://127.0.0.1:9898/metrics | rg jemalloc

# Top tables by reads
psql -c "SELECT relname, heap_blks_read, heap_blks_hit \
         FROM pg_statio_user_tables ORDER BY heap_blks_read DESC LIMIT 10;"

Mitigation

  • Авто-сайзинг (RM-0.6.6.3): начиная с этого релиза движок автоматически определяет размер буферного пула при старте: 25% от MemAvailable /proc/meminfo, clamp [1.6 GiB, 32 GiB]. Перезапуск после освобождения памяти на хосте часто решает проблему без изменения конфига.

    Для принудительного значения: export ANGARABASE_STORAGE_MAX_CACHED_PAGES=<N> перед стартом, где N = количество 16 KiB страниц (например, 200000 ≈ 3.1 GiB).

  • Working set > RAM: рассмотреть partition или archival старых данных.

  • GC churn: проверить GCBloatHigh — bloat увеличивает working set.

  • Memory leak: см. jemalloc-profiling.md.

Escalation

Если hit ratio не восстанавливается после изменения config / рестарта — diagnostics bundle.

Связанные