Перевод информационных баз 1С:Предприятие из файлового режима в клиент-серверный вариант (на связку 1С + PostgreSQL) часто сопровождается неожиданным падением скорости выполнения операций. Ситуация выглядит парадоксально: мощный многоядерный сервер с большим объемом оперативной памяти и быстрыми дисками загружен всего на 5–10%, однако пользователи жалуются на сильные задержки при проведении документов и формировании отчетов, а синтетические тесты производительности показывают критически низкие баллы. Разберем по шагам, почему возникает эта проблема и как комплексно оптимизировать аппаратную часть, операционную систему, СУБД и кластер 1С.
Проанализируем специфику работы платформы 1С. В отличие от веб-серверов или систем аналитики, критические бизнес-операции 1С (проведение документов, расчет себестоимости, запись наборов записей регистров) выполняются строго последовательно в рамках одной транзакции. В этот момент работает только одно процессорное ядро. Если серверный процессор имеет низкую базовую тактовую частоту или находится в режиме экономии энергии, производительность падает в разы.
Для устранения аппаратных задержек выполним следующие настройки:
Static High Performance). Обязательно отключим энергосберегающие состояния процессора C-States (C1E, C3, C6) и технологии динамического снижения частоты Intel SpeedStep (EIST) / AMD Cool'n'Quiet, чтобы ядра не сбрасывали частоту в моменты коротких пауз между транзакциями.CPMMinCores на уровне 100%.Если в сервере установлено два физических процессора, память разделена на NUMA-узлы (Non-Uniform Memory Access). Когда процесс кластера rphost.exe или процесс СУБД postgres.exe обращается к оперативной памяти, физически подключенной к соседнему сокету, обращение идет через межпроцессорную шину UPI/QPI, что резко увеличивает задержки доступа к данным.
Рассмотрим методы оптимизации под NUMA:
Node Interleaving = Disabled).Стандартная конфигурация PostgreSQL рассчитана на универсальные веб-нагрузки и крайне неэффективна для транзакционной логики 1С. Откроем конфигурационный файл postgresql.conf и скорректируем ключевые параметры:
synchronous_commit = off. По умолчанию СУБД сбрасывает журнал предзаписи (WAL) на диск при каждом завершении транзакции. Отключение синхронного сброса ускоряет запись документов в десятки раз, сохраняя целостность базы данных даже при сбое питания.
join_collapse_limit = 20
from_collapse_limit = 20
row_security = off
shared_preload_libraries модули online_analyze и plantuner. Они обеспечивают автоматический сбор статистики по временным таблицам, которые активно создаются в процессе работы 1С.
checkpoint_timeout = 15min
checkpoint_completion_target = 0.9
shared_buffers в размере 25% от общего объема оперативной памяти сервера (для 128 GB это 32 GB), а параметр temp_buffers = 256MB. Обратите внимание: значения в конфигурации чувствительны к регистру единиц измерения (MB, GB).Постоянное сканирование транзакционных логов СУБД и временных файлов кластера 1С антивирусными мониторами или встроенным Windows Defender приводит к катастрофическому падению дисковой скорости.
Добавим в список обязательных исключений антивируса:
ragent.exe, rmngr.exe, rphost.exe, postgres.exe.base, pg_wal / pg_xlog).srvinfo) и временные каталоги пользователей и службы Temp.При переносе сразу нескольких баз конфигураций (УНФ, ЗУП, Бухгалтерия) на один сервер платформа запускает фоновые регламентные задания (индексация полнотекстового поиска, расчет итогов, загрузка курсов валют, проверка контрагентов) для каждой базы одновременно. Это создает постоянную фоновую конкуренцию за блокировки и ресурсы СУБД.
Через консоль администрирования кластера серверов 1С или конфигуратор необходимо отключить неиспользуемые регламентные задания во всех перенесенных базах либо разнести время их запуска на ночные часы.