При настройке серверной инфраструктуры для 1С:Предприятия часто возникает дилемма: оставить всё на "голом железе" или использовать виртуализацию. В нашей ситуации мы имеем мощный двухпроцессорный сервер (2 x Intel Gold 6154, итого 36 ядер и 256 Гб ОЗУ) и задачу максимально эффективно распределить эти ресурсы между виртуальными машинами 1С и MSSQL под управлением Hyper-V. Рассмотрим подробнее, как избежать деградации производительности и учесть аппаратные особенности оборудования.
Первым делом проанализируем ситуацию с разделением ролей. Размещение 1С и SQL на разных виртуальных машинах (ВМ) дает удобство администрирования и бэкапирования, но лишает нас главного преимущества — использования протокола Shared Memory. Когда оба сервера находятся в одной ОС, они обмениваются данными через общую память практически мгновенно. В случае с разными ВМ обмен идет через виртуальный коммутатор по протоколу TCP/IP, что вносит задержку (Latency) от 5% до 15%.
Если решение о виртуализации принято, выясним причину возможных тормозов и постараемся их минимизировать. Для этого на виртуальных сетевых адаптерах обязательно включим режим VMMQ (Virtual Machine Multi-Queue), чтобы распределить обработку сетевого трафика по разным ядрам процессора.
Разберем по шагам настройку процессоров. Важно помнить, что лицензия «1С:Предприятие 8.3 ПРОФ» имеет техническое ограничение: один рабочий процесс rphost может использовать не более 12 ядер процессора. Если мы выделим виртуальной машине 24 ядра, один процесс 1С всё равно будет задействовать только половину из них.
Посмотрим на пример оптимального распределения для наших процессоров (по 18 ядер каждый):
Теперь проанализируем ситуацию с оперативной памятью. Наш сервер имеет 256 Гб ОЗУ, распределенных по 128 Гб на каждый физический процессор. Это называется архитектурой NUMA (Non-Uniform Memory Access). Если виртуальная машина попытается забрать 192 Гб, гипервизор будет вынужден брать часть памяти из соседнего сокета, что резко снизит скорость доступа к ней.
Рассмотрим рекомендации по настройке ОЗУ:
Чтобы выжать максимум, разберем по шагам дополнительные настройки внутри гостевых ОС:
Даже на корпоративных SSD RAID 1 дисковая очередь может стать "бутылочным горлышком". Проанализируем ситуацию с виртуальными дисками:
Для Hyper-V всегда используйте диски типа Fixed Size (фиксированного размера). Динамические диски VHDX расширяются "на лету", что создает дополнительные задержки при интенсивной записи логов транзакций SQL (файлы .ldf).
Если есть возможность, внутри виртуальной машины SQL разнесем файлы данных и логи на разные виртуальные диски. Это позволит Windows и гипервизору более эффективно обрабатывать очереди запросов к дисковой подсистеме.
Подведем итог нашей совместной работы. Оптимальная конфигурация для данного "железа" будет выглядеть так:
Max Server Memory на уровне 110 Гб, включение LPIM.Такой подход обеспечит максимальную стабильность и позволит 1С:Предприятию использовать всю мощь процессоров Intel Gold без лишних накладных расходов на виртуализацию.