Всем привет! Разберем задачу, которую решали в прошлый понедельник?
Основной зацепкой здесь является увеличение established-подключений к БД в сочетании с замедлением запросов, при отсутствии ресурсоёмких операций на уровне системы.
На практике такое часто происходит из-за фоновых задач внутри самой БД, которые запускаются по расписанию:
🔸 Репликация/бэкапы
🔸 Переиндексация
🔸 Вакуум/анализ (в PostgreSQL)
🔸 Сбор статистики или сжатие (в ClickHouse, Mongo и т.д.)
Эти задачи могут:
▶️ Держать блокировки на уровне таблиц/строк/индексов
▶️ Конкурировать за дисковую I/O внутри СУБД (что может быть незаметно в системном мониторинге)
▶️ Приводить к росту времени ответа и накоплению клиентских подключений, ожидающих ответ
С высокой вероятностью, в 02:00 в БД запускается плановая внутренняя операция, которая ухудшает её отклик. Это и замедляет сервис, даже несмотря на низкую внешнюю нагрузку.
Что делать?
1️⃣ Проверить расписание фоновых задач внутри БД
2️⃣ Перенести или оптимизировать тяжёлые процессы (например, VACUUM или backup)
3️⃣ Включить query logging и изучить, что выполняется в это время
Вижу в комментах много правильных ответов. Вы молодцы!
Post #205
824
- 👍 6