Архивный материал. Используемый метод:
Постановка задачи
Анализ и определение причины деградации производительности СУБД за заданный период.
Сценарий нагрузки TPC-B (OLTP).
Общее описание схемы и метрик производительности
PG_HAZEL - оперативно-тактический комплекс мониторинга производительности СУБД PostgreSQL .
Анализ метрик производительности СУБД.
График операционной скорости СУБД за период
Короткий период медианного сглаживания - синий график.
Долгий период медианного сглаживания - красный график.
Как видно из графика - имеется краткосрочная и долгосрочная тенденция снижения производительности СУБД.
Сессии в состоянии 'active'
Корреляция между операционной скоростью и количество сессий в состоянии 'active'
График скользящей корреляции.
Коэффициент корреляции между операционной скоростью и количеством активных сессий за период наблюдений = -0,993357128393598 .
Ключевые точки наблюдения.
- 1-19 : коэффициент близок к 1
- 23 - отрицательное значение коэффициента корреляции
- 80 - значение коэффициента корреляции уменьшается(растет по модулю)
Общая интерпретация значений коэффициента корреляции :
- Очень слабая корреляция: [0 до 0.2]
- Слабая корреляция: (0.2 до 0.5].
- ️Средняя корреляция: (0.5 до 0.7] .
- ️Сильная корреляция: (0.7 до 0.9].
- ️Очень сильная корреляция: (0.9 до 1].
Результат корреляционного анализа операционной скорости и активными сессиями :
- После точки наблюдения 23 - СУБД работает в нештатном режиме.
- Очень сильная корреляция между нагрузкой на СУБД и операционной скоростью СУБД.
Ожидания СУБД
Отношение времени ожидания к общему времени работы СУБД
Результат анализа ожиданий СУБД:
- Начиная с точки 60 - относительная доля ожиданий резко увеличивается. СУБД работает в нештатном режиме.
Корреляционный анализ ожиданий СУБД
Гипотеза
Для определения SQL запроса оказывающего наибольшее влияние необходимо определить запрос с наибольшим значением коэффициента корреляции между ожиданиями СУБД и ожиданиями по SQL запросу.
Чуть подробнее
Результат корреляционного анализа
Наибольшее влияние на снижение производительности СУБД оказывает SQL запрос: queryid = -3703375232510669542 .
Шаги корреляционного анализа
1. Корреляция между операционной скоростью и определенными типом ожиданиям
- Lock = -0,991080979500333
- LWLock = -0,952840750047627
- IPC = -0,00747093318897355
- BufferPin = 0
- Extension = 0
- IO = 0
Ожидания типа Lock имеет большую корреляцию по сравнению с ожиданиями типа LWLock.
Ожидания типа Lock
Ожидания типа LWLock
2.Корреляция между типом ожидания Lock и событиями ожиданий
- transactionid = 0,999996784494388
- tuple = 0,989898319693633
- relation = 0,884541891919045
Ожидания transactionid
Ожидания tuple
3. Корреляция между ожиданиями transactionid и SQL запросами
queryid = -3703375232510669542
Итоги
Гипотеза подтверждена экспериментально для данного сценария нагрузки.
Методику корреляционного анализа можно применить и на уровне SQL запроса , для анализа снижения производительности .
Необходимо продолжение проведение экспериментов по корреляционному анализу с использованием дополнительных сценариев нагрузочного тестирования .