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

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

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

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

pgbench

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

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

3.Через 1 час - дополнительная нагрузка к базовой

pgbench каждые 10 минут : --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 : Высокий приоритет

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


  1. VVitaly
    24.10.2024 11:50

    :-) Итоги и выводы поражают своей "глубиной"....
    Хотя "по большому" д.б. примерно так....
    - при выделенных вычислительных ресурсах и условиях теста БД может выдержать прикладную нагрузку X
    +
    - основным "узким" местом/местами повышения производительности БД является (CPU (Core count/Core perf)/диск IO (IOPS/readMB/writeMB)/RAM (count/perf)/Net IO(count/perf))
    + возможно основное рекомендуемое действие по исключению/минимизации "узкого" места повышения производительности на тестовой системе.