Гипотеза об ожиданиях СУБД PostgreSQL
Взято с основного технического канала Postgres DBA ( возможны правки и дополнения в исходной статье ).
Определение ожидания СУБД
Серверный процесс выполняющий SQL запрос к СУБД, в процессе выполнения находится в основных состояниях:
· active: серверный процесс выполняет запрос.
· idle: серверный процесс ожидает новой команды от клиента.
· idle in transaction: серверный процесс находится внутри транзакции, но в настоящее время не выполняет никакой запрос.
Если, серверный процесс находится состоянии active, то процесс может находится в либо в состоянии выполнения запроса, либо в состоянии ожидания:
wait_event_type text
Тип события, которого ждёт обслуживающий процесс, если это ожидание имеет место; в противном случае — NULL.
Вывод
Чем меньше количество времени, в течении которого серверный процесс, выполняющий SQLзапрос к СУБД, имеет непустое событие ожидания, тем меньше времени серверный процесс находится в ожидании, тем быстрее завершится SQL запрос к СУБД и при многократном выполнении SQLзапросов - чем меньше ожиданий, тем больше запросов в единицу времени будет выполнено и больше полезной информации будет предоставлено клиенту.
Термины и определения:
Операционная скорость
Интегральный показатель, рассчитываемый как сумма общего числа выполненных SQL выражений и общего числа строк, полученных или затронутых операторами за выбранный промежуток времени.
Для сглаживания выбросов используется медианное сглаживание.
События ожидания в PostgreSQL
Информация о том, чего процесс базы данных ожидает, когда не выполняются активные запросы.
Коэффициент корреляции
Коэффициент корреляции в математической статистике — показатель, характеризующий силу статистической связи между двумя или несколькими случайными величинами.
Корреляция между операционной скоростью и ожиданиями
Коэффициент корреляции между значениями операционной скорости и событиями ожидания.
Ось X - значения операционной скорости за период наблюдения. Ось Y - значения ожиданий за период наблюдений.
Корреляция между ожиданиями
Коэффициент корреляции между всеми ожиданиями и событиями ожидания по определенному типу
Ось X - значения ожиданий за период наблюдений. Ось Y - значения ожиданий типа IPC за период наблюдений.
Практический вывод
При постоянном сценарии нагрузки (неизменяемые SQL запросы) и при постоянных конфигурационных параметрах СУБД - коэффициент корреляции между значениями операционной скорости и количеством ожиданий определяет степень влияния событий ожидания на снижение операционной скорости.
При отсутствии влияния инфраструктуры (CPU, сеть), наибольшее влияние на снижение операционной скорости имеет тип ожидания, имеющее наибольшее значение коэффициента корреляции со всеми ожиданиями СУБД.
Следовательно – снизив количество ожиданий данного типа время выполнения SQL запроса уменьшится и количество запросов за отрезок времени увеличится. Т.е. операционная скорость возрастет.
Postgres DBA
64 поста14 подписчиков
Правила сообщества
Пока действуют стандартные правила Пикабу.