Добавить в корзинуПозвонить
Найти в Дзене
Postgres DBA

Корреляционный анализ ожиданий СУБД при продуктивной нагрузке.

✖️ Методика устарела✖️ Актуальная методика ————— Т.е. малым значениям операционной скорости соответствуют малые значения ожиданий. Снижения производительности нет ? Для корректного анализа производительности , необходимо анализировать корреляцию между операционной скоростью и ожиданиями не на уровне СУБД, а на уровне отдельных баз данных. В основе остается та же идея Но , уже не на уровне СУБД , а на уровне отдельной базы данных. 1. Относительная доля(%) баз данных, имеющих отрицательную корреляцию между операционной скоростью и ожиданиями. 2. Относительная доля(%) баз данных, имеющих среднюю и сильную отрицательную корреляцию между операционной скоростью и ожиданиями. Если теперь посмотреть значение данных метрик, за тот же период наблюдения, появляются совершенно новые детали для начала анализа. Имеются базы данных по которым установлено снижение скорости и рост одиданий , хотя на уровне СУБД снижения скорости не установлено. Далее , используя полученные данные, уже можно пр
Оглавление
Для быстрой работы системы - каждая отдельная часть должна быть настроена идеально.
Для быстрой работы системы - каждая отдельная часть должна быть настроена идеально.

✖️ Методика устарела✖️

Актуальная методика

—————

Словарь терминов

Постановка проблемы

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

Ось X - точка наблюдения . Ось Y - операционная скорость и скользящая корреляция скорости и ожиданий.
Ось X - точка наблюдения . Ось Y - операционная скорость и скользящая корреляция скорости и ожиданий.

Анализ графика

  1. Имеется снижение производительности
  2. Скользящая корреляция постоянно в положительной зоне

Т.е. малым значениям операционной скорости соответствуют малые значения ожиданий.

Снижения производительности нет ?

Корреляционный анализ на уровне баз данных

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

В основе остается та же идея

Но , уже не на уровне СУБД , а на уровне отдельной базы данных.

Новые метрики производительности СУБД

1. Относительная доля(%) баз данных, имеющих отрицательную корреляцию между операционной скоростью и ожиданиями.

2. Относительная доля(%) баз данных, имеющих среднюю и сильную отрицательную корреляцию между операционной скоростью и ожиданиями.

Если теперь посмотреть значение данных метрик, за тот же период наблюдения, появляются совершенно новые детали для начала анализа.

Ось X - точка наблюдения. Ось Y - значение метрик отрицательной корреляции.
Ось X - точка наблюдения. Ось Y - значение метрик отрицательной корреляции.

Результат анализа метрик относительной доли отрицательной корреляции.

  1. Рост количества баз данных имеющих отрицательную корреляцию между скоростью и ожиданиями >= 50%.
  2. Рост количества баз данных имеющих среднюю и сильную отрицательную корреляцию между скоростью и ожиданиями ≈50%.

Главный итог использования новых метрик

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

Далее , используя полученные данные, уже можно примерить использованную ранее методику, хорошо зарекомендовавшую себя при нагрузочном тестировании

Корреляционный анализ ожиданий баз данных и выявление SQL запросов вызывающих наибольшее влияние на снижение скорости баз данных.

Таблица коэфициентов корреляции по базам данных.
Таблица коэфициентов корреляции по базам данных.
  • База данных DB-1 - имеет наиболее сильную отрицательную корреляцию.
  • База DB-2 - исключается из дальнейшего анализа. Причина - отсутствие отрицательной корреляции по событию типу ожидания.

Корреляционный анализ по базе данных "DB-1"

Ось X - точка наблюдения. Ось Y - значение операционной скорости
Ось X - точка наблюдения. Ось Y - значение операционной скорости
Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO по базе данных DB-1
Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO по базе данных DB-1
SQL запрос, имеющий наибольшую корреляцию с типом ожидания IO
SQL запрос, имеющий наибольшую корреляцию с типом ожидания IO

Корреляционный анализ по базе данных "DB-3"

Ось X - точка наблюдения. Ось Y - значение операционной скорости
Ось X - точка наблюдения. Ось Y - значение операционной скорости
Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO по базе данных DB-3
Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO по базе данных DB-3
SQL запрос, имеющий наибольшую корреляцию с типом ожидания IO
SQL запрос, имеющий наибольшую корреляцию с типом ожидания IO

Корреляционный анализ по базе данных "DB-4"

Ось X - точка наблюдения. Ось Y - значение операционной скорости
Ось X - точка наблюдения. Ось Y - значение операционной скорости
Ось X - точка наблюдения. Ось Y - количество ожиданий типа Extension по базе данных DB-4
Ось X - точка наблюдения. Ось Y - количество ожиданий типа Extension по базе данных DB-4
Ось X - точка наблюдения. Ось Y - количество ожиданий типа LWLock по базе данных DB-4
Ось X - точка наблюдения. Ось Y - количество ожиданий типа LWLock по базе данных DB-4
SQL запросs, имеющий наибольшую корреляцию с типами ожидания Extension , LWLock.
SQL запросs, имеющий наибольшую корреляцию с типами ожидания Extension , LWLock.

Итог

  1. Использование корреляционного анализа позволяет выявить SQL выражения потенциально, имеющие влияние на скорость работы базы данных.
  2. Стартовым событием для начала анализа является отрицательная корреляция между операционной скоростью и ожиданиями для отдельной базы данных.
  3. Мониторинг операционной скорости, ожиданий и корреляции между операционной скоростью и ожиданиями на уровне СУБД в целом, при условии разнородного характера нагрузки на отдельный базы данных , входящих в кластер СУБД - не позволяет получить корректную картину для начала анализа.
  4. Для решения проблемы эмерджентности СУБД , необходимо мониторить метрики производительности на уровне отдельных баз данных и даже на уровне SQL запросов , а не СУБД в целом.