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

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

Разработать и проверить практическое применение индикатора снижения скорости СУБД для создания инцидента деградации производительности СУБД. Как было указано ранее сигналом для начала работ по корреляционному анализу ожиданий СУБД может является отрицательная корреляция между значениями операционной скорости и ожиданий СУБД . Например: Однако , важным следствием из определения понятия корреляции является то, что отрицательное значение может быть также и в случае - если операционная скорость растет, а ожидания снижаются. Является ли подобная ситуация инцидентом ? Конечно - нет. Возможны следующие комбинации роста/cнижения значение операционной скорости и ожиданий: Только вариант 4 является инцидентом снижения производительности. Итак, для корректной работы индикатора и создания оповещения мониторинга о возможной проблеме скорости СУБД необходимо определять возникновение ситуации - отрицательная корреляция & операционная скорость снижается. Для определения снижения операционной с
Оглавление
Что-то произошло . Возможно авария. Скорость снижена.
Что-то произошло . Возможно авария. Скорость снижена.

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

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

Решение задачи

Как было указано ранее

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

Например:

Графики мониторина операционной скорости, ожиданий и коэфициента корреляции.
Графики мониторина операционной скорости, ожиданий и коэфициента корреляции.

Однако , важным следствием из определения понятия корреляции является то, что отрицательное значение может быть также и в случае - если операционная скорость растет, а ожидания снижаются. Является ли подобная ситуация инцидентом ? Конечно - нет.

Возможны следующие комбинации роста/cнижения значение операционной скорости и ожиданий:

  1. Скорость растет, ожидания растут => положительная корреляция.
  2. Скорость снижается, ожидания снижаются => положительная корреляция.
  3. Скорость растет, ожидания снижаются => отрицательная корреляция.
  4. Скорость снижается, ожидания растут => отрицательная корреляция.

Только вариант 4 является инцидентом снижения производительности.

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

Признак снижения операционной скорости

Для определения снижения операционной скорости используется встроенная функция PostgreSQL regr_slope(Y, X)

наклон линии, полученной методом наименьших квадратов по данным (X, Y)

В качестве выборки X используются значения точки времени наблюдения, в качестве выборки Y - значения операционной скорости.

В результате графически получается примерно следующий график, если выполнить тоже самое в Excel:

Красные точки - линия тренда .
Красные точки - линия тренда .

Таким образом, используя значение наклона линии, полученной методом наименьших квадратов и значение коэффициента корреляции между операционной скоростью и ожиданиями , можно сформулировать условие для создания оповещения мониторинга .

Условие начала инцидента снижения скорости СУБД:

Если угол наклона линии регрессии операционной скорости < 0 ,
И
угол наклона линии регрессии ожиданий > 0
ТО
Создать оповещение мониторинга "Инцидент деградации производительности".

В качестве уровня важности оповещения , можно использовать абсолютное значение коэффициента корреляции :

  • < 0.7 : низкий уровень
  • >= 0.7 : высокий уровень.

Условие завершения инцидента снижения скорости СУБД:

Если угол наклона линии регрессии операционной скорости >= 0 ,
ИЛИ
угол наклона линии регрессии ожиданий <= 0
ТО
Создать оповещение мониторинга "Инцидент деградации производительности завершен".

Практическая реализация

Дашборд мониторинга отдельной СУБД
Дашборд мониторинга отдельной СУБД
Сводный дашборд по нескольким СУБД
Сводный дашборд по нескольким СУБД

Итог

  1. Использование индикатора снижения скорости СУБД позволяет автоматически создавать инцидент о деградации производительности СУБД и избавляет DBA от необходимости непрерывно следить за показателями метрик производительности и состояния СУБД.
  2. При использовании на коротких скользящих , можно получать более оперативные оповещения о изменениях скорости, на более коротком отрезке сглаживания.
  3. Сбор статистики по инцидентам производительности СУБД позволит в дальнейшем проводить полноценный QA и Problem management.