Анализ инцидентов производительности СУБД PostgreSQL с использованием PG_HAZEL
Взято с основного технического канала Postgres DBA ( возможны правки и дополнения в исходной статье ).
Начало
Продолжение
Практическое применение индикатора для проведения анализа инцидентов снижения скорости СУБД .
Постановка задачи
Провести анализ инцидентов производительности СУБД-1 по данным мониторинга индикатора снижения скорости.
Порядок проведения анализа инцидентов производительности СУБД
Определение инцидента
Инцидентом снижения производительности СУБД является событие снижения операционной скорости СУБД и одновременный рост ожиданий СУБД в течении заданного периода времени.
Приоритет инцидента определяется абсолютным значением коэффициента корреляции между значениями операционной скорости и ожиданиями :
Приоритет 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
толбцы таблицы:
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 запрос/запросы оказывающие наибольшее влияние на ожидания СУБД . И оптимизация которых окажет наибольший эффект на скорость СУБД.
Итоги и планы развития
Мониторинг инцидентов скорости СУБД и сбор статистической информации по инцидентам позволит собрать начальные данные для проведения анализа производительности СУБД за более длительный период времени - неделя, месяц, квартал. И послужит базой для начала работ по процессу управления проблемами производительности СУБД.





Postgres DBA
157 постов27 подписчиков
Правила сообщества
Пока действуют стандартные правила Пикабу.