Перейти к основному содержимому

Конфигурирование Pangolin для использования с 1С

В статье приведены рекомендуемые для установки параметры СУБД Pangolin и окружения продукта. Установка данных параметров позволяет повысить скорость выполнения операций (например, закрытие месяца). Сравнивались значения с описываемыми параметрами и параметрами по умолчанию в среде 1С. Материалы применимы при конфигурировании Pangolin для повышения производительности при работе с платформой 1С:Предприятие в среде операционных систем на базе ядра Linux. В рамках статьи рассмотрены изменения параметров, настройка которых может зависеть от типа установленного кластера СУБД. Параметры СУБД можно применять как последовательно по статье, так и в произвольном порядке.

ХарактеристикиЗначение
Версия продуктаPangolin 7.x и выше
ОбластьPostgreSQL 17
Платформа1С:Предприятие
Операционная системаНа базе ядра Linux
примечание

Вопросы конфигурирования параметров компонентов продукта, в зависимости от варианта развернутой конфигурации кластера (например, standalone или cluster) выходят за рамки данной статьи.

Требования к стенду и уровням доступа​

Для применения настроек необходимы следующие права и доступы:

  • Права root или postgres для изменения конфигурации
  • Доступ к файлам конфигурации PostgreSQL (postgresql.conf, pg_hba.conf)
  • Доступ к файловой системе для создания временного хранилища tmpfs
Важно

Перед изменением конфигурации рекомендуется создать резервную копию файлов postgresql.conf и pg_hba.conf.

Оптимизация параметров с помощью Pangolin Tuner​

Для автоматического расчета и настройки части параметров, описанных в статье, рекомендуется применение утилиты Pangolin Tuner, которая предоставляет гибкое и эффективное управление конфигурацией СУБД и оптимизацию её производительности путем тонкой настройки параметров. Инструмент определяет оптимальные значения параметров в зависимости от профиля рабочей нагрузки (OLAP, OLTP, 1С) и характеристик стенда (CPU, RAM, тип дисков), что позволяет сократить время ручной настройки и снизить риски ошибок конфигурации.

Настройки учитывают особенности взаимодействия с платформой 1С:Предприятие, что позволяет оптимизировать производительность для типичных сценариев использования, и содержат рекомендации по параметрам с фиксированными значениями. Подробности о принципах работы Pangolin Tuner, профилях использования и формулах расчета параметров приведены в разделе о работе утилиты.

Общие параметры серверов СУБД​

В таблице приведены параметры общих настроек сервера СУБД, применяемые на данном этапе:

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
synchronous_modetruefalseданетнетОтключение синхронной репликации для минимизации транзакционных задержек
track_io_timingoffonдададаЗамер времени операций ввода-вывода с постоянным запросом текущего времени у операционной системы
Применение изменений
ALTER SYSTEM SET synchronous_mode = false;
ALTER SYSTEM SET track_io_timing = on;
SELECT pg_reload_conf();
примечание

Параметр synchronous_mode применяется только для standalone конфигурации.

Настройка параметров клиентских сеансов​

Параметры клиентских сеансов влияют на безопасность и работу с временными таблицами.

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
row_securityonoffдададаОпределяет, должна ли выдаваться ошибка при применении политик защиты строк. При значении on политики применяются в обычном режиме. Со значением off запросы, ограничиваемые минимум одной политикой, будут выдавать ошибку. Рекомендуется не использовать политики при настройке сеанса для корректной работы 1С с правами доступа
temp_tablespacesотсутствуетуказать путь до отдельного каталогададанетУказывает пространство, в котором будут создаваться временные объекты (временные таблицы и индексы временных таблиц). При наличии отдельного диска с быстрой передачей данных рекомендуется перенести объекты на него
Применение изменений
ALTER SYSTEM SET row_security = off;
SELECT pg_reload_conf();

Настройка параметров подключений​

Параметры подключений определяют количество одновременных соединений и безопасность.

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
max_connections100500500100нетОпределяет максимальное число одновременных подключений к серверу базы данных. Для cluster конфигурации max_connections может быть скорректировано по факту нагрузки
sslonoffoffoffнетРежим SSL-подключения к серверу баз данных. Рекомендуется отключить для снижения нагрузки на CPU (~ 5–15 %) и уменьшения задержек в проведении операций 1С. При этом данные между СУБД и клиентом будут передаваться в открытом виде
warning

Отключение SSL снижает безопасность соединения.

Применение изменений
ALTER SYSTEM SET max_connections = 500; -- standalone
ALTER SYSTEM SET max_connections = 100; -- cluster
ALTER SYSTEM SET ssl = off;
SELECT pg_reload_conf();

Настройка параметров безопасности и аудита​

Параметры безопасности определяют режим аудита действий пользователей и маскирования данных в запросах.

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
pgaudit.lognonenoneдададаУказывает, какие классы операторов будут регистрироваться при ведении журнала аудита сессии (классы операторов, события, функции и команды). Значение none отключает аудит событий, что исключает нагрузку при ведении журнала аудита. При необходимости аудита можно указать несколько классов через запятую (например, READ, WRITE, DDL), для исключения определенного класса требуется внести значение со знаком минус (-) перед ним
masking_modedisabledoffдададаСвойство экземпляра, устанавливающее режим маскирования данных в запросах пользователей. Значение disabled (по умолчанию) маскирует только пароли и параметры функций, принимающих пароли; full — маскирует параметры во всех обрабатываемых запросах SELECT/INSERT/UPDATE/DELETE, CREATE/ALTER ROLE/USER, включая пароли; off — полностью отключает механизм маскирования. Для применения измененного значения требуется перезагрузка сервера
warning

Значение off для свойства masking_mode полностью отключает маскирование, пароли и конфиденциальные данные могут отображаться в журнале сервера в открытом виде.

Для свойства masking_mode настройка применяется в конфигурационном файле postgresql.conf с последующей перезагрузкой сервера:

masking_mode = off
sudo systemctl restart postgresql
Применение изменений
ALTER SYSTEM SET pgaudit.log = 'none';
SELECT pg_reload_conf();

Настройка оперативной памяти​

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

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
shared_buffers128MB25...40% от RAMдададаОбъем памяти, который будет использовать сервер баз данных для буферов в разделяемой памяти. Pangolin использует кэш операционной системы, поэтому выделять для shared_buffers более 40 % оперативной памяти (RAM) не рекомендуется
temp_buffers8MB32...256MBдададаМаксимальный объем памяти, выделяемой для временных буферов в каждом сеансе. Буферы создаются только в рамках сеанса и используются исключительно для работы с временными таблицами. Сеанс выделяет временные буферы по мере необходимости до достижения предела, заданного параметром
work_mem4MB32...128MBдададаМаксимальный объем памяти, который будет использоваться во внутренних операциях при обработке запросов (например, для сортировки или хеш-таблиц), прежде чем будут задействованы временные файлы на диске. В сложных запросах параллельно могут выполняться несколько операций сортировки или хеширования, при этом объем памяти может использоваться в каждой операции. При выборе значения рекомендуется учитывать объем памяти, так как он может многократно превосходить значение work_mem
maintenance_work_mem64MB4*work_memдададаЗадает максимальный объем памяти для операций обслуживания базы данных, в части выполнения операций VACUUM, CREATE INDEX, ALTER TABLE ADD FOREIGN KEY. В сеансе может выполняться только одна операция и обычно не запускаются параллельно, значение может превышать объем work_mem. Увеличение этого значения может привести к ускорению операций очистки и восстановления БД из копии
Важно

При изменении объема памяти shared_buffers необходимо выполнить перезагрузку PostgreSQL:

sudo systemctl restart postgresql
Пример применения изменений для 16 ГБ RAM
ALTER SYSTEM SET shared_buffers = '4GB';
ALTER SYSTEM SET temp_buffers = '64MB';
ALTER SYSTEM SET work_mem = '64MB';
ALTER SYSTEM SET maintenance_work_mem = '256MB';

Настройка WAL (Write-Ahead Logging)​

Параметры WAL влияют на производительность записи и восстановление данных. Рекомендуется применять при количестве транзакций более 1000 в секунду.

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
fsyncononдаданетПринудительно синхронизирует изменения файлов на диске, рекомендуется не менять значение, так как СУБД будет стараться записывать изменения на диск физически, выполняя системные вызовы fsync(). Это дает гарантию, что кластер баз данных сможет вернуться в согласованное состояние после сбоя оборудования или операционной системы. Выключение параметра приводит к росту производительности, но появляется значительный риск потери всех данных при выключении питания и других сбоях работы СХД
wal_sync_methodfsyncfdatasyncдададаПринудительно синхронизирует изменения WAL-файла на диске. Если режим fsync отключен, данный параметр не действует, так как принудительное сохранение изменений WAL не производится. При значении fsync выполняется полная синхронизация файла WAL со всеми метаданными, при выборе рекомендуемого значения fdatasync данные синхронизируются без временных атрибутов файла, что снижает издержки на операции ввода-вывода
wal_buffers-1 (авто)16MBдададаОбъем разделяемой памяти, используемый для буферизации данных WAL. Содержимое буферов WAL записывается на диск при фиксации каждой транзакции. Значение в несколько мегабайт может увеличить быстродействие при записи на нагруженном сервере, при множественной фиксации транзакций
synchronous_commitonoffдаданетОпределяет, после завершения какого уровня обработки WAL сервер оповещает пользователя об успешном выполнении операции. Отключение параметра создает риск потери последних нескольких транзакций, но гарантирует целостность базы данных
checkpoint_completion_target0.90.7...0.9дададаЗадает целевое время для завершения процедуры контрольной точки, как коэффициент общего времени между контрольными точками. То есть запись данных, измененных в оперативной памяти, но не записанных на диск во время контрольной точки, растягивается на определенный период времени. Это необходимо, чтобы избежать заполнения системы ввода-вывода при резкой интенсивной записи страниц
min_wal_size80MB> 0.3 * shared_buffersдададаПока WAL занимает на диске меньше этого объема, старые WAL-файлы в контрольных точках перерабатываются, а не удаляются. Это позволяет зарезервировать достаточно места для WAL, чтобы справиться с резкими скачками использования WAL, например, при выполнении больших пакетных заданий
max_wal_size1GB>= 1 * shared_buffersдададаМаксимальный размер, до которого может вырастать WAL во время автоматических контрольных точек. Это мягкий предел, при котором последние файлы WAL в объеме max_wal_size и еще один дополнительный файл WAL сохраняются
commit_delay01000дададаДобавляет паузу перед выполнением сохранения WAL. Эта задержка может увеличить быстродействие при фиксировании множества транзакций, позволяя зафиксировать большее число транзакций за одну операцию сохранения WAL, если система нагружена достаточно сильно и за заданное время успевают зафиксироваться другие транзакции. Однако этот параметр также увеличивает задержку максимум до commit_delay при каждом сохранении WAL. При включенном fsync пауза не добавляется
commit_siblings55даданетМинимальное число одновременно открытых транзакций, при котором будет добавляться задержка commit_delay
Применение изменений
ALTER SYSTEM SET wal_sync_method = 'fdatasync';
ALTER SYSTEM SET wal_buffers = '16MB';
ALTER SYSTEM SET synchronous_commit = off;
ALTER SYSTEM SET checkpoint_completion_target = 0.8;
ALTER SYSTEM SET min_wal_size = '1200MB';
ALTER SYSTEM SET max_wal_size = '4GB';
ALTER SYSTEM SET commit_delay = 1000;
ALTER SYSTEM SET commit_siblings = 5;
SELECT pg_reload_conf();
warning

Отключение synchronous_commit повышает производительность, но увеличивает риск потери данных при сбое питания.

Настройка фоновой записи​

Параметры bgwriter влияют на эффективность фоновой записи измененных страниц.

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
bgwriter_delay200ms20msдададаЗадает задержку между раундами активности процесса фоновой записи. Во время раунда этот процесс осуществляет запись измененных данных из оперативной памяти на диск или в основное хранилище. Данный процесс ответственен за синхронизацию страниц, расположенных в shared_buffers с диском. Большие значения могут привести к возрастанию нагрузки на процесс фиксации изменений в журнале (checkpoint) и процессов, обслуживающих сессии. Малое значение приведет к полной загрузке одного из ядер
bgwriter_lru_maxpages100400дададаЗадает максимальное число буферов, которое сможет записать процесс фоновой записи за раунд активности. При нулевом значении фоновая запись отключается. Необходимо учесть, что на контрольные точки, которые управляются отдельным вспомогательным процессом, это не влияет
bgwriter_lru_multiplier2.04.0дададаЧисло измененных данных, записываемых в очередном раунде, зависит от числа новых буферов, выделенных серверными процессами в предыдущих раундах. Для формирования предполагаемого количества буферов на следующий раунд средняя недавняя потребность умножается на параметр bgwriter_lru_multiplier. Процесс фоновой записи записывает данные на диск и освобождает буферы до тех пор, пока число свободных буферов не достигнет целевого значения. При этом количество буферов, записываемых за раунд, ограничивается параметром bgwriter_lru_maxpages. Увеличение данного множителя обеспечивает устойчивость к резким скачкам потребности в буферах, тогда как уменьшение параметра оставляет часть операций записи для серверных процессов
Применение изменений
ALTER SYSTEM SET bgwriter_delay = 20ms;
ALTER SYSTEM SET bgwriter_lru_maxpages = 400;
ALTER SYSTEM SET bgwriter_lru_multiplier = 4.0;
SELECT pg_reload_conf();

Настройка автоочистки​

Корректная работа автоочистки является критичной для поддержания производительности.

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
autovacuumononдададаУправляет состоянием фонового процесса (autovacuum daemon), запускающего автоочистку. По умолчанию он включен, далее для корректной работы автоочистки необходимо установить параметр track_counts в значение on. Автоочистку можно отключить для отдельных таблиц, изменив параметры хранения. Также, если этот параметр отключен, система будет запускать процессы автоочистки, когда это необходимо для предотвращения зацикливания идентификаторов транзакций
track_countsononдаданетВключает сбор статистики активности в базе данных. Этот параметр по умолчанию включен, так как собранная информация требуется процессу автоочистки
autovacuum_max_workers3CPU_ядер / 2 - 4дададаЗадает максимальное число процессов автоочистки (не считая процесс, запускающий автоочистку), которые могут выполняться одновременно. Значение параметра увеличивается пропорционально количеству выполняемых в системе запросов на запись
autovacuum_naptime1min20sдададаЗадает минимальную задержку между двумя запусками автоочистки для отдельной базы данных. Процесс автоочистки проверяет базу данных через заданный интервал времени и выдает команды VACUUM и ANALYZE, когда это требуется для таблиц этой базы
Применение изменений
ALTER SYSTEM SET autovacuum = on;
ALTER SYSTEM SET track_counts = on;
ALTER SYSTEM SET autovacuum_max_workers = 2;
ALTER SYSTEM SET autovacuum_naptime = '20s';
SELECT pg_reload_conf();

Пример расчета для 8 ядер CPU:

autovacuum_max_workers = 8 / 2 - 4 = 0 (минимум 2)

Настройка ресурсов ядра и асинхронности​

Параметры влияют на работу с файлами и параллельными операциями ввода-вывода.

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
max_files_per_process10008000дададаЗадает максимальное число файлов, которые могут быть одновременно открыты каждым серверным подпроцессом, и перехватывает управление подсчетом на более раннем этапе, до подключения ядра. Если ядро реализует безопасное ограничение по процессам, это дает гарантию изоляции. При возникновении ошибок «Too many open files» необходимо уменьшить это число
effective_io_concurrency1200 (SSD) / N (RAID0/1) / N-1 (RAID5)дададаЗадает допустимое число параллельных операций ввода-вывода, которое сообщает СУБД о том, сколько операций ввода-вывода могут быть выполнены одновременно. Чем больше это число, тем больше операций будет пытаться выполнить СУБД параллельно в отдельном сеансе. Допустимые значения находятся в интервале от 1 до 1000, а нулевое значение отключает асинхронные запросы ввода-вывода. В настоящее время этот параметр влияет только на сканирование массива (битовой карты)
Применение изменений
ALTER SYSTEM SET max_files_per_process = 8000;
ALTER SYSTEM SET effective_io_concurrency = 200;
SELECT pg_reload_conf();

Примеры значений effective_io_concurrency:

  • SSD: 200;
  • HDD RAID0/RAID1 (4 диска): 4;
  • HDD RAID5 (5 дисков): 4.

Настройка планировщика запросов​

Параметры влияют на выбор планов выполнения запросов оптимизатором.

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
effective_cache_size4GB< RAM - shared_buffersдададаЗадает оценку размера дискового кеша операционной системы, доступного для обработки запросов. Данное значение напрямую влияет на выбор плана выполнения: высокие значения способствуют применению индексного сканирования (Index Scan), а низкие — выбору последовательного сканирования (Seq Scan). Параметр не управляет выделением разделяемой памяти СУБД и не резервирует память в операционной системе, применяясь исключительно для расчетов стоимости операций чтения
random_page_cost4.01.1...1.3 (SSD) / 1.5...2.0 (RAID HDD)дададаЗадает относительную стоимость произвольного чтения данных, записанных на диске, используемую оптимизатором при построении планов выполнения запросов. Рекомендуемое значение коррелирует с производительностью дисковой системы (seek time): для быстрых накопителей значение следует снизить (не менее 1.0). Завышенная стоимость смещает приоритет оптимизатора в сторону полного последовательного чтения таблиц
from_collapse_limit811дададаОпределяет предельное количество таблиц в списке FROM, при котором происходит объединение вложенных запросов с внешним. Снижение данного параметра уменьшает время планирования, что потенциально ухудшает эффективность выполнения запросов. При значении, равном geqo_threshold или превышающем его, активируется генетический оптимизатор, который может формировать неоптимальные планы
join_collapse_limit811дададаЗадает максимальное количество элементов в списке FROM, до достижения которого планировщик будет сносить в него явные конструкции JOIN, за исключением FULL JOIN. При меньших значениях сокращается время планирования, но план запроса может стать менее эффективным
geqoononдададаВключает или отключает модуль для генетической оптимизации запросов. В производственной среде генетическую оптимизацию лучше не отключать, более гибко управлять GEQO можно с помощью переменной geqo_threshold
geqo_threshold1212дададаЗадает минимальное число элементов во FROM, при котором для планирования запроса будет привлечен генетический оптимизатор. Для более простых запросов рекомендуется использовать обычный планировщик, производящий полный перебор, так как для запросов со множеством таблиц такой подход потребует значительных временных затрат
Применение изменений
ALTER SYSTEM SET effective_cache_size = '12GB';
ALTER SYSTEM SET random_page_cost = 1.2;
ALTER SYSTEM SET from_collapse_limit = 11;
ALTER SYSTEM SET join_collapse_limit = 11;
ALTER SYSTEM SET geqo = on;
ALTER SYSTEM SET geqo_threshold = 12;
SELECT pg_reload_conf();

Параметры для платформы 1С​

В таблице приведены параметры, необходимые для корректной работы 1С:Предприятие.

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
optimize_for_1CoffonдададаВключает поддержку 1С на развернутом экземпляре Pangolin. Активирует набор специфических оптимизаций для платформы 1С:Предприятие
max_connections100500даданетОпределяет максимальное число одновременных подключений к серверу СУБД. Для корректной работы значение должно покрывать количество активных пользователей, а также резервировать место для фоновых задач и сервисных соединений
standard_conforming_stringsonoffдададаОпределяет, будет ли символ обратной косой черты в обычных строковых константах ('...') восприниматься по стандарту SQL. Приложения могут выяснить, как обрабатываются строковые константы, проверив этот параметр. Наличие этого параметра может быть признаком того, что поддерживается синтаксис спецпоследовательностей (E'...'). Рекомендуется использовать, если приложению нужно воспринимать косую черту как спецсимвол
escape_string_warningonoffдададаПри включении параметра сервер выдает предупреждение, если символ обратной косой черты встречается в обычной строковой константе (с синтаксисом '...') и параметр standard_conforming_strings отключен
max_locks_per_transaction64150...256дададаОпределяет максимальное количество блокировок, резервируемое для каждой транзакции. Отдельные транзакции способны захватывать большее число объектов при наличии свободного места в общей таблице. Параметр не регулирует количество блокируемых строк, так как ограничения на уровне строк отсутствуют. Общий размер таблицы блокировок определяет предельное количество объектов (таблиц и других структур), которые могут быть заблокированы одновременно
Применение изменений
ALTER SYSTEM SET optimize_for_1C = on;
ALTER SYSTEM SET max_connections = 500;
ALTER SYSTEM SET standard_conforming_strings = off;
ALTER SYSTEM SET escape_string_warning = off;
ALTER SYSTEM SET max_locks_per_transaction = 256;
SELECT pg_reload_conf();

Настройка параллелизма​

Параметры параллелизма применяются при наличии свободных ядер CPU для выполнения параллельных рабочих процессов и оперативной памяти.

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
max_worker_processes8N (количество CPU)дададаЗадает максимальное число фоновых процессов, которое можно запустить в текущей системе. Этот параметр можно задать только при запуске сервера. Для резервного (slave) сервера значение этого параметра должно быть больше или равно значению на ведущем (master) сервере, так как при меньшем значении на резервном сервере не будут разрешены запросы
max_parallel_workers_per_gather20.5 * max_worker_processesдададаЗадает максимальное число рабочих процессов, которые могут запускаться одним узлом Gather (Сбор) или Gather Merge (Сбор со слиянием). Параллельные рабочие процессы берутся из совокупности процессов, контролируемой параметром max_worker_processes, в количестве, ограничиваемом значением max_parallel_workers. Рекомендуется обратить внимание на недоступность количества запрашиваемых процессов во время выполнения. Параллельные запросы могут потреблять значительно больше ресурсов, чем не параллельные, так как каждый рабочий процесс является отдельным и оказывает влияние на систему как дополнительный пользовательский сеанс
max_parallel_workers8N (количество CPU)дададаЗадает максимальное число рабочих процессов, которое система сможет поддерживать для параллельных операций. Значение параметра, превышающее max_worker_processes, не будет действовать: параллельные рабочие процессы берутся из общего числа процессов, предельное значение которого задает параметр max_worker_processes
max_parallel_maintenance_workers20.5 * max_worker_processesдаданетЗадает максимальное число рабочих процессов, которые могут запускаться одной служебной командой. В настоящее время параллельные процессы может использовать только CREATE INDEX при построении B-дерева индекса и VACUUM без указания FULL. Параллельно выполняемые служебные команды не должны потреблять значительно больше памяти, чем равнозначные непараллельные операции. Это отличает служебные команды от параллельных запросов, при выполнении которых ограничения ресурсов действуют на отдельные рабочие процессы
Пример применения изменений для 8 ядер CPU
ALTER SYSTEM SET max_worker_processes = 8;
ALTER SYSTEM SET max_parallel_workers_per_gather = 4;
ALTER SYSTEM SET max_parallel_workers = 8;
ALTER SYSTEM SET max_parallel_maintenance_workers = 4;
SELECT pg_reload_conf();

Настройка дополнительных модулей​

В таблице приведены параметры встроенных модулей СУБД Pangolin, обеспечивающих мониторинг производительности, тонкую настройку планов выполнения запросов и своевременное обновление статистики таблиц.

ПараметрЗначение по умолчаниюРекомендуемое значениеstandaloneclusterНастройка с помощью Pangolin TunerОписание
shared_preload_libraries''plantunerдаданетПозволяет указать список библиотек, загружаемых при запуске PostgreSQL. В данном случае добавляется расширение plantuner, обеспечивающее указания для планировщика запросов относительно применения или игнорирования конкретных индексов. После обновления значения параметра shared_preload_libraries рекомендуется произвести перезагрузку PostgreSQL
plantuner.fix_empty_tableoffonдададаПозволяет расширению plantuner обнулять число страниц и кортежей в пустых таблицах, не содержащих блоков данных
Применение изменений
ALTER SYSTEM SET shared_preload_libraries = 'plantuner';
ALTER SYSTEM SET plantuner.fix_empty_table = on;
SELECT pg_reload_conf();

Проверка применения настроек​

После применения всех параметров выполните проверку:

SHOW shared_buffers;
SHOW max_connections;
SHOW work_mem;

Проверка группы параметров через системное представление:

SELECT name, setting, unit, pending_restart
FROM pg_settings
WHERE name IN (
'shared_buffers', 'work_mem', 'max_connections',
'effective_cache_size', 'random_page_cost'
);
примечание

Команду SELECT pg_reload_conf(); достаточно выполнить один раз после внесения требуемых изменений через ALTER SYSTEM SET. Параметр synchronous_mode (standalone) также применяется перечитыванием конфигурации.

Проверка текущих значений параметров является обязательным этапом настройки, подтверждающим корректность загрузки конфигурации. Регулярный мониторинг параметров позволяет своевременно выявлять отклонения и обеспечивает стабильную работу СУБД под целевой нагрузкой 1С:Предприятие. При внесении изменений рекомендуется проверять столбец pending_restart, значение которого указывает на необходимость перезагрузки сервера для вступления настроек в силу.

Заключение​

Таким образом, применение рассмотренных параметров СУБД Pangolin позволяет повысить производительность подсистемы при работе с платформой 1С:Предприятие: ускорить выполнение операций, оптимизировать использование оперативной памяти и дисковой подсистемы, а также настроить параллелизм и фоновые процессы. Для автоматического расчета части параметров рекомендуется использовать утилиту Pangolin Tuner. Перед применением изменений создается резервная копия конфигурационных файлов, а после внесения изменений выполняется проверка применения настроек.

Дополнительная информация​

  1. Описание оптимизации работы с 1С
  2. Опыт использования утилиты pgcopydb: кейс миграции базы данных 1С
  3. Утилита Pangolin Tuner. Тюнинг параметров
  4. Введение в MVCC и автоочистку
  5. Подсказки для настройки параметров автоочистки
  6. Журналирование и аудит
  7. Принцип работы автоочистки
  8. Параллельный анализ таблиц
  9. Планирование запросов