0

Сценарий №4 "HeavyWeight": CPU utilization

Ослик не справится , если его перегрузить

Ослик не справится , если его перегрузить

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

Начало

https://dzen.ru/a/Z_ZU4LQXlnxVJEBt

Постановка задачи

Корреляционный анализ ожиданий при проведении тестового нагрузочного тестирование по сценарию "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)

Нагрузка на чтение с диска - отсутствует.

Операционная скорость и ожидания СУБД в ходе выполнения теста

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

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

Ожидания СУБД

Ось X - точка времени. Ось Y - ожидания СУБД.

Ось X - точка времени. Ось Y - ожидания СУБД.

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

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

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

Сильная корреляция между ожиданиями и ожиданиями типа LWLock свидетельствует о том, что все ожидания вызваны типом LWLock.

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

Ось X - точка времени. Ось Y - ожидания типа LWLock

Ось X - точка времени. Ось Y - ожидания типа 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 подписчиков

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

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