Сравнение производительности PostgreSQL : разные сценарии нагрузки.

Сравнение производительности PostgreSQL : разные сценарии нагрузки.

Инженерия производительности (англ. Performance Engineering) — часть системной инженерии, включающая в себя набор ролей, знаний, практик, инструментов и результатов и применяющаяся на каждом этапе Цикла разработки программного обеспечения с целью убедиться в том, что создаваемое, программируемое и поддерживаемое архитектурное решение соответствует нефункциональным требованиям к производительности этого решения.

Предыдущий эксперимент по теме

Задача эксперимента

Количественный анализ производительности СУБД - для разных сценариев нагрузки:

  • Сценарий 1: Стандартный сценарий pgbench
  • Сценарий 2: Стандартный сценарий pgbench + дополнительные операции update.

Конфигурация ВМ

ВМ-1

Версия СУБД: Postgres Pro (enterprise certified) 15.8.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.4.1 20230605 (Red Soft 11.4.0-1), 64-bi

CPU: 8

RAM: 15

ОС: RED OS 7.3

ВМ-2

Версия СУБД: Postgres Pro (enterprise certified) 14.11.3 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit

CPU: 24

RAM: 189

ОС: Astra Linux (Smolensk) 1.6

Тестовый сценарий и нагрузка на СУБД

Инструмент создания нагрузки: pgbench

Изменение нагрузки: экспоненциально начиная со значения --connect=6

Часть 1 - Сравнение показателей производительности СУБД для ресурсоемкого сценария

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

График операционной скорости ВМ-1 / ВМ-2
График операционной скорости ВМ-1 / ВМ-2

Выводы

  • С ростом нагрузки операционная скорость ВМ-1 снижается после 12 соединений.
  • С ростом нагрузки до 64 соединений операционная скорость ВМ-2 - растет.
  • После 11 соединений и до 477 соединений операционная скорость ВМ-1 выше . При дальнейшем повышении нагрузки операционная скорость ВМ-1 и ВМ-2 существенно не отличаются.

Время выполнения тестового запроса

ВМ-1 быстрее, при нагрузке до 10 соединений

Время выполнения тестового запроса до 10 соединений
Время выполнения тестового запроса до 10 соединений

ВМ-2 быстрее, при нагрузке свыше 10 соединений

Выводы

  • Время выполнения тестового запроса для ВМ-1 существенно растет с ростом нагрузки и превышает время выполнения тестового запроса для ВМ-2 при нагрузке свыше 10 соединения.

Итог по сравнению показателей производительности СУБД при выполнении ресурсоемкого запроса

Результаты принципиально не отличаются и не зависят от ресурсоемкости сценария. Изменяется только граничное значение нагрузки.

В данном сценарии:

1. Если оценивать СУБД по времени выполнения тестового запроса , то до нагрузки 10 соединения - тестовый запрос на ВМ-1 выполняется быстрее.

2. Если оценивать СУБД по операционной скорости, то до нагрузки 12 соединений - операционная скорость ВМ-1 существенно выше. С ростом нагрузки операционная скорость ВМ-1 и ВМ-2 уменьшается примерно одинаково.

Часть 2 - Сравнение результатов показателей производительности при сравнении СУБД между сценариями

ВМ-1 Операционная скорость

ВМ-1. Операционная скорость. Стандартный и ресурсоемкий сценарий
ВМ-1. Операционная скорость. Стандартный и ресурсоемкий сценарий

Выводы

  • После 276 соединений операционная скорость для разных сценариев практически не отличается

ВМ-2 Операционная скорость

ВМ-2. Операционная скорость. Стандартный и ресурсоемкий сценарий.
ВМ-2. Операционная скорость. Стандартный и ресурсоемкий сценарий.

Выводы

  • До 53 соединений операционная скорость для разных сценариев практически не отличается
  • В целом операционная скорость по 1-му сценарию выше

ВМ-1 Время выполнения тестового запроса

ВМ-1. Время выполнения тестового запроса . Стандартный и ресурсоемкий сценарий
ВМ-1. Время выполнения тестового запроса . Стандартный и ресурсоемкий сценарий

Выводы

  • До 477 соединений время выполнения тестового запроса существенно не отличается
  • После 477 соединений время выполнения ресурсоемкого запроса кардинально растет

ВМ-2 Время выполнения тестового запроса

ВМ-2. Время выполнения тестового запроса
ВМ-2. Время выполнения тестового запроса

Выводы

  • Время выполнения тестового запроса растет линейно .
  • Время выполнения при ресурсоемком сценарии - растет быстрее.

Итог

Если сравнивать показатели производительности СУБД для разных сценариев , в целом никаких неожиданностей - более мощная ВМ справляется с нагрузкой существенно эффективнее

Начать дискуссию