Pull to refresh

Статистический анализ результатов benchmark PostgreSQL

Level of difficultyHard
Reading time3 min
Views1.3K

Задача

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

Реализация

Виртуальная машина

CPU = 1

vendor_id       : GenuineIntelcpu family      : 6model           : 85model name      : Intel Xeon Processor (Skylake, IBRS, no TSX)

RAM

Mem:          718Mi

Редакция/версия СУБД

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

Конфигурационные параметры СУБД

  • shared_preload_libraries = 'pg_wait_sampling , pgpro_stats'

  • Остальные параметры: по умолчанию

Тестовая нагрузка - pgbench

pgbench_init_param= --no-vacuum --quiet --foreign-keys --scale=50 -i test_pgbench

pgbench_param= --protocol=extended --report-per-command --jobs=1 --client=50 --transactions=2000 test_pgbench

После каждой итерации - VACUUM ANALIZE ;

Временной отрезок для сбора данных c 12:00 до 09:00.

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

Длительность анализируемого отрезка = 1 час.

Период медианного сглаживания показателей производительности СУБД = 1 час.

Ожидаемый результат

Для определения значения производительности , которое будет принято в качестве результата , необходимо найти отрезок удовлетворяющий следующим требованиям:

  1. Распределение значений является унимодальным

  2. Распределение значений максимально приближено к нормальному.

Для оценки приближения распределения к нормальному используется оценка асимметрии и эксцесса.

Подробнее: Коэффициент асимметрии и коэффициент эксцесса (mathprofi.ru)

Алгоритм определения унимодальности гистограммы и расчет коэффициентов симметрии и эксцесса - вне данной статьи , в процессе разработки и уточнения .

Статистическое значение моды в найденном отрезке и будет считаться результатом.

В качестве изменяемого параметра выбран параметр настройки фонового процесса СУБД : bgwriter_lru_maxpages.

Эксперимент 1. bgwriter_lru_maxpages = 100

Производительность СУБД (сглаженные значения)

Рис.1. Производительность СУБД при bgwriter_lru_maxpages = 100
Рис.1. Производительность СУБД при bgwriter_lru_maxpages = 100
Рис.1.1 Не сглаженные данные производительности СУБД при bgwriter_lru_max_pages = 100
Рис.1.1 Не сглаженные данные производительности СУБД при bgwriter_lru_max_pages = 100

Статистические результаты производительности СУБД

Рис.2. Статистические значения производительности СУБД при bgwriter_lru_maxpages = 100
Рис.2. Статистические значения производительности СУБД при bgwriter_lru_maxpages = 100

Результат

Результирующий отрезок: 02.10.2024 23:57:00 - 03.10.2024 0:57:00

Рис.3. Статистические значения производительности СУБД принятые в качестве результата для bgwriter_lru_max_pages = 100
Рис.3. Статистические значения производительности СУБД принятые в качестве результата для bgwriter_lru_max_pages = 100
Рис.4. Частотная таблица производительности СУБД для результирующего отрезка при bgwriter_max_pages = 100
Рис.4. Частотная таблица производительности СУБД для результирующего отрезка при bgwriter_max_pages = 100
Рис.5. Гистограмма для результирующего отрезка при bgwriter_max_pages = 100
Рис.5. Гистограмма для результирующего отрезка при bgwriter_max_pages = 100

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

4783,8156434919

Эксперимент 2. bgwriter_lru_maxpages = 800

Производительность СУБД (сглаженные значения)

Рис.6. Производительность СУБД при bgwriter_lru_maxpages = 800
Рис.6. Производительность СУБД при bgwriter_lru_maxpages = 800
Рис.6.1. Не сглаженные данные производительности СУБД при bgwiter_lru_max_pages = 800
Рис.6.1. Не сглаженные данные производительности СУБД при bgwiter_lru_max_pages = 800

Статистические результаты производительности СУБД

Рис.7. Статистические значения производительности СУБД при bgwriter_lru_maxpages = 800
Рис.7. Статистические значения производительности СУБД при bgwriter_lru_maxpages = 800

Результат

Результирующий отрезок: 04.10.2024 6:17:00 - 04.10.2024 7:17:00

Рис.8. Статистические значения производительности СУБД принятые в качестве результата для bgwriter_lru_max_pages = 800
Рис.8. Статистические значения производительности СУБД принятые в качестве результата для bgwriter_lru_max_pages = 800
Рис.9. Частотная таблица производительности СУБД для результирующего отрезка при bgwriter_max_pages = 800
Рис.9. Частотная таблица производительности СУБД для результирующего отрезка при bgwriter_max_pages = 800
Рис.10. Гистограмма для результирующего отрезка при bgwriter_max_pages = 800
Рис.10. Гистограмма для результирующего отрезка при bgwriter_max_pages = 800

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

4687,42106682113

Итоги

  1. Разница в производительности СУБД при изменении параметра bgwriter_lru_maxpages в 8 раз составила -2,06%

  2. Для данного характера нагрузки - влияние параметра bgwriter_lru_maxpages на итоговую производительность СУБД - несущественно.

  3. Для определения влияния параметра bgwriter_lru_maxpages необходимо изменить характер нагрузки на СУБД .

  4. Используемая методика статистического анализа впрлне может применяться для экспериментальной оценки влияния других конфигурационных параметров СУБД и/или изменений в инфраструктуре на итоговую производительность СУБД.

  5. Следующая задача - определение признаков достижения граничных условий влияния параметра конфигурации СУБД на производительность СУБД при постоянной нагрузке.

Tags:
Hubs:
Total votes 8: ↑4 and ↓4+4
Comments6

Articles