Гипотеза об ожиданиях СУБД PostgreSQL

Взято с основного технического канала Postgres DBA ( возможны правки и дополнения в исходной статье ).

Гипотеза об ожиданиях СУБД PostgreSQL Исследования, Субд, Postgresql, Производительность, Длиннопост

Время - деньги.

Определение ожидания СУБД

Серверный процесс выполняющий SQL запрос к СУБД, в процессе выполнения находится в основных состояниях:

· active: серверный процесс выполняет запрос.

· idle: серверный процесс ожидает новой команды от клиента.

· idle in transaction: серверный процесс находится внутри транзакции, но в настоящее время не выполняет никакой запрос.

Postgres Pro Enterprise : Документация: 15: 27.2. Система накопительной статистики : Компания Postgres Professional

Если, серверный процесс находится состоянии active, то процесс может находится в либо в состоянии выполнения запроса, либо в состоянии ожидания:

wait_event_type text

Тип события, которого ждёт обслуживающий процесс, если это ожидание имеет место; в противном случае — NULL.

Postgres Pro Enterprise : Документация: 15: 27.2. Система накопительной статистики : Компания Postgres Professional

Вывод

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

Термины и определения:

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

Интегральный показатель, рассчитываемый как сумма общего числа выполненных SQL выражений и общего числа строк, полученных или затронутых операторами за выбранный промежуток времени.

Для сглаживания выбросов используется медианное сглаживание.

Гипотеза об ожиданиях СУБД PostgreSQL Исследования, Субд, Postgresql, Производительность, Длиннопост

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

События ожидания в PostgreSQL

Информация о том, чего процесс базы данных ожидает, когда не выполняются активные запросы.

Гипотеза об ожиданиях СУБД PostgreSQL Исследования, Субд, Postgresql, Производительность, Длиннопост

Ось X - точка наблюдения. Ось Y - общее количество ожиданий за отрезок наблюдения.

Коэффициент корреляции

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

Корреляция между операционной скоростью и ожиданиями

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

Гипотеза об ожиданиях СУБД PostgreSQL Исследования, Субд, Postgresql, Производительность, Длиннопост

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

Корреляция между ожиданиями

Коэффициент корреляции между всеми ожиданиями и событиями ожидания по определенному типу

Гипотеза об ожиданиях СУБД PostgreSQL Исследования, Субд, Postgresql, Производительность, Длиннопост

Ось X - значения ожиданий за период наблюдений. Ось Y - значения ожиданий типа IPC за период наблюдений.

Практический вывод

При постоянном сценарии нагрузки (неизменяемые SQL запросы) и при постоянных конфигурационных параметрах СУБД - коэффициент корреляции между значениями операционной скорости и количеством ожиданий определяет степень влияния событий ожидания на снижение операционной скорости.

При отсутствии влияния инфраструктуры (CPU, сеть), наибольшее влияние на снижение операционной скорости имеет тип ожидания, имеющее наибольшее значение коэффициента корреляции со всеми ожиданиями СУБД.

Следовательно – снизив количество ожиданий данного типа время выполнения SQL запроса уменьшится и количество запросов за отрезок времени увеличится. Т.е. операционная скорость возрастет.

Postgres DBA

64 поста14 подписчиков

Правила сообщества

Пока действуют стандартные правила Пикабу.