Рассмотрим ситуацию, когда сервер на базе мощного процессора Intel Core i7-8700K и скоростного SSD Intel Optane начинает «подтормаживать» при работе 30 пользователей в терминальном режиме. Проблема часто кроется не в отсутствии мощности «железа», а в неправильном распределении ресурсов между операционной системой, SQL-сервером и рабочими процессами 1С. Разберем по шагам, как выжать максимум из имеющейся конфигурации.
Проанализируем текущую ситуацию. Мы имеем 32 Гб оперативной памяти, на которой одновременно работают: операционная система Windows Server 2008 R2, MS SQL Server 2014, сервер приложений 1С и 30 активных RDP-сессий. Основная проблема здесь заключается в дефиците ОЗУ и конфликте дисковых операций на медленном системном RAID-1 из HDD.
При 30 пользователях каждая сессия 1cv8.exe может потреблять от 400 до 800 Мб памяти. Умножив это на 30, мы получим около 18–24 Гб только на клиентские приложения. Если прибавить к этому нужды SQL-сервера (которому для базы в 64 Гб желательно иметь хотя бы 32 Гб кэша) и нужды ОС, становится понятно, почему система начинает использовать файл подкачки (swap). Как только данные уходят в своп на медленные диски WD Gold (7200 rpm), интерфейс 1С начинает «замирать».
Выясним причину длинных очередей к диску. В данной конфигурации система и профили пользователей находятся на HDD. 1С:Предприятие при работе в режиме обычных форм (УТ 10.3) активно создает временные файлы и пишет кэш метаданных. Перенесем критические узлы на SSD Intel Optane.
%LOCALAPPDATA%\1C с медленного HDD на SSD. Это можно сделать с помощью символьных ссылок. Рассмотрим пример команды для командной строки:
mklink /d "C:\Users\Username\AppData\Local\1C" "D:\1C_Cache\Username"
Это позволит 1С мгновенно считывать закэшированные формы и конфигурацию.tempdb) должны находиться исключительно на самом быстром диске (в нашем случае — Optane). Проанализируем количество файлов: рекомендуется создать столько файлов tempdb, сколько ядер у процессора (для i7-8700K — 6 файлов), с одинаковым начальным размером.Настроим SQL Server так, чтобы он не конфликтовал с процессами 1С и RDP-сессиями. Посмотрим на ключевые параметры:
1 или 2. Это гарантирует, что один тяжелый отчет не захватит все 6 ядер, парализовав работу остальных пользователей.mdf и ldf без заполнения их нулями, что критично при активной записи.Поскольку сервер 1С и SQL находятся на одной физической машине, мы можем существенно ускорить их взаимодействие. Рассмотрим настройку Shared Memory. Перейдем в консоль администрирования 1С и убедимся, что в строке подключения к серверу баз данных не форсируется протокол TCP/IP. Использование общей памяти исключает накладные расходы на сетевой стек Windows.
Также проанализируем параметры рабочих процессов rphost.exe. В консоли кластера 1С рекомендуется установить «Максимальный объем памяти рабочих процессов». Это предотвратит «раздувание» процессов 1С и принудительно перезапустит их при достижении лимита, освобождая память для системы.
Часто системные администраторы забывают о базовых настройках ОС, которые критичны для процессоров i7. Разберем план электропитания. В Windows Server по умолчанию может стоять режим «Сбалансированный». Это приводит к тому, что ядра процессора «паркуются» или снижают частоту в моменты простоя. Для 1С это оборачивается микрозадержками при открытии форм.
Установите план электропитания «Высокая производительность» (High Performance).
Настроим исключения антивируса. Проанализируем, какие файлы проверяются в реальном времени. В исключения должны попасть:
sqlservr.exe, rphost.exe, rmngr.exe..mdf, .ldf.Выясним причину зависаний «колом». В УТ 10.3 часто используются автоматические блокировки. Если несколько пользователей одновременно проводят документы, возникают ожидания на уровне таблиц SQL. Проанализируем возможность перевода наиболее нагруженных регистров (например, ОстаткиТоваров) на Управляемые блокировки. Это требует работы программиста, но радикально решает проблему «зависаний» при проведении.
Также стоит проверить регламентные задания. Например, «Полнотекстовый поиск» может запускаться каждые 5 минут, создавая пиковую нагрузку на диск и процессор. Если пользователи не пользуются глобальным поиском, эту функцию лучше отключить.
Для стабильной работы 30 пользователей на одной машине мы рекомендуем следующее:
Следуя этим шагам, вы обеспечите плавную работу 1С даже в условиях высокой нагрузки на интерфейс.