PG_EXPECTO : Нагрузочное тестирование СУБД PostgreSQL
Взято с основного технического канала Postgres DBA (возможны правки в исходной статье).
Лучше неделя нагрузочного тестирования с pg_expecto, чем одна бессонная ночь на боевом сервере.
Задача
Выполнить нагрузочное тестирование СУБД PostgreSQL, с использованием расширения pg_expecto .
Подготовить данные отчетов для анализа результатов нагрузочного тестирования.
Методика проведения нагрузочного тестирования
Для создания нагрузки используется инструмент pgbench, позволяющий параллельно запускать несколько сценариев выполнения SQL-запросов. В данной методике предусмотрено три типа сценариев:
- «Select only» – выборка данных без изменений;
- «Select + Update» – чтение и обновление записей;
- «Insert only» – добавление новых записей.
Каждый сценарий обладает определенным весом, определяющим долю от общей нагрузки:
- Select only: вес = 0.5
- Select + Update: вес = 0.35
- Insert only: вес = 0.15
Количество одновременно выполняемых сессий каждого сценария рассчитывается как произведение общей нагрузки на соответствующий вес сценария.
Общая нагрузка возрастает экспоненциально, а длительность одной итерации составляет 10 минут. Максимальное значение нагрузки определяется значением соответствующего параметра в конфигурационном файле.
1. Настройка и запуск нагрузочного тестирования СУБД PostgreSQL
2. Подготовка отчетов по результатам нагрузочного тестирования
Скрипт для формирования исходных текстовых файлов для импорта в Excel
cd /postgres/pg_expecto/performance_reports
Исходные текстовые файлы для импорта в 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

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