Как правильно выбрать и настроить сервер для 1С при переходе с файлового режима на SQL СУБД

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

Переход с файлового режима работы «1С:Предприятие» на клиент-серверную архитектуру (SQL) — это важнейший шаг в развитии ИТ-инфраструктуры любого растущего предприятия. Особенно остро этот вопрос встает, когда объем базы данных увеличивается, растет количество пользователей в терминальном режиме (RDP), а распределенные информационные базы (РИБ) начинают генерировать колоссальные объемы транзакций при обмене данными.

В этой статье мы подробно проанализируем ситуацию, когда типовая база 1С:Розница объемом около 7 Гб с 60 узлами РИБ и 20–30 активными пользователями RDP RemoteApp начинает испытывать серьезные задержки в работе. Мы разберем по шагам, какое серверное железо выбрать, чтобы получить максимальную производительность, и какие критические настройки СУБД и операционной системы необходимо выполнить, чтобы дорогостоящее оборудование не простаивало впустую.

Разберем дилемму: Высокая тактовая частота (Core i9) против серверной надежности (Intel Xeon / AMD EPYC)

Один из самых частых вопросов, возникающих при выборе процессора для сервера 1С: «Правда ли, что потребительский Intel Core i9 работает с 1С быстрее, чем серверный Intel Xeon?»

Ответ на этот вопрос имеет двоякую природу и требует детального технического объяснения:

  1. Миф однопоточного теста Гилёва. Популярный тест производительности Гилёва оценивает скорость работы в один поток. В таком сценарии процессоры Core i9 или i7 с тактовой частотой ядра 4.5–5.0 ГГц действительно показывают выдающиеся результаты (90+ условных единиц), существенно опережая стандартные серверные процессоры Intel Xeon Silver с базовой частотой 2.1–2.4 ГГц.
  2. Многопользовательская реальность. Когда на сервере одновременно работают 20–30 пользователей, выполняются фоновые регламентные задания, происходит обмен данными с десятками узлов РИБ и крутится СУБД — однопоточная производительность перестает быть единственным определяющим фактором. Десктопный процессор быстро исчерпает свои ресурсы, начнет сбрасывать частоты из-за перегрева (троттлинг) и создаст эффект «бутылочного горлышка» из-за ограниченной пропускной способности памяти и малого количества линий PCIe.
  3. Опасность десктопного железа в продакшене. Использование процессоров потребительского класса (Core i9/i7) на сервере базы данных несет огромные риски:
    • Отсутствие поддержки памяти с коррекцией ошибок ECC (Error-Correcting Code). Без ECC микросбои в ОЗУ со временем неизбежно приведут к незаметному искажению данных и разрушению структуры базы данных 1С.
    • Ограниченный ресурс материнских плат и систем охлаждения, не рассчитанных на круглосуточную (24/7) интенсивную работу под нагрузкой.

Какое решение выбрать? Для высокопроизводительного сервера 1С и СУБД оптимальным выбором будут специализированные серверные процессоры с высокой базовой частотой ядра (не менее 3.0 ГГц в номинальном режиме, без учета Turbo Boost). Рассмотрим отличные современные варианты:

Категорически не рекомендуется приобретать процессоры начального серверного уровня (такие как Xeon Silver 4108 / 4208) с низкой базовой частотой (1.8–2.1 ГГц). Для платформы «1С:Предприятие» они окажутся крайне медленными, и пользователи сразу заметят падение скорости работы интерфейса.

Ловушка лицензирования 1С: Разница между версиями ПРОФ и КОРП

Проектируя многоядерную серверную систему, системные администраторы часто упускают из виду жесткие лицензионные ограничения платформы «1С:Предприятие 8.3».

Если у вашей организации приобретена серверная лицензия уровня ПРОФ, то начиная с версии платформы 8.3.15 рабочий процесс сервера 1С (rphost) аппаратно ограничен использованием не более чем 12 ядер процессора на одном сервере. Это означает, что если вы соберёте мощную двухпроцессорную систему на 24 или 32 ядра, значительная часть аппаратной мощности при лицензии ПРОФ будет простаивать без дела.

Переход на лицензии уровня КОРП не только снимает это ограничение, но и открывает доступ к расширенным настройкам кластера 1С, среди которых:

Архитектурное планирование: Разделение ролей

При планировании инфраструктуры под 20–30 пользователей RemoteApp и сервер баз данных отличным решением будет разделение ролей на физическом или виртуальном уровне:

  1. Терминальный сервер (RDP-сервер): Можно использовать старое железо (например, если оно достаточно производительное) или выделить под терминалы отдельную виртуальную машину. Задача этой машины — отрисовка графического интерфейса 1С и обеспечение сессий пользователей. Расчет оперативной памяти: в среднем 512 МБ – 1 ГБ на одну сессию пользователя + 4–8 ГБ под операционную систему.
  2. Сервер СУБД + Сервер приложений 1С: Это сердце вашей системы. Сюда закупается самое быстрое оборудование. За счет того, что пользователи будут подключаться по тонкому клиенту или через терминальный сервер, этот сервер будет избавлен от накладных расходов на ведение графических сессий Windows, отдавая всю вычислительную мощность операциям с базой данных.

Выбор СУБД в современных реалиях: MS SQL Server против Postgres Pro

Исторически стандартом для крупных баз 1С являлся Microsoft SQL Server. Однако сегодня ситуация кардинально изменилась. Отличной альтернативой выступает отечественная коммерческая СУБД Postgres Pro Enterprise (разработанная специально с учетом специфики работы платформы 1С).

В отличие от базовой бесплатной версии PostgreSQL, коммерческая Postgres Pro содержит глубокие оптимизации ядра:

Использование оптимизированной СУБД позволяет выполнять сложные операции проведения документов в разы быстрее, вплотную приближая производительность к дорогостоящим решениям от Microsoft.

Проектирование дисковой подсистемы: Конец эпохи аппаратного RAID для NVMe

Скорость дисковой подсистемы — это главный фактор, определяющий общую отзывчивость клиент-серверной 1С. Ранее стандартом считалось создание RAID10 массивов на SAS SSD дисках через аппаратный контроллер с кэш-памятью и батарейкой (BBU).

Для современных накопителей формата NVMe (PCIe SSD) классические аппаратные RAID-контроллеры больше не требуются и даже вредны, так как они создают задержки (latency) и ограничивают пропускную способность шины. Современный подход выглядит следующим образом:

Чек-лист обязательной настройки СУБД и ОС («Must-Have»)

Даже на самом дорогом оборудовании производительность 1С будет низкой без правильной системной настройки. Выполним ключевые оптимизации по шагам.

Шаг 1: Настройка протокола Shared Memory (Общая память)

Если сервер «1С:Предприятие» и СУБД (например, MS SQL Server) установлены на одном физическом сервере, их взаимодействие по умолчанию может идти через сетевой стек TCP/IP (даже при обращении к localhost). Нам необходимо принудительно задействовать протокол Shared Memory, который работает напрямую через оперативную память, исключая сетевые задержки ОС.

В SQL Server Configuration Manager развернем ветку SQL Server Network Configuration -> Protocols for [Имя_Экземпляра] и установим статус Enabled для протокола Shared Memory:


Shared Memory -> Enabled
TCP/IP -> Enabled (для удаленного администрирования)
Named Pipes -> Disabled (рекомендуется отключить для снижения накладных расходов)

Шаг 2: Настройка электропитания в BIOS сервера и в ОС

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

  1. Войдите в BIOS сервера и переключите профиль электропитания (System Profile / Power Management) в режим Maximum Performance (Максимальная производительность). Отключите технологии динамического управления питанием: C-States, Intel SpeedStep (EIST), Demand Based Switching.
  2. В операционной системе (Windows Server) перейдите в Панель управления -> Электропитание и установите схему «Высокая производительность» (High Performance).

Шаг 3: Ограничение параллелизма (параметр MAXDOP) в MS SQL Server

По умолчанию СУБД пытается распараллелить выполнение любого сложного запроса на все доступные ядра процессора. Для учетных систем класса 1С это приводит к взаимным ожиданиям на блокировках и лавинообразному падению производительности.

Рекомендуется установить параметр MAXDOP (Maximum Degree of Parallelism) равным 1 (в редких случаях для очень мощных систем — до 2 или 4, но строго после замера производительности).

Выполним следующий скрипт в среде СУБД для изменения этой настройки:


EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'max degree of parallelism', 1;
RECONFIGURE;
GO

Шаг 4: Оптимальная конфигурация системной базы данных TempDB

База tempdb активно используется платформой 1С для работы с временными таблицами. По умолчанию создается только один файл данных, что приводит к очередям запросов к дисковой подсистеме.

Рекомендуется создать несколько файлов данных tempdb. Их количество должно быть строго равно числу физических ядер процессора (но не более 8 файлов). Все файлы должны иметь абсолютно одинаковый первоначальный размер и шаг автоматического расширения, чтобы СУБД распределяла нагрузку на диски равномерно.

Пример SQL-скрипта для настройки файлов tempdb:


ALTER DATABASE tempdb 
MODIFY FILE (NAME = tempdev, FILENAME = 'D:\SQL_TempDB\tempdb.mdf', SIZE = 4096MB, FILEGROWTH = 512MB);
GO

-- Добавление дополнительных файлов (повторить для требуемого количества ядер, например до 8)
ALTER DATABASE tempdb 
ADD FILE (NAME = tempdev_2, FILENAME = 'D:\SQL_TempDB\tempdb_2.ndf', SIZE = 4096MB, FILEGROWTH = 512MB);
GO

Подведем итоги: Рекомендованная конфигурация производительного сервера

Проанализировав все технические аспекты и требования, мы можем составить оптимальную спецификацию производительного сервера под задачи 1С:

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

← На главную