Как стать автором
Поиск
Написать публикацию
Обновить

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

Уровень сложностиСложный
Время на прочтение3 мин
Количество просмотров1.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. Следующая задача - определение признаков достижения граничных условий влияния параметра конфигурации СУБД на производительность СУБД при постоянной нагрузке.

Теги:
Хабы:
Всего голосов 8: ↑4 и ↓4+4
Комментарии6

Публикации

Ближайшие события