Ответ вслух Senior Инциденты, on-call и постмортемы обновлено

Алерт в 3 ночи: диск базы заполняется

Вопрос

Интервьюер: «Ночью приходит алерт: на мастере PostgreSQL осталось 5% свободного места, по прогнозу кончится через 40 минут. Ваши действия?»

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Сорок минут это мало, так что сначала смотрю, что занимает место: du по каталогу данных показывает, что вырос pgwal. Самые частые причины: слот репликации, который держит WAL для отставшей или удалённой реплики, или упал archivecommand.

Что должно прозвучать в ответе

  • Быстро понять, что растёт: WAL, таблицы, временные файлы, логи

  • Проверить частые причины: отставшая или мёртвая реплика держит слот репликации, сломан архив WAL, долгая транзакция

  • Смягчить безопасно: расширить диск, починить архивирование, удалить мёртвый слот после проверки

  • Не удалять файлы базы руками

  • Сообщить и эскалировать на владельца базы при необходимости

  • Постмортем: почему алерт пришёл так поздно, мониторинг слотов и архива

Что могут спросить следом

  • Почему нельзя просто удалить старые файлы из pg_wal?
  • Как предотвратить повторение?

Разбор

Образцовый ответ: «Сорок минут это мало, так что сначала смотрю, что занимает место: du по каталогу данных показывает, что вырос pg_wal. Самые частые причины: слот репликации, который держит WAL для отставшей или удалённой реплики, или упал archive_command. Проверяю pg_replication_slots и pg_stat_archiver. Если в облаке, сначала расширяю диск, это даёт время и безопасно. Затем чиню причину: если слот принадлежит реплике, которую удалили, после согласования удаляю слот, и PostgreSQL сам вычистит WAL. Руками файлы из pg_wal не трогаю: это гарантированно ломает базу. Сообщаю в канал, бужу владельца базы, если причина неочевидна. В постмортем: алерт на неактивные слоты и ошибки архива, алерт на диск по predict_linear за несколько часов, а не за 40 минут».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.