2

PG_EXPECTO : Нагрузочное тестирование СУБД PostgreSQL

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

Нагрузочное тестирование — это лишь данные. Их смысл открывает pg_expecto.

Нагрузочное тестирование — это лишь данные. Их смысл открывает pg_expecto.

Лучше неделя нагрузочного тестирования с pg_expecto, чем одна бессонная ночь на боевом сервере.

Задача

  1. Выполнить нагрузочное тестирование СУБД PostgreSQL, с использованием расширения pg_expecto .

  2. Подготовить данные отчетов для анализа результатов нагрузочного тестирования.

Методика проведения нагрузочного тестирования

Для создания нагрузки используется инструмент pgbench, позволяющий параллельно запускать несколько сценариев выполнения SQL-запросов. В данной методике предусмотрено три типа сценариев:

- «Select only» – выборка данных без изменений;

- «Select + Update» – чтение и обновление записей;

- «Insert only» – добавление новых записей.

Каждый сценарий обладает определенным весом, определяющим долю от общей нагрузки:

- Select only: вес = 0.5

- Select + Update: вес = 0.35

- Insert only: вес = 0.15

Количество одновременно выполняемых сессий каждого сценария рассчитывается как произведение общей нагрузки на соответствующий вес сценария.

Общая нагрузка возрастает экспоненциально, а длительность одной итерации составляет 10 минут. Максимальное значение нагрузки определяется значением соответствующего параметра в конфигурационном файле.

1. Настройка и запуск нагрузочного тестирования СУБД PostgreSQL

PG_EXPECTO : Настройка и старт нагрузочного тестирования СУБД PostgreSQL

2. Подготовка отчетов по результатам нагрузочного тестирования

Скрипт для формирования исходных текстовых файлов для импорта в Excel

cd /postgres/pg_expecto/performance_reports

./load_test_report.sh

Исходные текстовые файлы для импорта в Excel

1.Производительность и ожидания СУБД

  • postgres._load_test.txt : график производительности по итерациями нагрузочного тестирования.

  • postgres.1.cluster_report_meta.txt : Показатели производительности и ожиданий СУБД.

  • postgres.1.cluster_report_4graph.txt : Данные для построения графиков производительности и ожиданий СУБД.

  • postgres.2.wait_event.txt : Диаграмма Парето по событиям ожидания СУБД.

  • postgres.3.queryid.txt : Диаграмма Парето по ожиданиям SQL запросов.

  • postgres.x.sql_list.txt : Список SQL запросов.

2. История выполнений и событий ожиданий по SQL запросам тестовых сценариев

scenario.N.wait_event_type.txt

  • История выполнений и событий ожидания по типу ожидания wait_event_type.

  • По тестовому сценарию N (от 1 до 3)

3. Статистические значения vmstat , iostat

  • linux.1.waitings_vmstat_corr.txt : Корреляция ожиданий СУБД и показателей vmstat

  • linux.2.vmstat_iostat_DEVICE.txt : Статистические показатели iostat для дискового устройства DEVICE

  • linux.3.vmstat_io.txt : Чек-лист IO

  • linux.4.vmstat_cpu.txt : Чек-лист CPU

  • linux.5.vmstat_ram.txt : Чек-лист RAM

  • linux.x.iostat_DEVICE_meta.txt : Показатели iostat для дискового устройства DEVICE

  • linux.x.iostat_DEVICE_4graph.txt : Данные для построения графиков показателей iostat дискового устройства DEVICE

  • linux.x.vmstat_meta.txt : Показатели vmstat

  • linux.x.vmstat_4graph.txt : Данные для построения графиков показателей vmstat

Импортирование данных отчетов в Excel

1. Производительность и ожидания СУБД

Построение свечного графика по результатам нагрузочного тестирования СУБД

PG_EXPECTO : Построение свечного графика по результатам нагрузочного тестирования СУБД

Показатели производительности и ожиданий СУБД в ходе нагрузочного тестирования

PG_EXPECTO : Показатели производительности и ожиданий СУБД в ходе нагрузочного тестирования

Построение графиков производительности и ожиданий по результатам нагрузочного тестирования СУБД

PG_EXPECTO : Построение графиков производительности и ожиданий по результатам нагрузочного тестирования СУБД

Диаграмма Парето по событиям ожидания СУБД

PG_EXPECTO : Диаграмма Парето по событиям ожидания СУБД

Диаграмма Парето по ожиданиям SQL запросов

PG_EXPECTO : Диаграмма Парето по ожиданиям SQL запросов

2. История выполнений и событий ожиданий по SQL запросам тестовых сценариев

PG_EXPECTO : История выполнений и событий ожиданий по SQL запросам тестовых сценариев

3. Статистические значения vmstat , iostat

Корреляция ожиданий СУБД и показателей vmstat

PG_EXPECTO : Корреляция ожиданий СУБД и показателей vmstat

Статистические показатели iostat для дискового устройства

PG_EXPECTO : Статистические показатели iostat для дискового устройства

Чек-лист IO

PG_EXPECTO : Чек-лист IO

Чек-лист CPU

PG_EXPECTO : Чек-лист CPU

Чек-лист RAM

PG_EXPECTO : Чек-лист RAM

Показатели iostat для дискового устройства

PG_EXPECTO : Показатели iostat для дискового устройства

Данные для построения графиков показателей iostat дискового устройства

PG_EXPECTO : Данные для построения графиков показателей iostat дискового устройства

Показатели vmstat

PG_EXPECTO : Показатели vmstat

Данные для построения графиков показателей vmstat

PG_EXPECTO : Данные для построения графиков показателей vmstat

Postgres DBA

157 постов27 подписчиков

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

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