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

Задача эксперимента

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

Сценарий стресс тестирования

1.Создание нагрузки на СУБД

pgbench

2.Базовая нагрузка в течении 1 часа

pgbench каждые 5 минут : --client=200

3.Через 1 час

pgbench каждые 5 минут : --client=N , где N = 40 * итерация.

4.Условие остановки теста

Значение коэффициента корреляции между количеством активных сессий в состоянии ожидания и значением долгой скользящей по производительности Rxy < -0.7

5.Получение значения производительности СУБД

 Производительность СУБД — расчет метрики, временной анализ, параметрическая оптимизация / Хабр (habr.com)

  • Частота замеров показаний : 1 минута.

  • Период медианного сглаживания долгой скользящей: 1 час

Конфигурация тестовой виртуальной машины

Версия и редакция СУБД

Postgres Pro (enterprise certified) 15.7.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.4.1 20230605 (Red Soft 11.4.0-1), 64-bit

CPU

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel Xeon Processor (Skylake, IBRS, no TSX)
…
processor       : 5
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel Xeon Processor (Skylake, IBRS, no TSX)

RAM

free -g

               total  
Mem:              31  

Результаты эксперимента

Нагрузка на СУБД

Рис.1. Общее количество сессий и количество активных сессий в ходе теста

Рис. 1. Общее количество сессий и количество активных сессий в ходе теста

Производительность СУБД

Рис.2. График изменения производительности СУБД в ходе стресс теста

Рис. 2. График изменения производительности СУБД в ходе стресс теста

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

Рис.2. График изменения корреляции в ходе стресс теста

Рис. 2. График изменения корреляции в ходе стресс теста

Итоги и выводы

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

  2. Приоритет инцидента устанавливается по значению коэффициента корреляции:

    -0.7 < Rxy < -0.5: Низкий приоритет

    Rxy < -0.7: Высокий приоритет

© Habrahabr.ru