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

Глоссарий терминов

Сводная статья для подготовки докладов на конференциях PgConf и Heisenbug по теме статистического анализа производительности СУБД PostgreSQL по состоянию на май 2025 . Если угол наклона линии регрессии операционной скорости < 0 , И угол наклона линии регрессии ожиданий > 0 Конкретный момент времени, для которого фиксируются данные в ходе мониторинга, эксперимента или анализа инцидента. Выражается в минутах от начала периода собранных данных. Это базовый элемент, «кадр» временного ряда, на основе которого строятся все дальнейшие вычисления и графики. Статистический метод сглаживания данных, который эффективно подавляет резкие, кратковременные выбросы (аномалии). Для каждой точки временного ряда вычисляется медиана значений в заданном временном окне заданной размерности от данной точки: Ключевой интегральный показатель производительности базы данных . Рассчитывается как сумма двух значений: Рост этого показателя обычно свидетельствует о хорошей производительности, а падение — о возмож
Оглавление

Статистический анализ производительности СУБД PostgreSQL

Сводная статья для подготовки докладов на конференциях PgConf и Heisenbug по теме статистического анализа производительности СУБД PostgreSQL по состоянию на май 2025 .

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

Если угол наклона линии регрессии операционной скорости < 0 ,
И
угол наклона линии регрессии ожиданий > 0

Точка наблюдения

Конкретный момент времени, для которого фиксируются данные в ходе мониторинга, эксперимента или анализа инцидента. Выражается в минутах от начала периода собранных данных. Это базовый элемент, «кадр» временного ряда, на основе которого строятся все дальнейшие вычисления и графики.

Скользящая медиана

Статистический метод сглаживания данных, который эффективно подавляет резкие, кратковременные выбросы (аномалии). Для каждой точки временного ряда вычисляется медиана значений в заданном временном окне заданной размерности от данной точки:

  • Например, при окне в 60 минут значение для минуты t будет рассчитана как медиана значений за минуты с t-60 по t.

Операционная скорость

Ключевой интегральный показатель производительности базы данных . Рассчитывается как сумма двух значений:

  1. количество успешно выполненных SQL-запросов (транзакций)
  2. количество обработанных или возвращённых строк данных.

Рост этого показателя обычно свидетельствует о хорошей производительности, а падение — о возможном возникновении проблем.

Для анализа трендов, используется его сглаженное значение, рассчитанное методом скользящей медианы.

WAIT_EVENT_TYPE (Тип события ожидания)

Тип события, которого ждёт обслуживающий процесс, если это ожидание имеет место; в противном случае — NULL.

Общая категория или класс ресурса, на котором процесс (например, обработчик запроса в СУБД) вынужден ожидать. Это высокоуровневая группировка, помогающая быстро классифицировать проблему.

WAIT_EVENT (Событие ожидания)

Имя ожидаемого события, если обслуживающий процесс находится в состоянии ожидания, а в противном случае — NULL.

Конкретное, низкоуровневое имя события, из-за которого процесс находится в состоянии ожидания. Это уточнение внутри типа (WAIT_EVENT_TYPE). Например, для типа IO событием может быть datafile read (чтение файла данных), а для типа Lock — transactionid (ожидание завершения другой транзакции).

Коэффициент корреляции

Числовая мера, показывающая силу и направление статистической связи между двумя изменяющимися во времени показателями. Его значение колеблется от -1 до +1.

Интерпретация значений:

+1: Полная прямая связь (оба показателя растут и падают синхронно).

От +0.7 до +1: Сильная прямая связь.

От +0.3 до +0.69: Умеренная или слабая прямая связь.

Около 0: Отсутствие линейной связи.

От -0.3 до -0.69: Умеренная или слабая обратная связь.

От -0.7 до -1: Сильная обратная связь.

-1: Полная обратная связь (показатели меняются в противофазе: один растет — другой падает).

Применение в анализе:

Отрицательная корреляция между Операционной скоростью и Ожиданий (Wait Events): чем сильнее отрицательное значение, тем очевиднее, что рост ожиданий напрямую «душит» производительность, снижая скорость обработки запросов.

Положительная корреляция между отдельным типом ожиданий (WAIT_EVENT_TYPE) и общим количеством ожиданий: указывает, насколько данный тип проблем вносит вклад в общее снижение производительности системы.

Взвешенная корреляция ожиданий (ВКО)

Score = Corr(WaitType, Total) * P(WaitType)

Corr ∈ [0, 1]: коэффициент корреляции между ожиданиями данного типа wait_event_type ∈ [BufferPin, Extension, IO, IPC, Lock, LWLock, Timeout] и всеми ожиданиями СУБД за выбранный период .

P ∈ [0, 1]: доля в процентах(деленная на 100) количества ожиданий данного типа wait_event_type ∈ [BufferPin, Extension, IO, IPC, Lock, LWLock, Timeout] ко всем ожиданиями СУБД за выбранный период .

Интегральный приоритет типа ожиданий wait_event_type

Используется для определения приоритетов различных типов ожиданий (wait_event_type) на основе четырёх показателей:

  1. коэффициента корреляции Пирсона (r),
  2. уровня значимости (p-value),
  3. взвешенной корреляции ожиданий (w)
  4. коэффициента детерминации (R²)

Коэффициент тренда

K=b′×R2

где:

  • K — коэффициент тренда (положительный при ухудшении, отрицательный при улучшении);
  • b′ — скорректированный наклон (в исходных единицах измерения метрики за шаг времени);
  • R2 — коэффициент детерминации (от 0 до 1).

Абсолютная величина ∣K∣ характеризует выраженность тренда с учётом его статистической значимости: даже большой наклон при низком R2 даст небольшой вклад, и наоборот.

Подробнее о применении корреляционного анализа