Self-hosted арсенал
Self-hosted арсенал
@self_hosted_arsenal_ubt

PostgreSQL в трекере: где БД начинает тормозить и как это лечить

PostgreSQL в трекере: где БД начинает тормозить и как это лечить

У трекеров проблема почти всегда одна и та же: таблицы кликов, конверсий и логов растут быстрее, чем желание админа жить. В итоге VACUUM не успевает, индексы пухнут, запросы на отчёты лезут в seq scan, а запись начинает спорить с чтением.

Что реально помогает:
— разносить горячие и холодные данные по партициям по дате;
— ставить составные индексы под реальные фильтры, а не «на всякий случай»;
— выносить тяжёлые агрегаты в отдельные таблицы, а не считать их на лету;
— держать autovacuum агрессивнее для write-heavy таблиц, иначе bloat съест диск и latency.

Для трекеров особенно важно не тащить всё в одну гигантскую таблицу. Отчётные окна почти всегда ограничены временем и источником трафика, значит партиционирование и правильный порядок колонок в индексе дают больше, чем попытка «прокачать железо». Под капотом всё устроено проще, чем кажется: Postgres любит предсказуемые запросы и ненавидит мусор в таблицах.

Отдельно следи за WAL и checkpoint: если у тебя много вставок, провалы по I/O часто идут не от CPU, а от плохо настроенной записи на диск. И да, pgbouncer здесь полезнее, чем лишний десяток соединений от каждого сервиса.

Контроль над стеком — это контроль над прибылью: сначала режь bloat и лишние запросы, потом уже покупай железо.
Этот пост опубликован в Telegram-канале Self-hosted арсенал. Подписаться можно по ссылке: @self_hosted_arsenal_ubt.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.