Инструкция pg_profile - расширение мониторинга профилей нагрузки

«Пост-Грэс-Кью-Эл» свободная объектно-реляционная СУБД. Обмениваемся вопросами и ответами о её работе.
Ответить
AntonS
Сообщения: 130
Зарегистрирован: Пт июн 03, 2022 8:51 am

Инструкция pg_profile - расширение мониторинга профилей нагрузки

Сообщение AntonS »

Краткая инструкция

В вопросах производительности разговор с оракловой поддержкой обычно начинался с просьбы прислать отчет автоматического репозитория нагрузки (AWR). Встроенного в PostgreSQL аналога AWR нет. Также существует полезное расширение pg_profile, позволяющее генерировать html отчеты по нагрузке PostgreSQL в привычном виде.

Подробная документация здесь

Начальные условия
Debian 9 (x86-64) в минимальной инсталляции + PostgreSQL 14.5.1 Выполнение всех команд от пользователя root или sudo

Установка необходимых расширений

Код: Выделить всё

postgres=# CREATE EXTENSION dblink;
postgres=# CREATE EXTENSION pg_stat_statements;
Расширению pg_stat_statements потребуется дополнительная разделяемая память, поэтому его надо добавить в shared_preload_libraries файла postgresql.conf, требуется перезагрузка базы данных.

Установка рекомендованных значений параметров файла postgresql.conf
track_activities = on
track_counts = on
track_io_timing = on
track_wal_io_timing = on # Since Postgres 14
track_functions = all

Установка pg_profile

Код: Выделить всё

tar xzf pg_profile-<version>.tar.gz --directory $(pg_config --sharedir)/extension
Необходимо проверить наличие pg_config соответствующей версии.

Код: Выделить всё

postgres=# CREATE SCHEMA profile;
postgres=# CREATE EXTENSION pg_profile SCHEMA profile;
Добавление периодического задания

Код: Выделить всё

0 * * * * /usr/bin/psql "dbname=postgres user=postgres password=* port=5432" -c "SELECT profile.take_sample();"
Примеры команд оздания html отчетов

Код: Выделить всё

psql -Aqtc "SELECT profile.get_report('alpha',4,5)" -o report_alpha_4_5.html
psql -Aqtc "SELECT profile.get_diffreport('alpha',4,5,6,7)" -o dreport_alpha_5_7.html
Аватара пользователя
SQL*Plus
Сообщения: 358
Зарегистрирован: Ср апр 20, 2022 1:09 pm

Re: Инструкция pg_profile - расширение мониторинга профилей нагрузки

Сообщение SQL*Plus »

AntonS писал(а): Вс мар 12, 2023 9:54 am Начальные условия
Debian 9 (x86-64) в минимальной инсталляции ...
А другие дистрибутивы Linux поддерживаются?
Red Hat? SUSE? ...?
AntonS
Сообщения: 130
Зарегистрирован: Пт июн 03, 2022 8:51 am

Re: Инструкция pg_profile - расширение мониторинга профилей нагрузки

Сообщение AntonS »

Поддерживаются. Расширение pg_profile основано только на PL/pgSQL функциях, будет работать со всеми дистрибутивами Linux, с которыми работает PostgreSQL
SShumeev
Сообщения: 10
Зарегистрирован: Ср июн 01, 2022 5:59 pm

Re: Инструкция pg_profile - расширение мониторинга профилей нагрузки

Сообщение SShumeev »

Расширение pg_profile и идущие с ним в связке расширения нужно ставить на все БД в кластере\инстансе ? Или достаточно установить только на БД postgres ?
AntonS
Сообщения: 130
Зарегистрирован: Пт июн 03, 2022 8:51 am

Re: Инструкция pg_profile - расширение мониторинга профилей нагрузки

Сообщение AntonS »

Расширение pg_profile, также как и модуль pg_stat_statements, используемый в разделах статистики SQL pwr отчетов, обычно ставятся только в одной БД postgres, поскольку статистика доступна сразу со всего кластера.
С другой стороны, не-суперпользователям подключение к БД postgres может быть ограничено. Если таким пользователям требуется вызывать функции и делать SELECT-ы из вьюшек расширений pg_profile/pg_stat_statements, то можно установить эти расширение в их БД также.
Аватара пользователя
Valery Yourinsky
Сообщения: 114
Зарегистрирован: Ср май 18, 2022 2:30 pm

Re: Инструкция pg_profile - расширение мониторинга профилей нагрузки

Сообщение Valery Yourinsky »

Антон!

Поздравляю с первой сотней сообщений! :-)

Ура!
Вложения
AntonS-100.png
AntonS-100.png (24.73 КБ) 19798 просмотров
AntonS
Сообщения: 130
Зарегистрирован: Пт июн 03, 2022 8:51 am

Re: Инструкция pg_profile - расширение мониторинга профилей нагрузки

Сообщение AntonS »

За поздравление спасибо :)
Аватара пользователя
Valery Yourinsky
Сообщения: 114
Зарегистрирован: Ср май 18, 2022 2:30 pm

Re: Инструкция pg_profile - расширение мониторинга профилей нагрузки

Сообщение Valery Yourinsky »

На доброе здравие! :-)
Ответить