При проектировании аппаратного комплекса для системы «1С:Предприятие» на 100–150 активных пользователей перед системными администраторами часто встает выбор: приобрести специализированную картриджную систему (микросерверы), развернуть массивный 4-процессорный сервер или построить классическую кластерную архитектуру. Рассмотрим подробнее особенности работы платформы 1С с серверными ресурсами, проанализируем узкие места каждого подхода и сформируем оптимальный план построения инфраструктуры.
Рассматривая архитектурные варианты, сравним два крайних подхода к построению системы:
Разберем специфику работы платформы 1С на аппаратном уровне. В отличие от веб-серверов или систем видеообработки, ключевые транзакционные операции 1С (проведение документов, проведение регламентных операций, запуск сложных отчетов) выполняются строго последовательно в один поток.
Следовательно, производительность системы критически зависит не от общего количества ядер, а от однопоточной производительности (Single-Thread Performance) и тактовой частоты процессора. Процессор с частотой 3.8–4.2 ГГц в режимах Turbo Boost покажет существенный прирост скорости работы 1С по сравнению с процессором, имеющим 24 ядра, но с частотой 2.0 ГГц.
Проанализируем работу многопроцессорных систем с точки зрения архитектуры памяти (Non-Uniform Memory Access — NUMA):
rphost) к удаленному узлу памяти возникают задержки (latency), что приводит к существенной падению скорости работы и неравномерной загрузке ядер.По этой причине переход на системы с количеством сокетов больше двух в средах 1С не рекомендуется, если нет крайней необходимости в согласовании сверхбольших объемов RAM на одну ОС.
Разберем классическую и наименее рискованную схему построения инфраструктуры для организации работы 100–150 пользователей 1С:
Требует максимальную частоту на ядро, высокий объем оперативной памяти под кэши баз данных и быстродействующую дисковую подсистему на NVMe-накопителях (желательно в RAID 10 или RAID 1).
Требует высокочастотный процессор (1 или 2 сокета с высокой базовой частотой). Объем RAM рассчитывается из нормы 1–2 ГБ на каждого активного пользователя плюс резерв под процессы rmngr и фоновые задания.
Для тонких клиентов рекомендуется поднимать ферму веб-серверов (IIS / Nginx). При работе через RDP-сессии рассчитывают 6–8 терминальных серверов (из расчета 20–25 пользователей на север) для равномерной нагрузки по памяти (300–500 МБ RAM на тонкого клиента в сессии).
Контроллеры домена, контроллеры лицензий и серверы резервного копирования выносятся на отдельное железо или изолированные виртуальные машины.
Выясним, какие настройки необходимо выполнить для оптимизации взаимодействия СУБД и платформы 1С:
При использовании гипервизоров (VMware ESXi, Hyper-V, Proxmox) размер виртуальной машины (число vCPU и объем RAM) не должен выходить за пределы одного физического сокета (NUMA-узла). Для виртуальных машин 1С и СУБД обязательно включается полная резервация оперативной памяти (RAM Reservation).
Установим параметр MAXDOP (Maximum Degree of Parallelism) равным 1 (или количеству ядер одного NUMA-узла) во избежание взаимных блокировок. Файлы временной базы данных TempDB распределим на несколько равных файлов по числу доступных логических ядер процессора.
В консоли кластера 1С пропишем ограничения на создаваемые процессы rphost, установив параметр «Максимальное число соединений на процесс», чтобы распределить нагрузку и снизить риски разрастания оперативной памяти отдельным процессом.