pg_expecto – Статистический анализ производительности и ожиданий СУБД PostgreSQL
pg_expecto – это комплексный инструмент для глубокого статистического анализа и тестирования производительности PostgreSQL. Релиз знаменует появление мощного и свободно распространяемого решения для администраторов баз данных и разработчиков.
Основная задача pg_expecto – предоставить администраторам и разработчикам инструментарий для выявления узких мест и оптимизации работы PostgreSQL. В отличие от некоторых современных решений, pg_expecto сознательно фокусируется на надёжных и проверенных статистических методах, что обеспечивает полный контроль и прозрачность процесса анализа.
Ключевые особенности
- Всесторонний статистический и корреляционный анализ – глубокий анализ производительности PostgreSQL и событий ожидания (
wait_event_type/wait_event), установление корреляции между внутренним состоянием СУБД и общей производительностью системы. - Мониторинг операционной системы – сбор и анализ метрик ОС с помощью утилит
vmstatиiostat, что позволяет напрямую увязать нагрузку на диск, память и процессор с поведением базы данных. - Встроенное нагрузочное тестирование – проведение нагрузочных тестов для оценки поведения базы данных под давлением и определения пределов её производительности.
- Построение отчетов для Excel – экспорт результатов анализа в форматы, совместимые с Microsoft Excel, для дальнейшей обработки, визуализации и представления данных.
- Обширная база знаний – передача пользователям большого объёма материалов по результатам экспериментов с проектом pg_hazel, служащих ценным источником знаний и практических примеров.
- Проактивный мониторинг – формирование репрезентативных профилей производительности систем наблюдения посредством разработки стандартизированных файлов метрических данных. Регистрация события снижения производительности СУБД служит триггером инициирования стандартных и приоритетных инцидентов реагирования.
- Интеграция с нейросетью – автоматическая подготовка промптов для нейросети с целью анализа статистически обработанных метрик производительности СУБД и инфраструктуры.
- Версия 7 – статистическая обработка метрик, промпты для подготовки отчетов нейросетью.
Системные требования
Для работы pg_expecto требуются установленные утилиты vmstat и iostat.
Важно
Для работы pg_expecto требуются установленные библиотеки расширений pg_stat_statements и pg_wait_sampling.
Значение параметра shared_preload_libraries должно быть:
shared_preload_libraries = 'pg_stat_statements, pg_wait_sampling'
Порядок библиотек важен.
Установка
- Распаковать zip-архив проекта (
pg_expecto-main.zip). В результате будет подготовлена папка: pg_expecto-main. - Скопировать содержимое на целевой сервер СУБД в папку:
/tmp/pg_expecto. - Используя учётную запись postgres, на целевом сервере СУБД создать сервисную папку:
mkdir /postgres/pg_expecto - Скопировать инсталлятор:
cp /tmp/pg_expecto/pg_expecto_install.sh /postgres/pg_expecto/ - Перейти в папку для начала установки:
cd /postgres/pg_expecto - Подготовить скрипт инсталлятора:
chmod 750 pg_expecto_install.sh - Запустить инсталлятор:
./pg_expecto_install.sh
Мониторинг работоспособности pg_expecto
Для просмотра лога работы используйте команду:
tail -f /postgres/pg_expecto/sh/pg_expecto.log
Использование
Подробный пример использования pg_expecto v.7 с нейросетью DeepSeek описан в статье:
PG_EXPECTO v.7 + DeepSeek: полный цикл диагностики производительности PostgreSQL — от нагрузочного тестирования до разбора инцидентов
Контакты
- Ринат Сунгатуллин: kznalp@yandex.ru
- Дзен-канал : https://dzen.ru/kznalp
- Телеграм-канал : https://t.me/pg_expecto
- Max
Статус проекта
Текущая версия: 7.4.3
📜 Лицензия
Начиная с версии 8.0, проект pg_expecto распространяется под лицензией Apache License 2.0.
Предыдущие версии (до 12.04.2026) доступны под лицензией MIT.
Полный текст лицензии находится в файле LICENSE в корне репозитория.