Найти в Дзене
Postgres DBA

Сезонность временных рядов метрик СУБД и инфраструктуры

ℹ️Для метрик, отражающих активность пользователей или работу автоматических процессов, привязанных к календарю, недельная сезонность — это «классика жанра» в мониторинге.
В сфере администрирования баз данных и операционных систем это часто называют "бизнес-циклом" или "daily/weekly pattern".
ℹ️Вот подробности, почему это работает и как это проявляется:
➡️Жизнь большинства компаний подчинена
Оглавление

ℹ️Для метрик, отражающих активность пользователей или работу автоматических процессов, привязанных к календарю, недельная сезонность — это «классика жанра» в мониторинге.

В сфере администрирования баз данных и операционных систем это часто называют "бизнес-циклом" или "daily/weekly pattern".

ℹ️Вот подробности, почему это работает и как это проявляется:

1. Почему неделя — это сезон?

➡️Жизнь большинства компаний подчинена рабочему графику:

🔴Будни (Пн–Пт): Высокая активность сотрудников, работа ERP-систем, CRM, бухгалтерии, онлайн-транзакции.

🔴Выходные (Сб–Вс): Спад активности (если только у вас не круглосуточный онлайн-магазин или игровой сервис).

2. Примеры метрик с недельной сезонностью

🔴Активность CPU/LA (Load Average): В будни днем — пик (приходят на работу, запускают отчеты), вечером — спад. В субботу утром может быть небольшой всплеск, если есть ночные процессы.

🔴I/O операции (Диск): Нагрузка на дисковую подсистему часто подчиняется расписанию бэкапов. Полный бэкап базы может запускаться в пятницу вечером, а дифференциальные — каждый будний день в обед.

🔴Сетевой трафик: Очевидно — днем больше, ночью меньше.

🔴Количество подключений к БД (СУБД): В рабочее время — тысячи коннектов, в 3 часа ночи — единицы (только служебные процессы).

3. Как это выглядит на графиках

Если вы посмотрите на график метрики за месяц, вы увидите повторяющийся паттерн:

☑️«Горы» в будни и «ямы» в выходные.

-2

4. Зачем это знать инженеру?

Понимание недельной сезонности критически важно для правильной настройки мониторинга и алертов.

ℹ️Умные пороги срабатывания:

 👎Плохо: Установить статический порог CPU > 80% = Авария. В понедельник в 10:00 это может быть норма, и вас заспамят ложными срабатываниями.‼️

 👍Хорошо: Настроить систему так, чтобы она учитывала, что в пятницу вечером нагрузка должна быть низкой. ℹ️Если в пятницу вечером CPU вдруг взлетел до уровня рабочего дня — это действительно аномалия (например, зависший процесс или вирус-майнер).

ℹ️Планирование обслуживания:

 ⚠️Обновления и рестарты стараются ставить на «дно» недельного цикла (воскресенье, 4 утра), чтобы минимизировать влияние на пользователей.

⚠️Сервер должен быть рассчитан на пиковую нагрузку в час пик самого загруженного рабочего дня, а не на среднюю температуру по больнице.⚠️

5. Важное дополнение: Комбинирование циклов

ℹ️Часто метрики живут сразу в нескольких сезонностях одновременно.

Недельная сезонность может накладываться на суточную:

🔴В будни: график похож на арку (утром рост, днем пик, вечером спад).

🔴В выходные: график похож на прямую линию у основания.

Резюме

☑️Метрики СУБД и ОС можно и нужно рассматривать как ряды с недельной сезонностью.

Если вы занимаетесь прогнозированием нагрузки или аномалиями, ➡️недельный лаг (период = 7 дней или 168 часов) — это первый параметр, который стоит проверить при анализе временного ряда.

P.S. Исключение составляют системы, работающие 24/7/365 с равномерной нагрузкой (например, инфраструктура дата-центра или некоторые высоконагруженные интернет-сервисы без привязки к географии).

ℹ️У них сезонность может быть менее выражена, но суточные колебания все равно часто остаются.