Скользящие медианы производительности СУБД. Синяя линия - период сглаживания = 10 мин. Красная линия, имитирующая уровень поддержки - период сглаживания  = 1 час.
Скользящие медианы производительности СУБД. Синяя линия - период сглаживания = 10 мин. Красная линия, имитирующая уровень поддержки - период сглаживания = 1 час.

Задача

Определить причины снижения производительности в период 11:35 - 12:15. Или установить разницу в состоянии СУБД в период снижения производительности 11:35-12:15 и в период роста производительности 12:15-13:11.

Порядок анализа

1.Статистические показатели корреляции активных сессий и производительности СУБД

11:35 - 12:15

С ростом количеств активных сессий производительность - снижается
С ростом количеств активных сессий производительность - снижается

12:15 - 13:11

С ростом количеств активных сессий производительность - растет
С ростом количеств активных сессий производительность - растет

Итог: инцидент деградации производительности СУБД в период 11:35-12:15 - подтверждается.

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

В результаты анализа добавлены новые значения:

  • % Наблюдений - % интервалов наблюдений данного события ожиданий от максимального количества всех интервалов наблюдений

  • Вес: абсолютное значение произведения коэффициента корреляции между количеством событий ожидания и производительностью СУБД и % Наблюдений

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

11:35 - 12:15

Ожидания с наибольшим весом в период 11:35-12:15
Ожидания с наибольшим весом в период 11:35-12:15

12:15 - 13:11

Ожидания с наибольшим весом в период 12:15 - 13:11
Ожидания с наибольшим весом в период 12:15 - 13:11
  1. В период 11:35 - 12:15 корреляция между производительностью и событиями ожидания при выполнении клиентских запросов имелась в 19 запросах. При этом общий вес составил ~60

  2. В период 12:15 - 13:11 корреляция между производительностью и событиями ожидания при выполнении клиентских запросов имелась в 30 запросах. При этом общий вес составил ~57

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

Если сравнить ожидания с наибольшим весом в период 11:35 - 12:15 с аналогичными ожиданиями в период 12:15 - 13:11, получается интересное наблюдение:

Сравнительный анализ ожиданий 11:35-12:15 и 12:15-13:11
Сравнительный анализ ожиданий 11:35-12:15 и 12:15-13:11

существенно меньшее количество ожиданий в период 11:35 - 12:15 имеют большую корреляцию с производительностью по сравнению с периодом 12:15 - 13:11.

3. Определение запросов вызывающих ожидания СУБД

Анализ ожиданий IO/BufFileRead

11:35 - 12:15

Количество ожиданий и производительность СУБД в период 11:35 - 12:15
Количество ожиданий и производительность СУБД в период 11:35 - 12:15
Корреляция между количеством ожиданий и производительностью СУБД  в период 11:35-12:15
Корреляция между количеством ожиданий и производительностью СУБД в период 11:35-12:15

12:15 - 13:11

Количество ожиданий и производительность СУБД в период 12:15-13:11
Количество ожиданий и производительность СУБД в период 12:15-13:11
Корреляция между количеством ожиданий и производительностью СУБД в период 12:15-13:11
Корреляция между количеством ожиданий и производительностью СУБД в период 12:15-13:11

Как видно - распределения периодов 11:35 - 12:15 и 12:15 - 13:11 - заметно различаются.

Предварительный итог

Учитывая совокупность полученных данных анализа можно сделать предположение - одной из причин инцидента деградации производительности СУБД в период 11:35-12:15 является влияние со стороны дисковой подсистемы облачной инфраструктуры, а именно:

BufFileRead

Ожидание чтения из буферизованного файла.

Таким образом - использование статистического анализа позволило резко снизить время на поиск возможным причин инцидента производительности .

Развитие и дальнейшие планы

Для более точного и полного анализа конечно нужна история ожиданий по отдельным запросам. Но, собирать историю по всем запросам чрезвычайно затратно. А тема мониторинга производительности отдельных запросов - ждет своей будущей реализации.

Комментарии (2)


  1. comradeleet
    17.09.2024 14:26
    +2

    Круто! А о чём статья?


  1. mentin
    17.09.2024 14:26

    Пора Хабру написать ИИ, который бы не пропускал графики без подписей к осям координат и линиям на графике, особенно в первой же картинке в статье