Аналитика производительности (Performance Insights)
Описание
Функциональность доступна только для редакций Enterprise и Enterprise для ERP-систем.
Описание
В СУБД Pangolin реализован сбор данных активности текущих сессий с заданной периодичностью на определенную глубину по времени. Периодичность сбора данных обеспечивается созданием фонового процесса. Данные собираются с заданным в настройках периодом, по умолчанию раз в секунду.
Путь к папке, в которой сохраняются файлы с данными, может быть задан в настройках (значение по умолчанию ${PGDATA}/pg_perf_insights).
Для последующего анализа собранной статистики можно сформировать отчет с указанием временного диапазона. Отчет сохраняется в формате HTML. Описание и примеры разделов отчета представлены в разделе «Описание разделов отчета по аналитике производительности Pangolin» документа «Справочная информация».
Настройка
Конфигурационные параметры
Для применения внесенных изменений настроечных параметров необходимо выполнить перезагрузку.
При изменении пути к папке хранения файлов необходимо перенести содержимое старой папки в новую.
Настройка параметров для аналитики производительности осуществляется в файле postgresql.conf для конфигурации standalone, в файле postgres.yml для конфигурации cluster:
Параметр | Значение по умолчанию | Описание |
|---|---|---|
|
| Включает или выключает функциональность |
|
| Включает или выключает сбор данных. После изменения настроек параметра требуется выполнить одно из предложенных действий:
|
|
| Задает периодичность сбора данных в миллисекундах. Минимальное значение |
|
| Задает количество итераций сбора данных активности текущих сессий, хранящихся в оперативной памяти. Определяет время хранения данных активности текущих сессий в оперативной памяти. Время определяется количеством сборов данных (
Внимание! При значении параметра |
|
| Задает количество итераций сбора данных активности текущих сессий, хранящихся в файлах (на диске). Определяет время хранения данных активности текущих сессий в файлах (на диске). Время определяется количеством сборов данных (
Внимание! В СУБД Pangolin этот параметр применяется только при использовании формата по умолчанию ( |
| Задает путь к папке, в которую сохраняются файлы с полученными данными (значение по умолчанию Внимание! Рекомендуется задать директорию хранения, находящуюся за пределами директории с данными СУБД ( В противном случае возможна потеря статистики при повторной инициализации кластера, например, при восстановлении из резервной копии. | |
|
| Включает или выключает маскирование параметров запроса, параметров соединения и имени пользователя. Возможные значения параметра - Внимание! Возникновение предупреждения формата |
В СУБД Pangolin были добавлены следующие параметры конфигурации для оптимизации структуры хранения данных Performance Insights:
Параметр | Значение по умолчанию | Описание |
|---|---|---|
|
| Задает ожидаемый объем общей памяти, заменяя собой ограничение по количеству сохраняемых выборок ( По умолчанию этот параметр равен Внимание! Если указан параметр При ненулевом значении |
|
| Задает формат файла, используемый для хранения данных:
|
|
| Задает размер распакованного блока данных, хранимых в одном файле. Допустимые значения – |
|
| Задает максимальный размер папки с данными. |
|
| Задает уровень сжатия для алгоритмов хранения со сжатием. |
Функции
Для работы с данными по аналитике производительности СУБД Pangolin применяются следующие функции:
pg_stat_get_activity_history— возвращает набор записей с данными об активности сессий в определенный момент времени;pg_stat_get_activity_and_lock_status_history— возвращает данные активности текущих сессий вместе с данными блокировок (если они имеются) и затраченными ресурсами (CPU, IO);pg_stat_get_activity_history_last— возвращает набор записей с данными об активности сессий в последний период обновления истории;pg_lock_status_history— возвращает набор записей с информацией о блокировках в определенный момент времени;pg_stat_activity_history_reset— функция для управления сохраненными данными, которая полностью очищает историю;pg_stat_activity_and_lock_status_history_report— формирует отчет из собранных данных.
По умолчанию функции по аналитике производительности может вызвать суперпользователь или пользователь, у которого есть привилегии групповой роли pg_read_all_perfinsight.
Описание функций (входные параметры / возвращаемые значения) и примеры использования представлены в отдельном документе «Справочная информация» раздел «Функции для аналитики производительности Pangolin».
Сбор данных
Для сбора данных в СУБД Pangolin создается дочерний процесс, в цикле которого происходит периодический опрос статистики активности и блокировок.
В дочернем процессе с заданной периодичностью собирается информация, связанная с текущей активностью серверных процессов:
- информация об активности текущих серверных процессов (набор полей, аналогичный набору полей представления
pg_stat_activity, дополнен полем с идентификатором запросаquery_idи полем со временем сбора информацииsample_time); - информация о блокировках, удерживаемых активными серверными процессами (набор полей, аналогичный набору полей представления
pg_locks, дополнен полем со временем сбора информацииsample_time).
Сохранение данных в памяти
Полученные записи сохраняются в shared memory.
Записи, у которых временная метка превышает интервал времени относительно текущего момента, сохраняются на диск в файл и удаляются из памяти.
Интервал времени в данном случае определяется периодом сбора данных умноженным на интервал хранения в памяти (performance_insights.sampling_period * performance_insights.num_samples_in_ram).
Файлы с полученными данными сохраняются в папку, путь к которой задается параметром конфигурации performance_insights.directory.
Сохранение данных на диск
Файлы с записями, у которых временная метка превышает интервал времени относительно текущего момента, удаляются с диска.
Интервал времени в данном случае определяется произведением суммы интервалов хранения в памяти и на диске на период сбора ((performance_insights.num_samples_in_ram + performance_insights.num_samples_in_files) * performance_insights.sampling_period).
При получении сигнала остановки процесса (SIGQUIT или SIGTERM) записи из оперативной памяти сохраняются в файл.
Управление
Отключение функциональности
Функциональность отключается значением параметра конфигурации performance_insights.enable = off.
Доработки
К ключевым доработкам Performance Insights относятся: