Найти в Дзене
Postgres DBA

PG_EXPECTO v.7 + DeepSeek : Настройка, запуск и анализ результатов нагрузочного тестирования имитирующего сценарии нагрузки OLTP и OLAP.

GitHub - Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL Глоссарий терминов | Postgres DBA | Дзен Комплекс pg_expecto v.7 предоставляет инженерам и администраторам PostgreSQL мощный инструментарий для автоматизированного нагрузочного тестирования и сбора метрик производительности. Однако данные — это лишь исходный материал; настоящая ценность рождается в их глубоком анализе. Использование pg_expecto v.7 в связке с DeepSeek выводит процесс оптимизации на новый уровень. Инструмент не только проводит тесты и измеряет ключевые показатели (от ожиданий wait event до статистики ввода-вывода), но и генерирует структурированные промпты на основе собранных данных (файлы _3.*.prompt.txt). Эти промпты позволяют передать контекст выполненных экспериментов нейросети DeepSeek, которая выступает в роли эксперта. В результате вы получаете не просто «сырые» графики и логи, а готовые аналитические отчеты: от детального разбора единичного тест
Оглавление
От замера — к решению. Автоматизированный анализ PostgreSQL с pg_expecto и DeepSeek.
От замера — к решению. Автоматизированный анализ PostgreSQL с pg_expecto и DeepSeek.

GitHub - Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL

Глоссарий терминов | Postgres DBA | Дзен

Предисловие

Комплекс pg_expecto v.7 автоматизирует нагрузочное тестирование PostgreSQL, собирая метрики производительности и ожидания событий (wait events). Главное новшество — генерация структурированных промптов на основе данных экспериментов, которые передают контекст тестов нейросети DeepSeek.

Использование DeepSeek в качестве эксперта превращает сырые графики и логи в готовые аналитические отчеты с диагностикой узких мест и рекомендациями по настройке.

ℹ️Статья описывает полный цикл: от конфигурации нагрузки до получения итоговых заключений через нейросеть, что ускоряет принятие решений при оптимизации PostgreSQL.

1. Настройка тестового сценария нагрузочного тестирования

cd /postgres/pg_expecto/sh/load_test

vi param.conf

Параметры нагрузочного тестирования

  • finish_load : Максимальное количество сессий pgbench в ходе нагрузочного тестирования.
-2
  • testdb : Наименование тестовой базы данных . default - тестовая БД создаваемая по умолчанию pgbench.
-3
  • load_mode: Режим имитации нагрузки - OLAP или OLTP
-4
  • Веса сценариев по умолчанию : Количество сессий pgbench по сценарию=~общая нагрузка * вес сценария.
-5
  • init_test_db: Необходимость инициализировать тестовую БД перед выполнением теста(только для параметра testdb = default )
-6
  • scale: Масштабный коэффициент размера тестовой БД при генерации.
-7

Расчет коэффициента: Scale = 0.0669 * DB_Size_Target_MB - 0.5

Для расчета коэффициента масштабирования pgbench Scale = 0.0669 * DB_Size_Target_MB - 0.5 https://www.cybertec-postgresql.com/en/a-formula-to-calculate-pgbench-scaling-factor-for-target-db-size/
Postgres DBA25 ноября 2024

2. Старт нагрузочного тестирования

cd /postgres/pg_expecto/sh/load_test

./load_test_start.sh

Мониторинг работы нагрузочного тестирования:

tail -f load_test.log

TIMESTAMP : 20-02-2026 11:25:01  :  OK : СБОР ДАННЫХ ПО НАГРУЗОЧНОМУ ТЕСТУ
TIMESTAMP : 20-02-2026 11:25:01  :  OK : Текущий проход: 15
...
TIMESTAMP : 20-02-2026 11:35:01  : ИТЕРАЦИЯ : 15 СЕССИЙ pgbench : 22
TIMESTAMP : 20-02-2026 11:35:03  :  OK : ИТЕРАЦИЯ pg_bench ЗАВЕРШЕНА

Штатное завершение нагрузочного тестирования

TIMESTAMP : 20-02-2026 11:35:03  :  OK : СБОР ДАННЫХ ПО НАГРУЗОЧНОМУ ТЕСТУ - ОСТАНОВЛЕН
TIMESTAMP : 20-02-2026 11:35:03  :  OK : ФЛАГ ОСТАНОВКИ НАГРУЗОЧНОГО ТЕСТА = 1
TIMESTAMP : 20-02-2026 11:35:03  :  OK : ОЧИСТКА ТАБЛИЦЫ pgbench_history
TIMESTAMP : 20-02-2026 11:35:05  :  OK : НАГРУЗОЧНЫЙ ТЕСТ ЗАВЕРШЕН

Ручная остановка нагрузочного тестирования

./load_test_stop.sh

3. Формирование отчета по нагрузочному тестированию

cd /postgres/pg_expecto/sh/performance_reports

./load_test_report.sh

Результирующие файлы для формирования отчетов

-8
  • _1.settings.txt : Конфигурация СУБД и инфраструктуры.
  • _2.postgresql_vmstat.txt: Статистические данные по производительности и ожиданиям СУБД и метрикам vmstat.
  • _3.1.prompt.txt: Промпт для нейросети DeepSeek для получения детального сводного отчета по нагрузочному тестированию.
  • _3.2.prompt.short.diff.txt: Шаблон промпта для нейросети DeepSeek для получения краткого сравнительного отчета по результатам экспериментов.
  • _3.3.prompt.diff.txt: Шаблон промпта для нейросети DeepSeek для получения детального сравнительного отчета по результатам экспериментов.
  • 1.1.postgresql.wait_event_type.txt: 1. СТАТИСТИЧЕСКИЙ АНАЛИЗ ОЖИДАНИЙ СУБД
  • 1.2.vmstat.performance.txt: 2.ТРЕНДОВЫЙ АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ vmstat
  • 1.3.wait_event_type_vmstat.txt: 3. СТАТИСТИЧЕСКИЙ АНАЛИЗ ОЖИДАНИЙ СУБД и МЕТРИК vmstat
  • 1.4.wait_event_type_pareto.txt.txt: 4. ДИАГРАММА ПАРЕТО ПО WAIT_EVENT
  • 1.5.queryid_pareto.txt: 5. ДИАГРАММА ПАРЕТО ПО QUERYID
  • 2.N.vmstat_iostat_XX.txt: 1. СТАТИСТИЧЕСКИЙ АНАЛИЗ ПОДСИСТЕМЫ IO по дисковому устройству XX
  • scenario.N.queryid.wait_event_type.txt: ИСТОРИЯ ВЫПОЛНЕНИЯ И СОБЫТИЙ ОЖИДАНИЯ тестового сценария N
  • x.iostat_XX.txt: Исходные данные по метрикам iostat для дискового устройства XX
  • x.postgresql.cluster_performance.txt: Исходные данные по производительности и ожиданиям СУБД
  • x.shared_buffers.txt: Исходные данные по метрикам shared_blks_*
  • x.vm_dirty.txt: Исходные данные по метрикам vm_dirty*
  • x.vmstat.txt: Исходные данные по метрикам vmstat

4. Применение промптов для формирования сводных отчетов с помощью DeepSeek

4.1 Детальный сводный отчет по нагрузочному тестированию.

-9

4.2 Краткий сравнительный отчет по результатам экспериментов.

-10

4.3 Детальный сравнительный отчет по результатам экспериментов.

-11

Практические примеры применения

Послесловие: От данных — к решениям

Комплекс pg_expecto v.7 автоматизирует рутину: он берет на себя запуск тестов, циклическое изменение нагрузки и сбор исчерпывающей статистики — от событий ожидания до состояния грязных страниц в памяти. Но главная ценность этого инструмента раскрывается в связке с DeepSeek.

Вместо того чтобы вручную изучать десятки файлов с графиками и логами, вы получаете готовые аналитические выводы. Промпты (_3.*.prompt.txt), сгенерированные по итогам тестов, позволяют DeepSeek выступить в роли эксперта, который:

  1. Находит узкие места, интерпретируя диаграммы Парето и статистику ожиданий.
  2. Сравнивает эксперименты, указывая, какая настройка конфигурации дала реальный прирост, а какая — привела к деградации.
  3. Экономит часы работы, превращая «сырые» метрики vmstat и iostat в конкретные рекомендации по настройке PostgreSQL и инфраструктуры.

Практический итог: Использование pg_expecto v.7 + DeepSeek — это переход от гаданий «что пошло не так» к четкому алгоритму «нагрузили — измерили — получили отчет с решением». Это ускорение диагностики и повышение качества настройки базы данных.