
Статистический анализ производительности СУБД PostgreSQL
В мире, где простои баз данных измеряются в упущенной выгоде, проактивный мониторинг из роскоши превращается в необходимость. В статье описывается как pg_expecto позволяет не ждать проблем, а предсказывать и предотвращать их.
Формулировка задачи:
Разработка специализированных конфигурационных файлов метрик для оценки производительности систем управления базами данных (СУБД) с использованием инструментария pg_expecto. Результаты работы предназначены для интеграции в системы мониторинга и обеспечения основ для реализации механизмов проактивного анализа производительности СУБД.
Предисловие
Реактивный и проактивный мониторинг: rinace — ЖЖ
Графики изменения операционной скорости и ожиданий СУБД в период, предшествующий инциденту.


Условие начала инцидента :
Если угол наклона линии регрессии операционной скорости < 0 ,
И
угол наклона линии регрессии ожиданий > 0
ТО
Создать оповещение мониторинга "Инцидент деградации производительности".
В качестве значения для приоритета инцидента, используется модуль коэффициента корреляции :
< 0.7 : низкий уровень (Приоритет 4). Значение индикатора = -50
>= 0.7 : высокий уровень (Приоритет 3). Значение индикатора = -100
Расчет индикатора снижения производительности СУБД
Угол наклона линии графика
ATAN(REGR_SLOPE(Y, X)) * 180 / PI()
Y - выборка значений(операционная скорость, ожидания СУБД) за заданный период
X - точки наблюдения (номер минуты)Коэффициент корреляции между операционной скоростью и ожиданиями СУБД
COALESCE( corr( speed , waitings ) , 0 ) AS correlation_value
speed - выборка значений операционной скорости за заданный период
waitings - выборка значений ожиданий СУБД за заданный периодДополнительная информация:
Операционная скорость, ожидания , корреляция, линия регрессии
Статистический анализ производительности СУБД PostgreSQL | Postgres DBA | Дзен
Индикатор снижения производительности СУБД
Реализация системы мониторинга производительности СУБД на основе расширения pg_expecto
Определен перечень метрик для оценки производительности СУБД, включающий показатели операционной скорости обработки запросов и ожиданий СУБД(wait_event_type).
Получаемые метрики агрегируются и экспортируются в текстовые файлы в формате, обеспечивающем их последующий сбор системой мониторинга Zabbix.
Для проактивного выявления аномалий производительности реализован алгоритм регрессионного анализа. На основе исторических данных производится расчет углового коэффициента линейного тренда для метрик операционной скорости и ожиданий СУБД. Результирующее значение, характеризующее динамику изменения производительности, сохраняется в качестве интегрального индикатора деградации.
Критерием для инициации процедуры обработки инцидента, связанного с деградацией производительности СУБД, является регистрация ненулевого значения указанного индикатора.
Файлы для формирования метрик мониторинга:
/tmp/pg_expecto_speed.txt : Текущее значение операционной скорости.
/tmp/pg_expecto_waitings.txt : Текущее значение ожиданий СУБД.
/tmp/pg_expecto_indicator.txt : Текущее значение индикатора деградации производительности СУБД.
Результат: мониторинг производительности СУБД в Zabbix

Пример использования индикатора снижения производительности
PG_HAZEL : Анализ инцидента производительности СУБД PostgreSQL. | Postgres DBA | Дзен