Сценарий №4 "HeavyWeight": CPU utilization
Взято с основного технического канала Postgres DBA ( возможны правки и дополнения в исходной статье ).
Начало
Постановка задачи
Корреляционный анализ ожиданий при проведении тестового нагрузочного тестирование по сценарию "HeavyWeight" - повышенная утилизация CPU.
Уточнить характерные признаки возникающие при нехватке вычислительной мощности CPU , при минимальном использовании IO.
Реализация теста
Виртуальная машина
cat /proc/cpuinfoprocessor : 0model name : Intel Xeon Processor (Skylake, IBRS, no TSX)cpu MHz : 2693.670processor : 1model name : Intel Xeon Processor (Skylake, IBRS, no TSX)cpu MHz : 2693.670
Тестовый запрос
FOR counter IN 1..10000LOOPSELECTgcd( ((random()*100.0) * (random()*100.0))::numeric , ((random()*100.0) * (random()*100.0))::numeric ) *lcm( ((random()*100.0) * (random()*100.0))::numeric , ((random()*100.0) * (random()*100.0))::numeric )*power(gcd( ((random()*100.0) * (random()*100.0))::numeric , ((random()*100.0) * (random()*100.0))::numeric ) ,lcm( ((random()*100.0) * (random()*100.0))::numeric , ((random()*100.0) * (random()*100.0))::numeric ))END LOOP;
План выполнения тестового запроса
explain ( analyze , buffers , summary ) select custom_test4();QUERY PLAN----------------------------------------------------------------------------------------Result (cost=0.00..0.26 rows=1 width=4) (actual time=459.522..459.522 rows=1 loops=1)Buffers: shared hit=160Planning Time: 0.066 msExecution Time: 461.071 ms(4 rows)
Нагрузка на чтение с диска - отсутствует.
Операционная скорость и ожидания СУБД в ходе выполнения теста
Ожидания СУБД
Коэффициенты корреляции
Сильная корреляция между ожиданиями и ожиданиями типа LWLock свидетельствует о том, что все ожидания вызваны типом LWLock.
Ожидания типа LWLock
События ожиданий (wait_event) по тестовому запросу
Столбцы таблицы:
timestamp : точка времени сбора статистических данных уровня SQL.
datname : База данных, в которой выполнялся SQL запрос.
rolname : Роль, под которой выполнялся SQL запрос.
CALLS : Количество выполнений запроса .
WAITINGS : Количество ожиданий типа IO , LWLock .
WAITINGS TO CALLS : количество ожиданий на одно выполнение.
WAIT_EVENTS : события ожидания wait_event , возникающие при выполнении SQL запроса .
SQL : текст SQL запроса (не приведен).
События ожидания возникающие при выполнении SQL запроса:
ProcArray : Ожидание при обращении к общим структурам данных в рамках процесса (например, при получении снимка или чтении идентификатора транзакции в сеансе).
LockManager : Ожидание при чтении или изменении информации о «тяжёлых» блокировках.
Итог
Характерным признаком недостатка вычислительных ресурсов CPU является корреляция между снижением операционной скорости и ростом ожиданий ProcArray .






Postgres DBA
150 постов27 подписчиков
Правила сообщества
Пока действуют стандартные правила Пикабу.