Многие системные администраторы и программисты 1С сталкиваются с парадоксальной ситуацией: установлена современная конфигурация 1С:Комплексная автоматизация 2.5 (КА 2.5), сервер оборудован быстрыми дисками SSD M.2, оперативной памяти с избытком, но система работает "как на ручнике". Проведение документов, открытие динамических списков и форм происходит экстремально медленно. При этом диспетчер задач показывает, что процессор загружен всего на 5-10%, а диски и оперативная память далеки от исчерпания своих лимитов.
Давайте разберем по шагам эту проблему и выясним причину "невидимых" тормозов. Мы комплексно проанализируем ситуацию на уровне аппаратного обеспечения, настроек СУБД, кластера 1С и операционной системы. Рассмотрим, какие неочевидные факторы могут загонять систему в ступор.
Первое, на что необходимо обратить внимание — это тактовая частота процессора. Процессор может быть мощным, многоядерным (например, классический серверный Xeon прошлых поколений), но работать на базовой частоте 1.6 ГГц или 2.0 ГГц из-за включенных функций энергосбережения.
Низкая загрузка процессора в диспетчере задач — это иллюзия. Архитектура платформы 1С:Предприятие такова, что процесс рабочего сервера rphost крайне зависим от производительности одного ядра (однопоточной производительности). Сложные алгоритмы КА 2.5 исполняются последовательно в одном потоке. Если частота ядра низкая, этот конкретный поток физически не успевает обрабатывать код. Диспетчер задач показывает низкую общую утилизацию, потому что остальные 15 или 30 ядер просто простаивают, ожидая своей очереди, но для 1С это является жестким "бутылочным горлышком".
Что мы предпримем для решения проблемы:
Одно только это действие способно ускорить тяжелые алгоритмы 1С в 2-3 раза на старых серверах.
Если в качестве СУБД используется MS SQL Server, разберем настройки, критически влияющие на производительность КА 2.5. Выделим несколько ключевых моментов:
1. Распределение оперативной памяти. Если на сервере установлено 48 ГБ ОЗУ, ни в коем случае нельзя отдавать 42 ГБ под нужды SQL, если на этой же машине крутится сервер 1С. Процессам rphost также требуется много памяти. Оставляйте ОС и серверу 1С не менее 16-20 ГБ, иначе начнется активное использование файла подкачки (swapping), что убьет производительность даже на SSD.
2. Протокол Shared Memory. Если сервер 1С и сервер СУБД развернуты на одной физической или виртуальной машине, мы обязательно должны проверить приоритеты сетевых протоколов. В утилите SQL Server Configuration Manager необходимо включить протокол Shared Memory (Общая память) и поставить его первым в списке. Это позволит системам обмениваться данными через ОЗУ, минуя сетевой стек TCP/IP, что кардинально снизит задержки.
3. Степень параллелизма. Для 1С рекомендуется ограничивать параллелизм выполнения запросов на уровне сервера СУБД. Установим параметр Max Degree of Parallelism (MAXDOP) в значение 1 (или максимум 2 для некоторых высоконагруженных сценариев).
4. Версионирование базы данных (RCSI). Современные конфигурации 1С требуют включения механизма версионирования строк, чтобы чтение данных не блокировалось операциями записи. Убедимся, что параметры ALLOW_SNAPSHOT_ISOLATION и READ_COMMITTED_SNAPSHOT для нашей базы данных установлены в значение ON. В противном случае мы получим классические блокировки и длительные ожидания.
5. Настройка системной базы TempDB. Рекомендуется разбить файлы данных базы TempDB на количество, равное количеству логических ядер сервера (оптимально до 8 файлов одинакового размера), чтобы снизить внутреннее ожидание ресурса (PAGELATCH_UP) при создании временных таблиц.
Проанализируем частую ошибку администраторов. При попытке найти виновника тормозов, многие устанавливают флажок "Блокировка регламентных заданий включена" в свойствах информационной базы в консоли кластера 1С. Кажется логичным: мы отключаем фоновые процессы, освобождаем ресурсы.
Однако в тяжелых конфигурациях на управляемых формах (БСП), таких как КА 2.5 или ERP, этот запрет работает как "серпом по производительности". Программный код системы изначально рассчитывает на асинхронное выполнение служебных задач через механизм ФоновыеЗадания.Выполнить(). Если в кластере стоит жесткий запрет, платформа при каждой попытке запуска задания делает несколько неудачных попыток, дожидается таймаутов, и только потом пытается выполнить алгоритм синхронно в текущем сеансе, что вызывает адские зависания интерфейса у пользователя.
Решение: Обязательно снимите блокировку регламентных заданий в консоли кластера. Если нужно отключить конкретный процесс, делайте это внутри пользовательского режима 1С в разделе "Регламентные и фоновые задания", снимая галочку "Включено" у конкретного задания.
Рассмотрим влияние самой технологической платформы. В ветке 8.3.18.x наблюдались серьезные баги и утечки памяти, приводящие к деградации скорости при работе с КА 2.5 и БП 3.0.
Если ваша конфигурация удовлетворяет требованиям совместимости, рекомендуется повысить мажорную версию платформы. Переход на стабильные релизы ветки 8.3.20.x или 8.3.21.x часто решает проблемы необъяснимых зависаний.
Также посмотрим на Журнал регистрации. Огромный файл журнала, особенно если он работает в старом текстовом формате, вызывает существенные задержки при каждой транзакции (записи документов).
SQLite.Если железо и платформа настроены, но проблема осталась, проанализируем дополнительные внешние факторы:
1. Исключения антивируса. Антивирусное ПО с защитой в реальном времени может перехватывать каждую операцию чтения/записи базы СУБД, временных файлов 1С и журнала регистрации. В счетчиках производительности это может выглядеть как норма (нет пиков по CPU/Диску), но на деле 1С "ждет" антивирус. Папки кластера сервера 1С, каталоги с файлами СУБД (mdf/ldf/ndf) и папку временных файлов `Temp` необходимо добавить в доверенные зоны и исключить из сканирования на лету.
2. Отключение протокола IPv6. Иногда сервер 1С предприятия при определенных настройках сети пытается долбиться к сервисам по протоколу IPv6. Возникают таймауты сетевых соединений (фризы). Помогает полное отключение поддержки протокола IPv6 в свойствах сетевого адаптера и, при необходимости, в реестре Windows.
3. Свойства сетевой карты. Зайдите в свойства сетевого адаптера на сервере. Отключите функции агрессивного энергосбережения, такие как Green Ethernet или Energy Efficient Ethernet. Они уводят адаптер в "сон" в моменты микропауз, задерживая пакеты 1С.
4. Влияние сложной системы RLS. В конфигурации КА 2.5 очень мощная, но тяжелая система ограничений доступа на уровне записей (RLS). Если у рядового пользователя настроен сложный коктейль из ролей и профилей доступа, платформа 1С при каждом открытии списка формирует гигантский SQL-запрос для проверки прав. Проведите эксперимент: дайте проблемному пользователю полные административные права. Если тормоза ушли — проблема не в сервере, а в перегруженном профиле безопасности пользователя, который необходимо оптимизировать. Для устранения задержек из-за ограничений прав при формировании отчетов можно использовать расширение для выполнения отчетов в привилегированном режиме.
Применяя эти шаги последовательно, вы сможете выявить и устранить причину "невидимых" тормозов, и 1С:Комплексная автоматизация 2.5 начнет работать быстро и плавно, максимально утилизируя ресурсы вашего сервера.