Как подобрать сервер и ускорить работу 1С:ЗУП 3.1 при медленном расчете зарплаты?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

При переходе с редакции 2.5 на конфигурацию 1С:Зарплата и управление персоналом 3.1 пользователи часто сталкиваются с резким падением производительности. База данных на несколько сотен сотрудников, которая ранее быстро работала на скромном сервере, начинает зависать при расчете начислений, заполнении документов и формировании отчетов. Разберем основные причины такого поведения, проанализируем узкие места серверного оборудования и рассмотрим пошаговые методы оптимизации системы.

Анализ причин медленной работы ЗУП 3.1

Архитектура конфигурации 1С:ЗУП 3.1 существенно отличается от предыдущих редакций. Выясним, почему старое оборудование перестает справляться с нагрузкой:

  1. Динамический расчет данных: В редакции 3.1 практически все кадровые срезы, права на отпуска и расчетные базы вычисляются «на лету» при помощи объемных запросов с большим количеством временных таблиц и соединений. Это создает многократную нагрузку на оперативную память и дисковую подсистему СУБД.
  2. Последовательный однопоточный расчет: Процедура расчета заработной платы по конкретному документу или подразделению выполняется в рамках одного серверного потока. Наличие множества ядер процессора с низкой частотой не ускоряет работу отдельного расчетчика — критически важна производительность на одно ядро.
  3. Сложная модель прав доступа: Механизмы ограничения прав на уровне записей (RLS) в разы усложняют генерируемый SQL-код, если они настроены неоптимально.

Анализ и устранение узких мест в оборудовании

Рассмотрим конфигурацию сервера, которая часто оказывается «бутылочным горлышком». Выделение устаревших виртуальных ядер (например, Xeon с частотой 2.0–2.4 ГГц) и малого объема оперативной памяти (менее 16–32 ГБ) гарантированно приводит к длительным задержкам.

  1. Процессорная подсистема: Для комфортной работы 1С:ЗУП 3.1 первостепенное значение имеет высокая тактовая частота на ядро (Single-Thread Performance). Рекомендуется использовать процессоры с базовой частотой от 3.5 ГГц и высокой частотой в Turbo-бусте. Большое количество медленных ядер не дает прироста скорости для интерактивных расчетов.
  2. Оперативная память: Для сервера, совмещающего СУБД MS SQL Server и сервер 1С, минимально необходимый объем для базы от 500 сотрудников составляет 32–64 ГБ. Это позволяет кэшировать активные таблицы в памяти и избегать частых обращений к диску.
  3. Дисковая подсистема: Базы данных, файлы журналов транзакций, служебная база tempdb и каталоги временных файлов должны располагаться на высокоскоростных твердотельных накопителях (NVMe SSD или Enterprise SATA/SAS SSD с высоким показателем IOPS).
  4. Виртуализация: Если сервер 1С и СУБД развернуты внутри гипервизора, убедимся в отсутствии переподписки (overcommit) по процессору и памяти. В ряде случаев физическое разделение или перенос сервера 1С на физическое «железо» позволяет исключить задержки на переключение контекста гипервизора.

Диагностика и профилирование нагрузки

Прежде чем приступать к закупке оборудования или изменению настроек, снимем показатели производительности:

  1. Замер базовой производительности: Запустим тест Гилева (TPC-1C) для оценки скорости работы связки «процессор — память — диск». Показатель ниже 15–20 баллов указывает на явные аппаратные или конфигурационные проблемы.
  2. Мониторинг счетчиков производительности: Используем системный монитор (PerfMon) на хосте и виртуальной машине. Проанализируем счетчики длины очереди диска, процент загрузки процессора, процент времени работы диска и доступный объем свободной памяти в момент выполнения тяжелых начислений.

Оптимизация настроек MS SQL Server

Разберем параметры СУБД, оказывающие прямое влияние на скорость работы временных таблиц и расчетных алгоритмов ЗУП 3.1:

  1. Ограничение параллелизма (MAXDOP): Для рабочих баз 1С установим параметр Max Degree of Parallelism = 1. Параллельные планы запросов в ЗУП 3.1 часто приводят к неоптимальному распределению нагрузки, блокировкам и высоким ожиданиям CXPACKET.
  2. Настройка базы tempdb: Так как расчетные механизмы активно генерируют временные таблицы, создадим количество файлов данных tempdb, равное числу логических ядер процессора (но не более 8). Все файлы данных tempdb должны иметь одинаковый начальный размер и одинаковый фиксированный шаг авторасширения в мегабайтах.
  3. Мгновенная инициализация файлов: Включим право «Выполнение задач по обслуживанию томов» (SE_MANAGE_VOLUME_NAME) для учетной записи службы SQL Server, чтобы исключить паузы при автоматическом увеличении файлов данных.
  4. Регламентное обслуживание: Настроим ежедневное или еженедельное обновление статистик с параметром FULLSCAN и регулярную реиндексацию таблиц базы данных.

Настройка сервера 1С:Предприятия и операционной системы

Рассмотрим комплекс системных настроек для повышения отзывчивости платформы:

  1. Схема электропитания: В настройках операционной системы Windows Server и в BIOS/UEFI переведем сервер в режим высокой производительности (High Performance). Отключим энергосберегающие состояния ядер (C-States, C1E), чтобы исключить просадки частоты процессора при микропаузах.
  2. Разрядность платформы: Используем исключительно 64-разрядный сервер «1С:Предприятие». При выполнении сложных начислений один процесс rphost может кратковременно потреблять более 4 ГБ памяти, что на 32-разрядном сервере приведет к аварийному завершению рабочего процесса.
  3. Управление рабочими процессами: В консоли администрирования кластера 1С настроим перезапуск рабочих процессов по достижению предельного объема виртуальной памяти, чтобы предотвратить деградацию производительности из-за фрагментации памяти.
  4. Очистка кэша: Регулярно очистим серверный и пользовательский кэш временных файлов 1С, перенеся каталоги AppData\Local\Temp на быстрый SSD-диск.

Оптимизация параметров самой конфигурации ЗУП 3.1

Внутри самой программы также есть настройки, позволяющие снизить нагрузку на сервер:

  1. Отключение автоматического пересчета в формах: В настройках расчета заработной платы отключим автоматический пересчет документа при редактировании строк. Это позволит расчетчикам быстро вносить правки и выполнять расчет только по нажатию кнопки или перед проведением.
  2. Оптимизация регламентных заданий: Отключим неиспользуемые регламентные процедуры (например, автоматическую загрузку классификаторов, проверку новостей, фоновый поиск обновлений) либо перенесем тяжелые задачи (индексацию полнотекстового поиска) на ночные часы.
  3. Контроль версионирования: Если включено версионирование объектов, настроим регламентную очистку устаревших версий документов, чтобы предотвратить разрастание таблиц и замедление записи объектов.
← На главную