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


Настройка производительности шлюза 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
Гиперпоток Disabled. Технология Hyper-Threading не повышает производительность шлюза Windows Server.
ОЗУ 48 ГБ
Сетевые платы Два сетевых адаптера в 10 ГБ, производительность шлюза зависит от скорости строки. Если скорость линии меньше 10 Гбит/с, то число пропускной способности туннеля шлюза также снижается на тот же фактор.

Убедитесь, что количество виртуальных процессоров, назначенных виртуальной машине шлюза Windows Server, не превышает количество процессоров на узле NUMA. Например, если на узле NUMA восемь ядер, количество виртуальных процессоров должно быть не больше восьми. Для оптимальной производительности оно должно быть 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. Эти инструкции по конфигурации включают примеры использования команд 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
Масштабирование на стороне приема на физических сетевых адаптерах Вы можете проверить, включены ли физические сетевые адаптеры, выполнив команду 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 в команде 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 по умолчанию можно сохранить для сетевого адаптера управления. Ниже приведен пример конфигурации для виртуальной машины с восемью виртуальными процессорами. Для внешних и внутренних сетевых адаптеров можно включить 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"
Буфер на стороне получения Вы можете сохранить параметры буфера на стороне получения по умолчанию для сетевого адаптера управления. Для внутренних и внешних сетевых адаптеров можно настроить буфер на стороне получения с МБ ОЗУ с помощью следующей команды Windows PowerShell:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Receive Buffer Size" –DisplayValue "16MB"
Оптимизация переадресации Параметры оптимизации пересылки по умолчанию можно сохранить для сетевого адаптера управления. Для внутренних и внешних сетевых адаптеров можно включить оптимизацию пересылки с помощью следующей команды Windows PowerShell:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Forward Optimization" –DisplayValue "1"