Ситуация, когда сервер 1С начинает «задыхаться» при увеличении количества активных пользователей до 20–25 человек, является классической для растущего бизнеса. Часто администраторы полагают, что дело только в «старом железе», однако, как показывает практика, корень проблемы лежит в сочетании архитектурных ограничений платформы 1С:Предприятие 8.3, настроек операционной системы и способа подключения пользователей. Разберем подробно, почему текущая конфигурация может не справляться и как правильно подобрать или модернизировать сервер для комфортной работы.
Рассмотрим конфигурацию, которая часто встречается в подобных запросах: процессор Intel Xeon E3-1240 v3 и 32 ГБ оперативной памяти DDR3 ECC. На первый взгляд, процессор с частотой 3.4–3.8 ГГц кажется вполне адекватным. Однако у этой линейки (Xeon E3-1200 v3) есть жесткое аппаратное ограничение — контроллер памяти поддерживает максимум 32 ГБ ОЗУ. В условиях 2019 года и современных конфигураций на базе Библиотеки стандартных подсистем (БСП), таких как решения от 1С-Рарус, этого объема катастрофически мало для терминального сервера (RDP).
Проанализируем потребление ресурсов: каждый пользователь в режиме RDP запускает свой экземпляр 1cv8.exe. Современная тяжелая конфигурация при открытии потребляет от 500 до 800 МБ оперативной памяти. Если каждый из 25 пользователей открывает по 2–3 базы одновременно, суммарная потребность в памяти может достигать 40–50 ГБ, не считая нужд самой операционной системы Windows Server 2012. Как только физическая память заканчивается, система начинает использовать файл подкачки (своп) на диске. Даже при наличии SSD скорость работы падает в десятки раз, что и приводит к открытию баз по 1–2 часа.
Выясним причину, по которой файловые базы (формат *.1cd) перестают работать эффективно при росте числа подключений. В файловом варианте 1С механизм блокировок реализован на уровне всей таблицы. Когда один пользователь записывает документ, остальные вынуждены ждать своей очереди на чтение или запись в этот же файл. При 20 пользователях очередь становится критической.
Кроме того, файловая база крайне чувствительна к стабильности сети и дисковым операциям. Если база расположена на том же сервере, где работают пользователи по RDP, нагрузка на дисковую подсистему возрастает из-за временных файлов и кэша каждого пользователя. Проанализируем типичный сценарий: 10 баз, в каждой из которых постоянно крутятся фоновые задания (индексация, обновление курсов, загрузка классификаторов). В файловом режиме каждое фоновое задание — это отдельный сеанс, который потребляет ресурсы и создает блокировки.
Самым эффективным шагом будет отказ от файлового режима в пользу архитектуры клиент-сервер. Для этого нам понадобится Сервер 1С:Предприятия и СУБД. Рассмотрим варианты реализации:
Postgres Pro, специально оптимизированные под работу с 1С. Это позволит снять ограничения файлового режима на размер таблиц и существенно ускорить выполнение сложных запросов за счет эффективного планировщика задач СУБД.1С (32-разрядный или 64-разрядный). Для 25 пользователей крайне желательно использовать 64-разрядный сервер, так как 32-разрядный процесс ограничен 4 ГБ памяти, что может стать «узким местом» при формировании тяжелых отчетов.Если бюджет на новое железо ограничен, а текущий сервер имеет потолок в 32 ГБ памяти, необходимо отказаться от использования RDP. Рассмотрим, как это работает:
Вместо того чтобы создавать полноценную сессию Windows для каждого сотрудника, мы можем опубликовать базы через веб-сервер (Apache или IIS). Пользователи будут подключаться через Тонкий клиент 1С, установленный на их локальных компьютерах. В этом режиме на сервере не запускается графическая оболочка пользователя, не работают антивирусы в 25 экземплярах и не тратятся ресурсы на отрисовку рабочего стола. Потребление памяти на стороне сервера снижается в 3–5 раз, что позволит текущему Xeon E3-1240 v3 работать вполне комфортно.
Если же принято решение о сборке нового сервера, проанализируем оптимальные характеристики для 25 пользователей в 2019–2020 годах:
1С — это система, критичная к частоте одного ядра (Single-core performance). Выгоднее брать процессоры с частотой от 3.6 ГГц и выше. Например, Intel Xeon E-2200 серии или современные Core i7/i9 для небольших компаний. Количество ядер важно для сервера SQL, но частота важнее для скорости работы интерфейса пользователя.SQL + Server 1C минимальный порог — 64 ГБ. Это позволит выделить 16–24 ГБ под кэш СУБД, а остальное оставить под нужды сервера приложений и ОС.HDD. Только SSD, а еще лучше — NVMe накопители в RAID 1 (зеркало) для надежности. Для баз данных важен показатель IOPS (количество операций ввода-вывода в секунду) и скорость случайного доступа к блокам 4К.Посмотрим на ситуацию из сообщения (9), где антивирус «тормозит» систему. Это происходит из-за того, что защитное ПО пытается сканировать каждый открываемый файл базы данных и временные файлы при каждом обращении 1С. Разберем шаги по настройке исключений:
Необходимо добавить в исключения антивируса:
*.1cd, *.1cl, *.cfl, *.log.%AppData%\Local\1C\1cv8 и %AppData%\Roaming\1C\1cv8.1cv8.exe, rphost.exe, rmngr.exe.Также крайне важно настроить регламентные задания в самой 1С. Посмотрим на пример того, как программно можно управлять регламентными заданиями, чтобы они не запускались одновременно во всех 10 базах, создавая пиковую нагрузку на диск:
// Пример управления регламентными заданиями
Менеджер = РегламентныеЗадания.ПолучитьРегламентныеЗадания();
Для Каждого Задание Из Менеджер Цикл
Если Задание.Метаданные.Имя = "ОбновлениеИндексаПолнотекстовогоПоиска" Тогда
Задание.Использование = Ложь; // Отключаем в рабочее время
Задание.Записать();
КонецЕсли;
КонецЦикла;
Подведем итог. Чтобы ваш сервер перестал «тупить», пройдем по шагам:
1. Переведите базы в клиент-серверный режим. Это решит проблему блокировок и позволит серверу эффективнее использовать процессорное время.
2. Откажитесь от терминального доступа (RDP). Переход на Тонкий клиент через Web-сервер высвободит до 70% оперативной памяти, которой сейчас не хватает.
3. Проверьте диски. Если базы все еще на HDD, замена их на SATA SSD или NVMe даст самый заметный мгновенный прирост скорости.
4. Настройте исключения антивируса. Не позволяйте защитному ПО блокировать работу СУБД и файловых операций 1С.
Соблюдение этих рекомендаций позволит даже на текущем железе (при условии оптимизации потребления памяти) добиться стабильной и быстрой работы 25 пользователей. Если же бюджет позволяет покупку нового сервера, ориентируйтесь на платформы с поддержкой 64 ГБ+ ОЗУ и высокочастотными процессорами.