Поделиться через


Настройка производительности шлюза HNV в программно определенных сетях

В этом разделе приведены рекомендации по спецификациям оборудования и конфигурации серверов, на которых выполняются Hyper-V и размещаются виртуальные машины шлюза Windows Server, а также параметры конфигурации для виртуальных машин шлюза Windows Server. Чтобы достичь наилучшей производительности виртуальных машин шлюза Windows Server, ожидается соблюдение этих рекомендаций. В следующих разделах содержатся требования к оборудованию и конфигурации при развертывании шлюза Windows Server.

  1. рекомендации по оборудованию Hyper-V
  2. конфигурация узла Hyper-V
  3. Конфигурация виртуальной машины шлюза Windows Server

рекомендации по оборудованию Hyper-V

Ниже приведена рекомендуемая минимальная конфигурация оборудования для каждого сервера под управлением Windows Server 2016 и Hyper-V.

Компонент сервера Спецификация
Центральный модуль обработки (ЦП) Узлы, отличные от единообразной архитектуры памяти (NUMA): 2
Если на узле имеется несколько виртуальных машин шлюза Windows Server, для оптимальной производительности каждая виртуальная машина шлюза должна иметь полный доступ к одному узлу NUMA. И он должен отличаться от узла NUMA, который используется физическим адаптером хоста.
Ядра на узел NUMA 2
Hyper-Threading Нетрудоспособный. Hyper-Threading не повышает производительность шлюза Windows Server.
Память случайного доступа (ОЗУ) 48 ГБ
Сетевые карты (сетевые адаптеры) Две 10-гигабитные сетевые интерфейсные карты, производительность шлюза будет зависеть от скорости линии. Если скорость линии меньше 10 Гбит/с, то число пропускной способности туннеля шлюза также снижается на тот же фактор.

Убедитесь, что число виртуальных процессоров, назначенных виртуальной машине шлюза Windows Server, не превышает количество процессоров на узле NUMA. Например, если узел NUMA имеет 8 ядер, число виртуальных процессоров должно быть меньше или равно 8. Для оптимальной производительности оно должно быть 8. Чтобы узнать количество узлов NUMA и количество ядер на узел NUMA, выполните следующий скрипт Windows PowerShell на каждом узле Hyper-V:

$nodes = [object[]] $(gwmi –Namespace root\virtualization\v2 -Class MSVM_NumaNode)
$cores = ($nodes | Measure-Object NumberOfProcessorCores -sum).Sum
$lps = ($nodes | Measure-Object NumberOfLogicalProcessors -sum).Sum


Write-Host "Number of NUMA Nodes: ", $nodes.count
Write-Host ("Total Number of Cores: ", $cores)
Write-Host ("Total Number of Logical Processors: ", $lps)

Это важно

Выделение виртуальных процессоров на узлах NUMA может негативно повлиять на производительность шлюза Windows Server. Запуск нескольких виртуальных машин, каждый из которых имеет виртуальные процессоры с одного узла NUMA, скорее всего, обеспечивает лучшую агрегированную производительность, чем одна виртуальная машина, к которой назначаются все виртуальные процессоры.

Рекомендуется использовать одну виртуальную машину шлюза с восемью виртуальными процессорами и по крайней мере 8 ГБ ОЗУ при выборе количества виртуальных машин шлюза для установки на каждом хосте Hyper-V в случае, если каждый узел NUMA имеет восемь ядер. В этом случае для хост-компьютера выделен один узел NUMA.

Конфигурация узла Hyper-V

Ниже представлена рекомендуемая конфигурация для каждого сервера, работающего под управлением Windows Server 2016 и Hyper-V, рабочей нагрузкой которого является запуск виртуальных машин Windows Server Gateway. Эти инструкции по настройке включают использование примеров команд Windows PowerShell. В этих примерах содержатся заполнители фактических значений, которые необходимо указать при выполнении команд в вашей среде. Например, заполнителями для имен сетевых адаптеров являются "NIC1" и "NIC2". При выполнении команд, использующих эти заполнители, используйте фактические имена сетевых адаптеров на ваших серверах, иначе команды будут завершены с ошибкой.

Замечание

Чтобы выполнить следующие команды Windows PowerShell, необходимо быть членом группы "Администраторы".

Элемент конфигурации Конфигурация Windows PowerShell
Переключение встроенного объединения команды При создании vswitch с несколькими сетевыми адаптерами автоматически включается встроенное объединение коммутаторов для этих адаптеров.
New-VMSwitch -Name TeamedvSwitch -NetAdapterName "NIC 1","NIC 2"
Традиционное объединение в группу с использованием LBFO не поддерживается в сочетании с SDN в Windows Server 2016. Switch Embedded Teaming позволяет использовать один и тот же набор сетевых адаптеров для виртуального трафика и трафика RDMA. Это не поддерживается при объединении сетевых адаптеров на основе балансировки нагрузки и отказоустойчивости (LBFO).
Модерация прерываний на физических сетевых адаптерах Используйте параметры по умолчанию. Чтобы проверить конфигурацию, можно использовать следующую команду Windows PowerShell: Get-NetAdapterAdvancedProperty
Размер буферов на физических сетевых интерфейсных картах Вы можете проверить, поддерживают ли физические сетевые адаптеры конфигурацию этого параметра, выполнив команду Get-NetAdapterAdvancedProperty. Если этот параметр не поддерживается, выходные данные команды не включают свойство "Буферы приема". Если сетевые адаптеры поддерживают этот параметр, можно использовать следующую команду Windows PowerShell, чтобы задать размер буферов приема:
Set-NetAdapterAdvancedProperty "NIC1" –DisplayName "Receive Buffers" –DisplayValue 3000
Размер буферов отправки на физические сетевые адаптеры Вы можете проверить, поддерживают ли физические сетевые адаптеры конфигурацию этого параметра, выполнив команду Get-NetAdapterAdvancedProperty. Если сетевые адаптеры не поддерживают этот параметр, выходные данные команды не включают свойство Send Buffers. Если сетевые адаптеры поддерживают этот параметр, можно использовать следующую команду Windows PowerShell, чтобы задать размер буферов отправки:
Set-NetAdapterAdvancedProperty "NIC1" –DisplayName "Transmit Buffers" –DisplayValue 3000
Масштабирование на стороне получения (RSS) на физических сетевых адаптерах Вы можете проверить, включена ли поддержка RSS у физических сетевых интерфейсов, выполнив команду Windows PowerShell Get-NetAdapterRss. Для включения и настройки RSS на сетевых адаптерах можно использовать следующие команды Windows PowerShell:
Enable-NetAdapterRss "NIC1","NIC2"
Set-NetAdapterRss "NIC1","NIC2" –NumberOfReceiveQueues 16 -MaxProcessors
ПРИМЕЧАНИЕ. Если включен VMMQ или VMQ, RSS не требуется включить на физических сетевых адаптерах. Его можно включить на адаптерах виртуальной сети узла.
VMMQ Чтобы включить VMMQ для виртуальной машины, выполните следующую команду:
Set-VmNetworkAdapter -VMName <gateway vm name>,-VrssEnabled $true -VmmqEnabled $true
ПРИМЕЧАНИЕ. Не все сетевые адаптеры поддерживают VMMQ. В настоящее время она поддерживается в серии Chelsio T5 и T6, Mellanox CX-3 и CX-4 и QLogic 45xxxx
Очередь виртуальных машин (VMQ) в команде сетевых адаптеров Вы можете включить VMQ в команде SET с помощью следующей команды Windows PowerShell:
Enable-NetAdapterVmq
ПРИМЕЧАНИЕ. Это должно быть включено только в том случае, если HW не поддерживает VMMQ. При поддержке VMMQ следует включить для повышения производительности.

Замечание

VMQ и vRSS вступают в действие только при высокой нагрузке на виртуальную машину и максимальной использовании процессора. Только тогда будет использоваться как минимум одно ядро процессора на полную мощность. VMQ и vRSS затем будут полезны для распределения нагрузки на обработку по нескольким ядрам. Это неприменимо для трафика IPsec, так как трафик IPsec ограничен одним ядром.

Конфигурация виртуальной машины шлюза Windows Server

На обоих узлах Hyper-V можно настроить несколько виртуальных машин, настроенных в качестве шлюзов с помощью шлюза Windows Server. Диспетчер виртуальных коммутаторов можно использовать для создания Hyper-V виртуального коммутатора, привязанного к команде сетевого адаптера на узле Hyper-V. Обратите внимание, что для оптимальной производительности следует развернуть одну виртуальную машину шлюза на узле Hyper-V. Ниже приведена рекомендуемая конфигурация для каждой виртуальной машины шлюза Windows Server.

Элемент конфигурации Конфигурация Windows PowerShell
Память 8 ГБ
Количество адаптеров виртуальной сети 3 сетевые адаптеры со следующими конкретными использованием: 1 для управления, используемой операционной системой управления, 1 Внешний, предоставляющий доступ к внешним сетям, 1 — внутренний, предоставляющий доступ только к внутренним сетям.
Масштабирование получающей стороны (RSS) Параметры RSS по умолчанию можно сохранить для сетевого адаптера управления. В следующем примере конфигурации используется виртуальная машина с 8 виртуальными процессорами. Для внешних и внутренних сетевых адаптеров RSS может быть включена с параметром BaseProcNumber, установленным на 0, и MaxRssProcessors, установленным на 8, с помощью следующей команды Windows PowerShell:
Set-NetAdapterRss "Internal","External" –BaseProcNumber 0 –MaxProcessorNumber 8
Отправка бокового буфера Параметры буфера на стороне отправки по умолчанию можно сохранить для сетевого адаптера управления. Для внутренних и внешних сетевых адаптеров можно настроить буфер на стороне отправки с 32 МБ ОЗУ с помощью следующей команды Windows PowerShell:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Send Buffer Size" –DisplayValue "32MB"
Буфер получающей стороны Вы можете сохранить настройки буфера приема по умолчанию для сетевого интерфейса управления. Для внутренних и внешних сетевых адаптеров вы можете сконфигурировать буфер приема данных на 16 МБ оперативной памяти с помощью следующей команды Windows PowerShell:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Receive Buffer Size" –DisplayValue "16MB"
Оптимизация перспективного планирования Параметры оптимизации Forward по умолчанию можно сохранить для управляющего сетевого интерфейса NIC. Для внутренних и внешних сетевых адаптеров можно включить оптимизацию пересылки с помощью следующей команды Windows PowerShell:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Forward Optimization" –DisplayValue "1"