Приложение I. Настройка Postgres Pro для решений

Вы можете установить и использовать Postgres Pro с решениями в клиент/серверной модели. Для оптимальной производительности и стабильности измените следующие параметры в конфигурационном файле postgresql.conf сервера Postgres Pro:

  1. Увеличьте максимально возможное число одновременных подключений к серверу баз данных до 1000. Решения могут открывать большое количество соединений, даже если все они не нужны, так что рекомендуется разрешить на сервере не менее 500 подключений.

    max_connections = 1000
  2. Чтобы временные таблицы работали корректно, измените следующие параметры:

    • Увеличьте размер буфера для временных таблиц:

      temp_buffers = 32MB
    • Увеличьте число допустимых в одной транзакции блокировок таблиц или индексов до 256:

      max_locks_per_transaction = 256

      Обычно решения 1C используют множество временных таблиц. Такие таблицы в большом количестве используются каждым обслуживающим процессом. Закрывая соединение, Postgres Pro пытается удалить все временные таблицы в одной транзакции, при этом транзакция может запрашивать множество блокировок. Если число блокировок превысит значение max_locks_per_transaction, транзакция прервётся и оставит за собой множество потерянных временных таблиц.

  3. Включите экранирование символом обратной косой черты для всех строк и выключите предупреждение об использовании этого символа:

    standard_conforming_strings = off
    escape_string_warning = off
  4. Задайте параметр effective_cache_size равным минимум половине объёма ОЗУ, доступного в системе. Эффективность оптимизатора запросов Postgres Pro зависит от выделенного ему объёма ОЗУ.

  5. Оптимизируйте планирование запросов с помощью расширений online_analyze и plantuner:

    • Добавьте online_analyze и plantuner в переменную shared_preload_libraries.

      shared_preload_libraries = 'online_analyze, plantuner'
    • Включите автоматический анализ временных таблиц при их модификации:

      online_analyze.table_type = 'temporary'
    • Настройте оптимизатор Postgres Pro для улучшенного планирования запросов с недавно созданными пустыми таблицами:

      plantuner.fix_empty_table = 'on'
    • Отключите подробные сообщения расширения online_analyze:

      online_analyze.verbose = 'off'

Подсказка

Для увеличения производительности также можно использовать технологию RAID, применяя RAID-контроллеры с энергонезависимым кешем и бесперебойным блоком питания (UPS). Так как эта технология обеспечивает согласованность данных при отказе оборудования, вы можете ускорить запись на диск, отключив параметр fsync. Но даже с включённым fsync производительность может увеличиться с увеличением объёма кеша RAID-контроллера и количества дисков в RAID-массиве.