Проблема низкой производительности системы при закрытии месяца в 1С:ERP является одной из самых частых и сложных. В этот период нагрузка на сервер возрастает в несколько раз из-за массового расчета себестоимости, распределения затрат и формирования проводок. Разберем подробно, почему это происходит и какие шаги необходимо предпринять, чтобы обеспечить стабильную работу пользователей и системы в целом.
Рассмотрим ситуацию, когда MS SQL Server и сервер 1С установлены на одной физической или виртуальной машине. В этом случае возникает жесткая конкуренция за оперативную память и ресурсы процессора. Если вы ограничили SQL Server, например, 100 ГБ ОЗУ, это не гарантирует отсутствие тормозов, если операционной системе не хватает ресурсов для кэширования и работы rphost.
Проанализируем распределение памяти. При достижении порога в 80% занятого ОЗУ операционная система начинает активно использовать файл подкачки (своп), что мгновенно снижает производительность дисковой подсистемы. Рекомендуется оставлять не менее 15-20% оперативной памяти свободной для нужд ОС и системных процессов. Если памяти не хватает, необходимо либо физически добавить планки ОЗУ, либо пересмотреть лимиты SQL.
Важный нюанс: настройка Lock Pages in Memory. Обязательно предоставьте учетной записи, от которой запущен SQL Server, право на закрепление страниц в памяти через групповые политики Windows (secpol.msc). Это предотвратит «вымывание» кэша SQL-сервера в файл подкачки, когда сервер 1С начинает потреблять много ресурсов.
Для корректной работы 1С:ERP крайне важны тонкие настройки СУБД. Выясним, какие параметры напрямую влияют на скорость закрытия месяца:
MAXDOP = 1. Это заставляет SQL Server выполнять запрос в рамках одного процессорного ядра, что исключает накладные расходы на синхронизацию потоков, которые часто становятся причиной блокировок в ERP.Auto Update Statistics Asynchronously в свойствах базы данных. Это позволит системе не ждать обновления статистики перед выполнением запроса, что критично при массовом создании временных таблиц во время расчета себестоимости.Пример скрипта для базовой настройки параллелизма:
EXEC sys.sp_configure N'show advanced options', N'1';
RECONFIGURE;
EXEC sys.sp_configure N'max degree of parallelism', N'1';
RECONFIGURE;
При закрытии месяца 1С генерирует множество фоновых заданий. Если все пользователи работают в рамках одного процесса rphost, то тяжелые вычисления могут привести к «замиранию» сессий остальных сотрудников. Проанализируем, как правильно настроить кластер:
Распределим нагрузку, увеличив количество рабочих процессов. Рекомендуется настроить параметры так, чтобы на один rphost приходилось не более 15-20 пользователей. Также установите лимит памяти на один рабочий процесс. Это позволит системе автоматически перезапускать «раздувшиеся» процессы, не давая им захватить всю память сервера.
Посмотрим на параметры Безопасный расход памяти за один вызов. Установка этого лимита поможет предотвратить падение всего сервера из-за одного некорректного запроса при расчете сложных распределений затрат.
Часто причиной тормозов становится использование процессоров с низкой тактовой частотой, таких как старые серии Xeon E5. 1С очень чувствительна к производительности на одно ядро. Если частота процессора ниже 3.0 ГГц, сложные алгоритмы ERP будут выполняться медленно независимо от количества ядер.
Проанализируем работу дисков. Для 1С:ERP критически важно вынести TempDB на максимально быстрые носители (NVMe SSD). Закрытие месяца активно использует временные таблицы, и любая задержка в TempDB тормозит всю систему. Также убедитесь, что файлы базы данных (MDF) и логи транзакций (LDF) разнесены по разным физическим дискам.
Если «до запуска закрытия месяца проблем нет», а потом все «висит», стоит проверить план обслуживания. Перед процедурой закрытия и после неё обязательно выполняйте:
Пример команды для обновления статистик:
USE [Имя_Вашей_Базы];
GO
EXEC sp_updatestats;
GO
Если технические настройки исчерпаны, а ресурсов все равно не хватает, рассмотрим организационные решения:
1С:ERP.ERP в настройках параметров системы можно регулировать количество потоков расчета себестоимости. Попробуйте уменьшить их количество, если сервер «задыхается» от нагрузки на CPU, или увеличить, если дисковая подсистема и процессор имеют запас мощности.Таким образом, решение проблемы «тормозов» при закрытии месяца требует комплексного подхода: от аппаратной настройки серверов и параметров MS SQL Server до оптимизации настроек самой платформы 1С:Предприятие и регламента работ.