Задача эксперимента
По результатам стресс тестирования СУБД определить статистические показатели производительности , для использования в качестве стартового события мониторинга при создания инцидента.
Сценарий стресс тестирования
1.Создание нагрузки на СУБД
2.Базовая нагрузка в течении 1 часа
pgbench каждые 5 минут : --client=200
3.Через 1 час - дополнительная нагрузка к базовой
pgbench каждые 10 минут : --client=N , где N = 40 * итерация.
4.Условие остановки теста
Значение коэффициента корреляции между количеством активных сессий в состоянии ожидания и значением долгой скользящей по производительности Rxy < -0.7
5.Получение значения производительности СУБД
Частота замеров показаний : 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
Результаты эксперимента
Нагрузка на СУБД
Производительность СУБД
Корреляция между производительностью СУБД и количеством сессий в состоянии ожидания
Итоги и выводы
Показателем деградации производительности СУБД может служить значение корреляции между производительностью СУБД и количеством сессий в состоянии ожидания. Рост ожиданий и снижение производительности СУБД , свидетельствует о наличии проблем и необходимости создания инцидента для анализа и решения ситуации.
-
Приоритет инцидента устанавливается по значению коэффициента корреляции:
-0.7 < Rxy < -0.5 : Низкий приоритет
Rxy < -0.7 : Высокий приоритет
VVitaly
:-) Итоги и выводы поражают своей "глубиной"....
Хотя "по большому" д.б. примерно так....
- при выделенных вычислительных ресурсах и условиях теста БД может выдержать прикладную нагрузку X
+
- основным "узким" местом/местами повышения производительности БД является (CPU (Core count/Core perf)/диск IO (IOPS/readMB/writeMB)/RAM (count/perf)/Net IO(count/perf))
+ возможно основное рекомендуемое действие по исключению/минимизации "узкого" места повышения производительности на тестовой системе.