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

✔️Использование pg_expecto для проактивного мониторинга производительности СУБД PostgreSQL

В мире, где простои баз данных измеряются в упущенной выгоде, проактивный мониторинг из роскоши превращается в необходимость. В статье описывается как pg_expecto позволяет не ждать проблем, а предсказывать и предотвращать их. ℹ️Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозиториях GitFlic и GitHub Разработка специализированных конфигурационных файлов метрик для оценки производительности систем управления базами данных (СУБД) с использованием инструментария pg_expecto. Результаты работы предназначены для интеграции в системы мониторинга и обеспечения основ для реализации механизмов проактивного анализа производительности СУБД. Если угол наклона линии регрессии операционной скорости < 0 , И угол наклона линии регрессии ожиданий > 0 ТО Создать оповещение мониторинга "Инцидент деградации производительности". В качестве значения для приоритета инцидента, используется модуль коэффициента корреляции :
Оглавление
Производительность базы данных — это не то, что вы измеряете, когда приходят жалобы. Это то, что вы предвосхищаете, чтобы жалоб не было вовсе.
Производительность базы данных — это не то, что вы измеряете, когда приходят жалобы. Это то, что вы предвосхищаете, чтобы жалоб не было вовсе.

В мире, где простои баз данных измеряются в упущенной выгоде, проактивный мониторинг из роскоши превращается в необходимость. В статье описывается как pg_expecto позволяет не ждать проблем, а предсказывать и предотвращать их.

ℹ️Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозиториях GitFlic и GitHub

kznalp/PG_EXPECTO: Комплекс статистического анализа производительности СУБД PostgreSQL
GitHub - pg-expecto/pg_expecto: Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL

Формулировка задачи:

Разработка специализированных конфигурационных файлов метрик для оценки производительности систем управления базами данных (СУБД) с использованием инструментария pg_expecto. Результаты работы предназначены для интеграции в системы мониторинга и обеспечения основ для реализации механизмов проактивного анализа производительности СУБД.

Предисловие

Реактивный и проактивный мониторинг

Графики изменения операционной скорости и ожиданий СУБД в период, предшествующий инциденту.

График изменения операционной скорости. Красная линия - линия регрессии.
График изменения операционной скорости. Красная линия - линия регрессии.
График изменения ожиданий СУБД. Красная линия - линия регрессии.
График изменения ожиданий СУБД. Красная линия - линия регрессии.

Условие начала инцидента :

Если угол наклона линии регрессии операционной скорости < 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 - выборка значений ожиданий СУБД за заданный период

Дополнительная информация:

Операционная скорость, ожидания , корреляция, линия регрессии

Индикатор снижения производительности СУБД

Реализация системы мониторинга производительности СУБД на основе расширения pg_expecto

  1. Определен перечень метрик для оценки производительности СУБД, включающий показатели операционной скорости обработки запросов и ожиданий СУБД(wait_event_type).
  2. Получаемые метрики агрегируются и экспортируются в текстовые файлы в формате, обеспечивающем их последующий сбор системой мониторинга Zabbix.
  3. Для проактивного выявления аномалий производительности реализован алгоритм регрессионного анализа. На основе исторических данных производится расчет углового коэффициента линейного тренда для метрик операционной скорости и ожиданий СУБД. Результирующее значение, характеризующее динамику изменения производительности, сохраняется в качестве интегрального индикатора деградации.

Критерием для инициации процедуры обработки инцидента, связанного с деградацией производительности СУБД, является регистрация ненулевого значения указанного индикатора.

Файлы для формирования метрик мониторинга:

  • /tmp/pg_expecto_speed.txt : Текущее значение операционной скорости.
  • /tmp/pg_expecto_waitings.txt : Текущее значение ожиданий СУБД.
  • /tmp/pg_expecto_indicator.txt : Текущее значение индикатора деградации производительности СУБД.

Результат: мониторинг производительности СУБД в Zabbix

Дашборд Zabbix
Дашборд Zabbix

Пример использования индикатора снижения производительности СУБД