Задача
Подготовить методику статистического анализа результата бенчмарка производительности СУБД при заданном характере нагрузки , для данной инфраструктуры СУБД.
Реализация
Виртуальная машина
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 час.
Ожидаемый результат
Для определения значения производительности , которое будет принято в качестве результата , необходимо найти отрезок удовлетворяющий следующим требованиям:
Распределение значений является унимодальным
Распределение значений максимально приближено к нормальному.
Для оценки приближения распределения к нормальному используется оценка асимметрии и эксцесса.
Подробнее: Коэффициент асимметрии и коэффициент эксцесса (mathprofi.ru)
Алгоритм определения унимодальности гистограммы и расчет коэффициентов симметрии и эксцесса - вне данной статьи , в процессе разработки и уточнения .
Статистическое значение моды в найденном отрезке и будет считаться результатом.
В качестве изменяемого параметра выбран параметр настройки фонового процесса СУБД : bgwriter_lru_maxpages.
Эксперимент 1. bgwriter_lru_maxpages = 100
Производительность СУБД (сглаженные значения)
Статистические результаты производительности СУБД
Результат
Результирующий отрезок: 02.10.2024 23:57:00 - 03.10.2024 0:57:00
Результат эксперимента при bgwriter_lru_maxpages = 100
4783,8156434919
Эксперимент 2. bgwriter_lru_maxpages = 800
Производительность СУБД (сглаженные значения)
Статистические результаты производительности СУБД
Результат
Результирующий отрезок: 04.10.2024 6:17:00 - 04.10.2024 7:17:00
Результат эксперимента при bgwriter_lru_maxpages = 800
4687,42106682113
Итоги
Разница в производительности СУБД при изменении параметра bgwriter_lru_maxpages в 8 раз составила -2,06%
Для данного характера нагрузки - влияние параметра bgwriter_lru_maxpages на итоговую производительность СУБД - несущественно.
Для определения влияния параметра bgwriter_lru_maxpages необходимо изменить характер нагрузки на СУБД .
Используемая методика статистического анализа впрлне может применяться для экспериментальной оценки влияния других конфигурационных параметров СУБД и/или изменений в инфраструктуре на итоговую производительность СУБД.
Следующая задача - определение признаков достижения граничных условий влияния параметра конфигурации СУБД на производительность СУБД при постоянной нагрузке.
ky0
О, господи - если менять настройки СУБД, оказывается, это на что-то влияет!
Ждём серию прорывных статей "а что, если мы поменяем сразу несколько параметров?!"
Gromilo
Не понял иронии, в результате-то не влияет.
ky0
Ну, вы посмотрите весь пласт материалов этого товарища в динамике. В двух словах, он берёт какие-то параметры, крутит их, гоняет pgbench, и потом, поправив капитанскую шляпу, говорит - "вот, что получилось". Иногда, как сейчас, ничего особо не меняется.
GlukKazan
если это не узкое место, почему должно влиять?
rinace Автор
Статья не про параметр bgwriter_lru_maxpages вообще то.
Статья о том, как выбрать значение которое можно будет считать результатом бенчмарка для дальнейшего сравнительного анализа влияния изменений параметра/параметров на производительность СУБД, в условиях облачной инфраструктуры.
Это лишь метод, конкретный параметр и его влияние - просто для примера. Вполне можно было в тексте статьи изменить "bgwriter_lru_maxpages" на "параметр X". Смысл статьи бы не изменился.
P.S. В следующей статье, наверное так и сделаю.
GlukKazan
Слышали такую поговорку: "Дорога ложка к обеду"? Влияние изменения параметра может очень сильно зависеть от того в каких условиях функционирует база (от значений других параметров, железа, характера и особенностей нагрузки, пятен на Солнце и т.п.). В связи с этим, полезность метода изложенного в статье от меня ускользает.