Ситуация, когда при запуске регламентной процедуры закрытия месяца в 1С:ERP 2.4 работа всех остальных пользователей практически парализуется, является классической проблемой для высоконагруженных систем. Даже если аппаратные ресурсы сервера (процессор, память, диски) на первый взгляд кажутся свободными, пользователи могут наблюдать задержки при открытии списков и проведении документов, увеличивающиеся с 2 до 40 секунд. Разберем по шагам, почему это происходит и как настроить систему для комфортной совместной работы.
Первым делом проанализируем лицензионные ограничения. Если вы используете лицензию на сервер 1С:Предприятие (ПРОФ), необходимо помнить, что один рабочий процесс rphost может использовать не более 12 ядер процессора. Рассмотрим важный нюанс: платформа считает именно логические ядра (потоки). Если на вашем сервере включена технология Hyper-Threading (HT), то 12 логических ядер превращаются всего в 6 физических.
Когда запускается расчет себестоимости, он максимально утилизирует доступные ему 12 потоков. В результате для работы других пользователей, сеансы которых находятся в этом же рабочем процессе, ресурсов практически не остается. Выясним причину «мнимого» благополучия в диспетчере задач: общая загрузка процессора может быть 50-60%, но это происходит потому, что один процессор (сокет) загружен на 100%, а второй простаивает, так как рабочий процесс 1С не может «перешагнуть» лимит ядер или неэффективно распределяет нагрузку между физическими сокетами.
Одной из самых тяжелых операций при закрытии месяца является решение системы линейных уравнений (СЛУ) при расчете себестоимости. По умолчанию программа может пытаться использовать все доступные ресурсы, что и вызывает тормоза. Проанализируем настройки в самой 1С:ERP. Перейдем в раздел настроек параметров операций закрытия месяца и найдем параметры управления многопоточностью.
Разберем, какие значения стоит установить для стабилизации системы:
0,1 или 0,01, если это допустимо вашей учетной политикой.Рассмотрим пример того, как могут выглядеть настройки в протоколе расчета, если система перегружена:
- Количество потоков при решении СЛУ: 0 (авто)
- Максимальное количество одновременно выполняемых заданий записи: 5
- Использовать платформенный механизм решения СЛУ: Да
Смена "0" на фиксированное число — это первый шаг к устранению "фризов" всей базы.
Работа СУБД напрямую влияет на отзывчивость 1С. Рассмотрим две важнейшие настройки Max Degree of Parallelism (MAXDOP) и Cost Threshold for Parallelism. Если MAXDOP установлен в значение "0", SQL Server может использовать все доступные ядра для выполнения одного тяжелого запроса (например, из процедуры закрытия месяца), что мгновенно блокирует доступ другим коротким запросам пользователей.
Выполним рекомендации экспертов по настройке SQL для 1С:
MAXDOP = 1. Это заставит каждый запрос выполняться в рамках одного потока, что предотвращает избыточные ожидания типа CXPACKET.MAXDOP равным 1/4 или 1/2 от количества ядер одного физического процессора (но не более 8) и обязательно измените Cost Threshold for Parallelism со стандартных 5 на 50.Также проанализируем состояние базы TempDB. При расчете себестоимости ERP активно использует временные таблицы. Убедимся, что:
TempDB соответствует количеству ядер (обычно 8 файлов достаточно).Посмотрим на ситуацию архитектурно. Если сервер терминалов (RDP), сервер 1С и SQL находятся на одной физической машине без виртуализации, они начинают жестко конкурировать за общие ресурсы: кэш процессора, шину памяти и дисковый ввод-вывод.
Проанализируем поведение системы: когда 1С начинает расчет, она активно использует процессор. В это же время RDP-сессии пользователей также требуют процессорного времени для отрисовки интерфейса. Даже при низкой общей загрузке ЦП, возникают микро-очереди, которые пользователь ощущает как "замирание" интерфейса.
Рекомендуемая стратегия:
SELECT program_name, net_transport
FROM sys.dm_exec_sessions AS t1
LEFT JOIN sys.dm_exec_connections AS t2 ON t1.session_id=t2.session_id
WHERE t1.program_name LIKE '%1C%'
Если в колонке net_transport вы видите Shared Memory, значит связь настроена максимально быстро.
Часто причиной необъяснимых тормозов является энергосбережение. Разберем, как это влияет на 1С:ERP. Процессоры Xeon имеют базовую частоту и частоту Turbo Boost. Если в Windows установлен план электропитания "Сбалансированный", процессор постоянно "прыгает" между частотами, что создает задержки.
Необходимо выполнить следующие действия:
rphost.Проанализируем регламентные операции в SQL Server. Обновление статистики и перестройка индексов должны выполняться ежедневно. Однако закрытие месяца в ERP генерирует огромное количество записей во временные таблицы и меняет данные в регистрах себестоимости и партий. Стандартная статистика может устаревать прямо в процессе расчета. При критическом росте объема базы данных для облегчения регламентных процедур может выполняться многопоточная свёртка 1С:ERP, которая позволяет параллельно очистить старые записи регистров.
Убедитесь, что в свойствах базы данных SQL Server включена опция Auto Update Statistics. В некоторых случаях помогает принудительное обновление статистики для проблемных таблиц (регистры накопления СебестоимостьТоваров, ВыручкаИСебестоимостьПродаж) непосредственно перед запуском закрытия месяца.
Тормоза при закрытии месяца в ERP — это комплексная проблема распределения ресурсов. Мы выяснили, что основными рычагами влияния являются:
Последовательное применение этих шагов позволяет снизить нагрузку на систему и обеспечить комфортную работу пользователей даже в моменты выполнения тяжелых регламентных операций.