Анализ инцидентов производительности СУБД PostgreSQL с использованием PG_HAZEL

Взято с основного технического канала Postgres DBA ( возможны правки и дополнения в исходной статье ).

Зри в корень.

Зри в корень.

Начало

"Индикатор снижения скорости" как сигнал для начала корреляционного анализа ожиданий СУБД.

Продолжение

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

Постановка задачи

Провести анализ инцидентов производительности СУБД-1 по данным мониторинга индикатора снижения скорости.

Дашборд в Zabbix.

Дашборд в Zabbix.

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

Определение инцидента

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

Приоритет инцидента определяется абсолютным значением коэффициента корреляции между значениями операционной скорости и ожиданиями :

  • Приоритет 4 : |коэффициент корреляции| < 0.5

  • Приоритет 3 : |коэффициент корреляции| >= 0.5

Окончание инцидента - отсутствие корреляции между операционной скоростью и ожиданиями СУБД.

1.Отчет по инцидентам

Таблица по инцидентам за заданный период

Таблица по инцидентам за заданный период

Столбцы таблицы

  • ID : идентификатор инцидента

  • START TIME : время начала инцидента

  • FINISH TIME : время окончания инцидента

  • SPEED REGRESSION LINE SLOPE : угол наклона линии наименьших квадратов для значений операционной скорости СУБД

  • WAITINGS REGRESSION LINE SLOPE : угол наклона линии наименьших квадратов для значений ожиданий СУБД

  • CORRELATION : коэффициент корреляции между операционной скоростью и ожиданиями

  • IO CORRELATION : коэффициент корреляции между ожиданиями СУБД и ожиданиями типа IO

  • IPC CORRELATION : коэффициент корреляции между ожиданиями СУБД и ожиданиями типа IPC

  • LWLOCK CORRELATION : коэффициент корреляции между ожиданиями СУБД и ожиданиями типа LWLOCK

Результаты отчета:

  • Наибольшая корреляция между ожиданиями и типом ожидания IPC

  • Наименьшая корреляция между ожиданиями и типом IO

Результаты отчета:

  • Наибольшая корреляция между ожиданиями и типом ожидания IPC

  • Наименьшая корреляция между ожиданиями и типом IO

Итог:

Наибольшее влияние на снижение операционной скорости в заданный период играют ожидания типа IPC

Серверный процесс ожидает взаимодействия с другим процессом.

2.Отчеты по SQL запроса и типам ожидания на примере анализа по типу IPC

Ожидания типа IPC

TOP-10 SQL выражений по доле ожиданий по выражению среди всех ожиданий типа IPC

TOP-10 SQL выражений по доле ожиданий по выражению среди всех ожиданий типа IPC

толбцы таблицы:

  • QUERYID : значение queryid из представления pgpro_stats

  • PGPRO_PWR QUERYID : шестнадцатеричное значение queryid для использования в отчетах pgpro_pwr.

  • CALLS : количество выполнений за период инцидентов

  • WAITINGS : количество ожиданий типа IPC за период инцидентов

  • WAITINGS TO CALLS : отношение количеств ожиданий типа IPC по SQL выражению к количеству выполнений. Ожиданий на одно выполнение.

  • WAITINGS PPM : относительное значение( в промилле ) ожиданий по типу IPC для данного SQL выражения ко всем ожиданиям типа IPC.

Результат

В результате анализа данных отчета , можно установить SQL запрос/запросы оказывающие наибольшее влияние на количество ожиданий типа IPC. И оптимизация которых окажет наибольший эффект на скорость СУБД.

Анализ по типам ожидания IO , LWLock проводится аналогичным образом.

3. SQL выражения, имеющие набольшие значения ожиданий

Сводная таблица по SQL отсортированная по отношению количества ожиданий к количеству выполнений.

Сводная таблица по SQL отсортированная по отношению количества ожиданий к количеству выполнений.

В результате анализа данных отчета , можно установить SQL запрос/запросы оказывающие наибольшее влияние на ожидания СУБД . И оптимизация которых окажет наибольший эффект на скорость СУБД.

Итоги и планы развития

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

Postgres DBA

157 постов27 подписчиков

Правила сообщества

Пока действуют стандартные правила Пикабу.