Найти в Дзене
Postgres DBA

Статистический анализ стресс-теста СУБД PostgreSQL

Определить максимальное количество предельное количество работающих соединений к СУБД , при заданном сценарии нагрузки . Создание нагрузки на СУБД - используется инструмент  pgbench 1.Базовая нагрузка на СУБД Запуск pgbench c неизменным значением параметра client: --client=клиенты Число имитируемых клиентов, то есть число одновременных сеансов базы данных. 2.Период сбора статистических данных для долгой и короткой скользящей 3.Дополнительная нагрузка Запуск дополнительного сценария pgbench с постоянным периодом выполнения и увеличением параметра client = Итерация * 40 4.Условие остановки теста Значение коэффициента корреляции между количеством активных сессий и значением долгой скользящей Rxy < -0.7 5.Результат Максимальное значение параметра client при выполнении дополнительного сценария pgbench.( Пункт 3.). Создание и инициализация БД для базовой нагрузки Сценарий базовой нагрузки Используемые значения для создания нагрузки: pgbench_clients 100 transactions 10000 Создание и инициализ
Оглавление

Архивный материал. Описанные методики или устарели или не используются.

Задача

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

Создание нагрузки на СУБД - используется инструмент  pgbench

Сценарий теста

1.Базовая нагрузка на СУБД

Запуск pgbench c неизменным значением параметра client:

--client=клиенты

Число имитируемых клиентов, то есть число одновременных сеансов базы данных.

2.Период сбора статистических данных для долгой и короткой скользящей

3.Дополнительная нагрузка

Запуск дополнительного сценария pgbench с постоянным периодом выполнения и увеличением параметра client = Итерация * 40

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

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

5.Результат

Максимальное значение параметра client при выполнении дополнительного сценария pgbench.( Пункт 3.).

Реализация теста

Создание и инициализация БД для базовой нагрузки

Сценарий базовой нагрузки

Используемые значения для создания нагрузки:

pgbench_clients 100

transactions 10000

Создание и инициализация БД для дополнительной нагрузки

Сценарий дополнительной нагрузки

Запуск дополнительной нагрузки

Протоколирование результатов теста

Для простоты и сокращения объема материала, приведены графики после запуска дополнительной нагрузки и до окончания теста.

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

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

Рис.1. Производительность СУБД
Рис.1. Производительность СУБД
Рис.2. Активные сессии
Рис.2. Активные сессии
Рис.3. Долгая скользящая производительности СУБД
Рис.3. Долгая скользящая производительности СУБД
Рис.4. Долгая скользящая по активным сессиям
Рис.4. Долгая скользящая по активным сессиям
Рис.5. Коэффициент корреляции между долгой скользящей производительности СУБД и долгой скользящей активных сессий
Рис.5. Коэффициент корреляции между долгой скользящей производительности СУБД и долгой скользящей активных сессий

Результат теста

Завершение теста: 17.10.2024 22:22:00

Работающий сценарий добавочной нагрузки:

TIMESTAMP : 17-10-2024 22:20:03  : stress_additional : OK : STARTED

TIMESTAMP : 17-10-2024 22:20:03  : stress_additional : OK : Количество клиентов: 120

Результат: предельная нагрузка по сценарию pgbench составляет 220 клиентов.

Итог и планы

  1. Разработанная методика будет использована для настройки параметров СУБД при новых инсталляциях
  2. После определения максимального значения нагрузки pgbench значение будет использовано для оптимизации конфигурационных параметров
  3. В дальнейшем данная методика будет использована при нагрузочном тестировании с использованием pgbench и пользовательских скриптов (Программа pgbench поддерживает запуск пользовательских сценариев оценки производительности, позволяя заменять стандартный скрипт транзакции (описанный выше) скриптом, считываемым из файла (с параметром -f). В этом случае «транзакцией» считается одно выполнение данного скрипта. )
  4. После определения максимальной нагрузки с использованием pgbench + пользовательские скрипты , значение максимальной нагрузки будет проведена оптимизация конфигурационных параметров аналогично Пункту 2.
  5. По завершении оптимизации конфигурационных параметров, СУБД передается в опытную эксплуатацию и сопровождение.

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