Почему тормозит 1С:Комплексная автоматизация 2.5 и как ускорить работу системы

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

Работа с тяжелыми конфигурациями, такими как «1С:Комплексная автоматизация 2.5» (КА 2.5) или «1С:ERP», предъявляет высокие требования к серверному оборудованию и качеству настройки системного ПО. Часто стандартных процедур вроде «чистки кэша» или «реиндексации» оказывается недостаточно. Если система «дико тормозит» даже при малом количестве пользователей, проблему нужно искать на стыке аппаратной части, настроек СУБД и особенностей самой конфигурации. Проанализируем ситуацию по шагам и разберем, как выжать максимум производительности из вашего сервера.

Анализ аппаратной части: Процессор и дисковая подсистема

Одной из главных причин низкой производительности в 1С является слабая однопоточная производительность процессора. Рассмотрим, почему это критично. Большинство тяжелых операций в 1С (проведение документов, расчет себестоимости, закрытие месяца) выполняются последовательно в один поток. Если ваш сервер обладает множеством ядер, но каждое из них работает на низкой частоте (например, 1.6–2.0 ГГц), система будет работать медленно, даже если общая загрузка процессора в мониторе ресурсов кажется низкой.

Проанализируем необходимые действия для оптимизации процессора:

  1. Режим электропитания: В настройках Windows Server обязательно выставляем схему «Высокая производительность» (High Performance). По умолчанию ОС может «парковать» ядра процессора или снижать их частоту для экономии энергии, что губительно для 1С.
  2. Настройки BIOS: Выясним причину, почему процессор не выходит на максимальную частоту. Для этого необходимо отключить технологии энергосбережения, такие как C-States, Intel SpeedStep или AMD Cool'n'Quiet. Также рекомендуется протестировать работу с отключенным Hyper-Threading: в некоторых случаях для 1С это дает прирост скорости на 10–15% за счет того, что физическое ядро не делится на два логических потока.
  3. Дисковая подсистема: Переход на SSD или M.2 NVMe — это правильный шаг, но важно убедиться, что диски не перегружены очередями. Разберем распределение данных: базу данных, файлы TempDB и журнал регистрации 1С стоит разносить по разным физическим накопителям, чтобы операции записи не конкурировали друг с другом.

Тонкая настройка MS SQL Server для КА 2.5

Стандартная установка MS SQL Server «из коробки» не подходит для высоконагруженных баз 1С. Рассмотрим ключевые параметры, которые могут кардинально изменить ситуацию с «тормозами».

Параметр MAXDOP (Max Degree of Parallelism): Для баз 1С крайне рекомендуется установить значение 1. Посмотрим на логику: SQL Server пытается распараллелить выполнение одного запроса на несколько ядер. Однако из-за специфики построения запросов платформой 1С это часто приводит к возникновению взаимных блокировок (deadlocks) и ожиданий на ресурсах CXPACKET. Установка значения 1 заставляет сервер выполнять один запрос в рамках одного ядра, что в 99% случаев ускоряет работу 1С.

Мгновенная инициализация файлов (Instant File Initialization): Проверим, включена ли эта опция. Она позволяет SQL Server мгновенно расширять файлы базы данных без заполнения их нулями. Для этого учетной записи, под которой запущена служба SQL, нужно дать право Выполнение задач по обслуживанию томов (Perform volume maintenance tasks) в локальных политиках безопасности Windows.

Настройка базы TempDB: Системная база TempDB — это «песочница» для временных таблиц, которые 1С использует постоянно. Разберем рекомендации по её настройке:

Оптимизация сервера 1С:Предприятие

Проанализируем параметры рабочих процессов 1С. Если на сервере запущен только один процесс rphost, он может стать «бутылочным горлышком», так как вынужден обрабатывать все запросы пользователей и фоновые задания одновременно.

Рассмотрим шаги по оптимизации серверного кластера:

  1. Количество rphost: Если у вас 64-битный сервер, рекомендуется настроить кластер так, чтобы на каждые 15–20 пользователей или на каждые 2–4 ГБ оперативной памяти приходился один рабочий процесс. Это позволит более эффективно распределять нагрузку и изолировать сбои.
  2. Временные каталоги: Выясним, где хранятся временные файлы сервера 1С. По умолчанию это папка профиля пользователя. Высокая нагрузка на чтение/запись в этих каталогах может тормозить систему. Попробуйте перенести переменную TEMP и TMP для службы 1С на самый быстрый доступный диск (например, RAM-диск или выделенный NVMe).
  3. Журнал регистрации: В КА 2.5 журнал регистрации может расти очень быстро. Если он хранится в старом текстовом формате (файлы .lgp), это создает огромную нагрузку на файловую систему при каждом событии. Рекомендуется перевести журнал регистрации в новый формат (SQLite, расширение .lgd).

Особенности «Комплексной автоматизации 2.5» и RLS

Конфигурация КА 2.5 активно использует механизм разграничения прав доступа на уровне записей (RLS). В новых версиях реализован так называемый «Производительный режим» RLS. Разберем, в чем может быть подвох.

При включении этого режима система создает специальные ключи доступа в фоновом режиме. Если сервер «старенький», как указано в ситуации автора, процесс обновления этих ключей может занимать все свободные ресурсы. Проанализируем состояние регистра Обновление ключей доступа к данным. Если там скопились миллионы записей, которые не обрабатываются, работа пользователей в системе будет крайне медленной, так как при каждом запросе к данным система будет пытаться вычислить права «на лету».

Для решения этой проблемы попробуйте:

Работа с кодом и индексами

Иногда причина «тормозов» кроется не в сервере, а в конкретном коде или отсутствии индексов. Посмотрим на пример того, как можно выявить проблемное место с помощью встроенного замера производительности.

Рассмотрим алгоритм действий:

  1. Запустите конфигуратор и включите «Замер производительности».
  2. Выполните действие, которое тормозит (например, открытие формы списка или проведение документа).
  3. Остановите замер и проанализируйте колонку «Чистое время».

Если вы видите, что львиная доля времени уходит на один и тот же запрос, проанализируйте его текст. Часто в КА 2.5 проблемы возникают из-за неоптимальных соединений с виртуальными таблицами (например, получение остатков внутри цикла). Рассмотрим схематичный пример исправления кода:


// ПЛОХО: Запрос в цикле для каждой строки документа
Для Каждого Строка Из Товары Цикл
    Остаток = ПолучитьОстатокНаСкладе(Строка.Номенклатура);
КонецЦикла;

// ХОРОШО: Выгрузка всех товаров во временную таблицу и получение остатков одним запросом
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Номенклатура ПОМЕСТИТЬ ВТ_Товары ИЗ &ТаблицаТоваров;
               |ВЫБРАТЬ Т.Номенклатура, ЕСТЬNULL(Остатки.КоличествоОстаток, 0)
               |ИЗ ВТ_Товары КАК Т
               |ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( , Номенклатура В (ВЫБРАТЬ Номенклатура ИЗ ВТ_Товары)) КАК Остатки";

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

Для КА 2.5 критически важно регулярное обслуживание на уровне SQL Server. Статистика в SQL Server должна быть всегда актуальной, иначе оптимизатор будет выбирать неверные планы выполнения запросов.

Рекомендуется настроить Maintenance Plan, который будет выполнять следующие задачи:

Подводя итог, отметим, что для стабильной работы 1С:КА 2.5 требуется комплексный подход. Начните с настройки электропитания и параметров процессора, затем оптимизируйте MS SQL Server (особенно MAXDOP и TempDB), и только после этого переходите к анализу кода и механизмов RLS. Если сервер физически устарел (частота ниже 2.5–3.0 ГГц), то даже идеальная программная настройка может не дать желаемого комфорта в работе.

← На главную