Как устранить сильные задержки при работе и проведении документов в 1С:Управление торговлей 11?

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

Ситуация, когда информационная база 1С начинает «тормозить» при проведении даже небольших документов, является критической для бизнеса, особенно в конфигурации 1С:Управление торговлей 11 (УТ 11). При работе 100–120 пользователей нагрузка на сервер возрастает экспоненциально, и стандартных настроек «по умолчанию» становится недостаточно. Рассмотрим подробно, как диагностировать причины низкой производительности и какие шаги предпринять для оптимизации системы.

Анализ аппаратных ограничений и лицензирования

Проанализируем конфигурацию сервера, указанную в проблеме: Intel Xeon E5-1650 v4 (6 физических ядер, 12 потоков) и 120 активных пользователей. Для УТ 11, которая является одной из самых требовательных конфигураций на платформе 1С, такая нагрузка на данный процессор является предельной. Выясним почему:

  1. Соотношение пользователей к ядрам: В среднем для комфортной работы в УТ 11 рекомендуется выделять одно физическое ядро на каждые 7–10 активных пользователей. В данном случае на 6 ядер приходится 120 человек, что создает очередь к процессору.
  2. Ограничение лицензии ПРОФ: Важно помнить, что сервер 1С версии ПРОФ имеет жесткое ограничение — он использует не более 8 рабочих процессов (потоков). Даже если ваш процессор имеет 12 или 24 потока, платформа 1С просто не сможет эффективно распределить нагрузку за пределами этого лимита. В таких случаях выходом является переход на лицензию КОРП.

Разберем также вопрос дисковой подсистемы. Для базы объемом 4 Гб, которая легко помещается в кэш оперативной памяти (128 Гб), критически важной остается скорость записи лога транзакций (.ldf) и работа с базой tempdb. Проверим, используются ли серверные SSD (NVMe или SAS SSD). Если база и логи лежат на обычных HDD, проведение документов всегда будет упираться в скорость дисковых операций в момент фиксации транзакции.

Настройка электропитания (High Performance)

Одной из самых частых «невидимых» причин тормозов 1С является динамическое изменение частоты процессора. Рассмотрим, как это влияет на работу: процессоры Xeon v4 активно используют технологии энергосбережения. 1С генерирует «рваную» нагрузку — короткие, но интенсивные запросы. Если сервер находится в режиме «Сбалансированный», процессор не успевает мгновенно поднять частоту, что вызывает микро-фризы.

Что необходимо сделать:

  1. В настройках BIOS сервера установить режим Maximum Performance.
  2. В операционной системе (Windows Server) в разделе «Электропитание» выбрать схему «Высокая производительность».

Оптимизация SQL Server для работы с 1С

Настройки SQL Server «из коробки» не подходят для эффективной работы 1С. Проанализируем ключевые параметры, которые системный администратор должен изменить в первую очередь:

Параметр MAXDOP (Maximum Degree of Parallelism): По умолчанию SQL Server пытается распараллелить выполнение одного тяжелого запроса на все доступные ядра. В архитектуре 1С это часто приводит к взаимным блокировкам (deadlocks). Рекомендуется установить значение MAXDOP = 1. Это заставит SQL выполнять один запрос в рамках одного потока, что стабильнее для 1С.

Параметр Cost Threshold for Parallelism: Если вы все же решили оставить MAXDOP отличным от 1, необходимо поднять порог стоимости параллелизма с 5 до 50. Это предотвратит попытки SQL распараллеливать мелкие запросы, которые быстрее выполнить в один поток.

Настройка TempDB: Это «черновик» SQL Server, куда 1С постоянно сбрасывает временные таблицы. Разберем шаги по оптимизации:

Регламентное обслуживание базы данных

Если один и тот же документ проводится за разное время, это явный признак проблем с индексами и статистикой. Выясним, какие операции должны выполняться по расписанию в SQL Server:

  1. Обновление статистики: SQL Server строит план выполнения запроса на основе данных о распределении значений в таблицах. Если статистика устарела, SQL выберет неоптимальный план (например, вместо поиска по индексу начнет сканировать всю таблицу), что приведет к «повешиванию» системы.
  2. Реорганизация и перестроение индексов: При интенсивной торговле индексы быстро фрагментируются. Регулярное (ежедневное или еженедельное) обслуживание индексов значительно ускоряет выборку данных.
  3. Очистка процедурного кэша: Иногда после массовых обновлений или изменений метаданных полезно выполнять команду DBCC FREEPROCCACHE, чтобы SQL перестроил планы запросов.

Использование инструментов диагностики 1С

Не будем действовать методом «тыка». Проанализируем ситуацию с помощью встроенных инструментов. Рассмотрим замер производительности:

Запустим 1С в режиме конфигуратора, откроем «Отладка» — «Замер производительности». Проведем проблемный документ и посмотрим, какая процедура занимает больше всего времени. Часто проблема кроется в ПриЗаписи или ОбработкаПроведения.

Если замер показывает, что время уходит на выполнение запросов к БД, используем SQL Profiler. Разберем основные события, которые стоит отслеживать:

Это позволит найти конкретный «тяжелый» запрос, который тормозит всю систему. Если в запросе фигурируют расширения, проверим их влияние, даже если автор утверждает, что они «не связаны с проведением».

Настройка рабочего сервера 1С

Поскольку используется лицензия ПРОФ и база весит всего 4 Гб, проверим настройки в консоли администрирования серверов 1С:

Количество соединений на рабочий процесс: По умолчанию один процесс rphost может обслуживать множество соединений. При 120 пользователях имеет смысл создать 2–4 рабочих процесса вручную или настроить параметр «Количество ИБ на процесс». Это позволит более эффективно использовать оперативную память и снизит риск падения всех пользователей при сбое одного процесса.

Безопасный расход памяти: Проанализируем объем памяти, потребляемый процессами rphost. В случае утечек памяти (что случалось в версии 8.3.15), установим лимит перезапуска процессов, чтобы они не «съедали» все 128 Гб и не уходили в файл подкачки.

Исключения антивируса и системные настройки

Проверим, не мешает ли антивирусное ПО работе сервера. Необходимо добавить в исключения (проверку «на лету»):

В завершение проанализируем сетевые протоколы. Если SQL и 1С на одном сервере, убедимся, что используется протокол Shared Memory. Это исключит накладные расходы сетевого стека при передаче данных между сервером приложений и сервером баз данных.

← На главную