Добавить в корзинуПозвонить
Найти в Дзене
Postgres DBA

PG_HAZEL : Влияние уменьшения параметра fillfactor на производительность СУБД PostgreSQL

Предыдущая работа по теме Оценить качественное и количественное влияние на производительность СУБД уменьшение значения параметра хранения таблицы fillfactor c 100(значение по умолчанию) до 50 при сценарии смешанной нагрузки: CPU = 2 RAM = 2GB Версия СУБД: Postgres Pro (enterprise certified) 15.8.1 on x86_64-pc-linux-gnu, compiled by gcc (AstraLinuxSE 8.3.0-6) 8.3.0, 64-bit Размер тестовой БД = 10GB Для данной СУБД , при использовании сценария смешанной нагрузки "Mix", уменьшение значения параметра fillfactor с 100 до 50 дает прирост производительности СУБД: Ожидания типа IO Относительная разница в ожиданиях типа IO между производительностью СУБД в Эксперименте-1 и Эксперименте-2 составляет от -1% до 4%. Ожидания типа LWLock Относительная разница в ожиданиях типа LWLock между производительностью СУБД в Эксперименте-1 и Эксперименте-2 составляет от -26% до 23%. Коэффициенты корреляции и количество типов ожиданий - существенно не изменились. Разница между событиями ожидания DataFileRead
Оглавление
Полная заполненность таблицы - не всегда полезна
Полная заполненность таблицы - не всегда полезна

Предыдущая работа по теме

Задача эксперимента

Оценить качественное и количественное влияние на производительность СУБД уменьшение значения параметра хранения таблицы fillfactor c 100(значение по умолчанию) до 50 при сценарии смешанной нагрузки:

  • Select only
  • Select + Update
  • Insert only

Конфигурация виртуальной машины

CPU = 2
RAM = 2GB
Версия СУБД:
Postgres Pro (enterprise certified) 15.8.1 on x86_64-pc-linux-gnu, compiled by gcc (AstraLinuxSE 8.3.0-6) 8.3.0, 64-bit
Размер тестовой БД = 10GB

Эксперимент-1 : fillfactor = 100

Эксперимент-2 : fillfactor = 50

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

Операционная скорость

Ось X - нагрузка на СУБД . Ось Y - Операционная скорость.
Ось X - нагрузка на СУБД . Ось Y - Операционная скорость.

Для данной СУБД , при использовании сценария смешанной нагрузки "Mix", уменьшение значения параметра fillfactor с 100 до 50 дает прирост производительности СУБД:

  • При нагрузке от 5 до 115 соединений : от -6 до 9%
  • При нормальной нагрузке(5-22 соединения): от 0 до 9%

Операционная скорость при нормальной нагрузке

Ось X - точка наблюдения. Ось Y - операционная скорость.
Ось X - точка наблюдения. Ось Y - операционная скорость.

Ожидания СУБД при нормальной нагрузке

Ожидания типа IO

Ось X - точка наблюдения. Ось Y - ожидания типа IO
Ось X - точка наблюдения. Ось Y - ожидания типа IO

Относительная разница в ожиданиях типа IO между производительностью СУБД в Эксперименте-1 и Эксперименте-2 составляет от -1% до 4%.

Ожидания типа LWLock

Ось X - точка наблюдения. Ось Y - ожидания типа LWLock
Ось X - точка наблюдения. Ось Y - ожидания типа LWLock

Относительная разница в ожиданиях типа LWLock между производительностью СУБД в Эксперименте-1 и Эксперименте-2 составляет от -26% до 23%.

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

-6

Коэффициенты корреляции и количество типов ожиданий - существенно не изменились.

Сценарий "Select only"

События ожидания типа IO

-7

Разница между событиями ожидания DataFileRead в ходе экспериментов - практически отсутствует.

События ожидания типа LWLock

-8

В Эксперименте-2 существенно снизилось количество событий ожидания:

  • BufferContent: Ожидание при обращении к странице данных в памяти.
  • CheckpointerComm: Ожидание при управлении запросами fsync.
  • XactSLRU: Ожидание при обращении к SLRU-кешу данных о состоянии транзакций.

Сценарий "Select + Update"

События ожидания типа IO

-9

Разница между событиями ожидания DataFileRead в ходе экспериментов - практически отсутствует.

События ожидания типа LWLock

-10

В Эксперименте-2 существенно снизилось количество событий ожидания:

  • BufferContent: Ожидание при обращении к странице данных в памяти.
  • CheckpointerComm: Ожидание при управлении запросами fsync.
  • WALInsert: Ожидание при добавлении записей WAL в буфер в памяти.

Сценарий "Select + Update"

События ожидания типа IO

-11

В Эксперименте-2 снизилось количество событий ожидания:

  • DataFileRead: Ожидание чтения из файла данных отношения.

События ожидания типа LWLock

-12

В Эксперименте-2 существенно снизилось количество событий ожидания:

  • BufferContent: Ожидание при обращении к странице данных в памяти.
  • CheckpointerComm: Ожидание при управлении запросами fsync.
  • WALInsert: Ожидание при добавлении записей WAL в буфер в памяти.

Итог

  1. Для данной конфигурации СУБД , для сценария смешанной нагрузки - уменьшение значения параметра fillfactor приводит к увеличению производительности СУБД до 9% (при нормальной нагрузке).