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

PG_HAZEL : Влияние checkpoint_timeout на производительность/скорость СУБД PostgreSQL - итог.

Определить качественное и количественное влияние на производительность тестовой СУБД изменения параметра checkpoint_timeout для сценария нагрузки "Mix". checkpoint_timeout (integer) Максимальное время между автоматическими контрольными точками в WAL. Если это значение задаётся без единиц измерения, оно считается заданным в секундах. Допускаются значения от 30 секунд до одного дня. Значение по умолчанию — пять минут (5min). Для данной СУБД в сценарии смешанной нагрузки "Mix":
Оглавление
Для лучшей скорости необходима настройка под конкретные условия трассы .
Для лучшей скорости необходима настройка под конкретные условия трассы .

Задача

Определить качественное и количественное влияние на производительность тестовой СУБД изменения параметра checkpoint_timeout для сценария нагрузки "Mix".

checkpoint_timeout (integer)
Максимальное время между автоматическими контрольными точками в WAL. Если это значение задаётся без единиц измерения, оно считается заданным в секундах. Допускаются значения от 30 секунд до одного дня. Значение по умолчанию — пять минут (5min).
Postgres Pro Enterprise : Документация: 15: 19.5. Журнал предзаписи

Предварительный эксперимент

Сравнительные эксперименты:

  1. Уменьшенное значение: checkpoint_timepout = 60 (1 минут).
  2. Значение по умолчанию: checkpoint_timepout = 300 (5 минут).
  3. Увеличенное значение: checkpoint_timepout = 900 (15 минут).

Тестовый сценарий "Mix"

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

Ось X - общая нагрузка на СУБД. Ось Y - апроксимированные значения операционной скорости.
Ось X - общая нагрузка на СУБД. Ось Y - апроксимированные значения операционной скорости.
Ось X - общая нагрузка на СУБД. Ось Y - операционная скорость.
Ось X - общая нагрузка на СУБД. Ось Y - операционная скорость.

Итог:

Для данной СУБД в сценарии смешанной нагрузки "Mix":

  1. Максимальная скорость СУБД достигается при значении параметра checkpoint_timeout = 60 при общей нагрузке 18 соединений.
  2. Максимальная нагрузка , после которой скорость СУБД начинает снижаться достигается при значении параметра checkpoint_timeout = 300 при общей нагрузке 26 соединений.
  3. При предельной общей нагрузке 111 соединений наибольшая скорость СУБД достигается при значении параметра checkpoint_timeout = 900.