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


Выбор сетевого адаптера

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI, версии 21H2 и 20H2

Этот раздел можно использовать для изучения некоторых функций сетевых адаптеров, которые могут повлиять на выбор покупки.

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

Совет

Параметры сетевого адаптера можно настроить с помощью Windows PowerShell. Дополнительные сведения см. в разделе "Командлеты сетевого адаптера" в Windows PowerShell.

Выгрузка возможностей

Выгрузка задач с центрального модуля обработки (ЦП) на сетевой адаптер может снизить потребление ЦП на сервере, что повышает общую производительность системы.

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

Тип разгрузки Description
Расчет контрольной суммы для TCP Сетевой стек может выгрузить вычисления и проверку протокола управления передачей (TCP) проверка sumsums on send and receive code paths. Он также может выгрузить вычисления и проверку IPv4 и IPv6 проверка sumsums on send and receive code paths.
Вычисление контрольной суммы для UDP Сетевой стек может выгрузить вычисления и проверку протокола пользовательской диаграммы данных (UDP) проверка sumsums on send and receive code paths.
Расчет контрольной суммы для IPv4 Сетевой стек может выгрузить вычисления и проверку IPv4 проверка sumsums on send and receive code paths.
Вычисление контрольной суммы для IPv6 Сетевой стек может выгрузить вычисления и проверку IPv6 проверка sumsums on send and receive code paths.
Сегментация больших пакетов TCP Уровень транспорта TCP/IP поддерживает большие разгрузки отправки версии 2 (LSOv2). С помощью LSOv2 уровень транспорта TCP/IP может выгрузить сегментацию больших TCP-пакетов сетевому адаптеру.
Масштабирование на стороне приема (RSS) RSS — это технология сетевого драйвера, которая позволяет эффективно распределять обработку сети по нескольким ЦП в многопроцессорных системах. Дополнительные сведения о RSS приведены далее в этом разделе.
Receive Segment Coalescing (RSC) RSC — это возможность группировать пакеты вместе, чтобы свести к минимуму обработку заголовков, необходимую для выполнения узла. Не более 64 КБ полученных полезных данных можно объединить в один большой пакет для обработки. Дополнительные сведения о RSC приведены далее в этом разделе.

Масштабирование на стороне приема

Windows Server 2016, Windows Server 2012, Windows Server 2012 R2, Windows Server 2008 R2 и Windows Server 2008 поддерживают масштабирование на стороне получения (RSS).

Некоторые серверы настроены с несколькими логическими процессорами, которые совместно используют аппаратные ресурсы (например, физическое ядро) и которые обрабатываются как одновременные однопотоковые одноранговые узлы (SMT). Intel технология Hyper-Threading является примером. RSS направляет сетевую обработку до одного логического процессора на ядро. Например, на сервере с Intel Hyper-Threading, 4 ядра и 8 логических процессоров RSS использует не более 4 логических процессоров для обработки сети.

RSS распределяет входящие сетевые пакеты ввода-вывода между логическими процессорами, чтобы пакеты, принадлежащие одному TCP-подключению, обрабатывались на одном логическом процессоре, который сохраняет порядок.

RSS также распределяет нагрузку одноадресной рассылки UDP и многоадресного трафика, а также направляет связанные потоки (которые определяются хэшированием исходных и целевых адресов) в тот же логический процессор, сохраняя порядок связанных поступлений. Это помогает повысить масштабируемость и производительность для сценариев с интенсивным приемом для серверов с меньшим количеством сетевых адаптеров, чем они имеют подходящие логические процессоры.

Настройка RSS

В Windows Server 2016 можно настроить RSS с помощью командлетов Windows PowerShell и профилей RSS.

Профили RSS можно определить с помощью параметра -Profile командлета Set-NetAdapterRss Windows PowerShell.

Команды Windows PowerShell для конфигурации RSS

Следующие командлеты позволяют просматривать и изменять параметры RSS на сетевой адаптер.

Примечание.

Подробный справочник по командам для каждого командлета, включая синтаксис и параметры, можно щелкнуть следующие ссылки. Кроме того, вы можете передать имя командлета в get-Help в командной строке Windows PowerShell для получения сведений о каждой команде.

  • Disable-NetAdapterRss. Эта команда отключает RSS в указанном сетевом адаптере.

  • Enable-NetAdapterRss. Эта команда включает RSS в указанном сетевом адаптере.

  • Get-NetAdapterRss. Эта команда извлекает свойства RSS указанного сетевого адаптера.

  • Set-NetAdapterRss. Эта команда задает свойства RSS для указанного сетевого адаптера.

Профили RSS

Вы можете использовать параметр -Profile командлета Set-NetAdapterRss, чтобы указать, какие логические процессоры назначены сетевому адаптеру. Доступные значения для этого параметра:

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

  • Ближайшие статические. Логические номера процессора рядом с базовым процессором RSS сетевого адаптера предпочтительнее. В этом профиле операционная система не перебалансировать логические процессоры динамически на основе нагрузки.

  • NUMA. Логические номера процессора обычно выбираются на разных узлах NUMA для распределения нагрузки. С помощью этого профиля операционная система может динамически сбалансировать логические процессоры на основе нагрузки.

  • NUMAStatic. Это профиль по умолчанию. Логические номера процессора обычно выбираются на разных узлах NUMA для распределения нагрузки. С помощью этого профиля операционная система не будет динамически распределять логические процессоры на основе нагрузки.

  • Консервативный. RSS использует как можно меньше процессоров для поддержания нагрузки. Этот параметр помогает уменьшить количество прерываний.

В зависимости от сценария и характеристик рабочей нагрузки можно также использовать другие параметры командлета Set-NetAdapterRss Windows PowerShell, чтобы указать следующее:

  • На основе сетевого адаптера сколько логических процессоров можно использовать для RSS.
  • Начальная смещение для диапазона логических процессоров.
  • Узел, из которого сетевой адаптер выделяет память.

Ниже приведены дополнительные параметры Set-NetAdapterRss , которые можно использовать для настройки RSS:

Примечание.

В примере синтаксиса для каждого параметра ниже имя сетевого адаптера используется в качестве примера значения параметра –Name команды Set-NetAdapterRss. При запуске командлета убедитесь, что используемое имя сетевого адаптера подходит для вашей среды.

  • * MaxProcessors: задает максимальное количество используемых процессоров RSS. Это гарантирует, что трафик приложения привязан к максимальному количеству процессоров в заданном интерфейсе. Пример синтаксиса:

    Set-NetAdapterRss –Name "Ethernet" –MaxProcessors <value>

  • * BaseProcessorGroup: задает базовую группу процессоров узла NUMA. Это влияет на массив процессора, используемый RSS. Пример синтаксиса:

    Set-NetAdapterRss –Name "Ethernet" –BaseProcessorGroup <value>

  • * MaxProcessorGroup: задает группу обработчика Max для узла NUMA. Это влияет на массив процессора, используемый RSS. Установка этого параметра ограничивает максимальную группу процессоров, чтобы балансировка нагрузки была выровнена в группе k-групп. Пример синтаксиса:

    Set-NetAdapterRss –Name "Ethernet" –MaxProcessorGroup <value>

  • * BaseProcessorNumber: задает базовый номер процессора узла NUMA. Это влияет на массив процессора, используемый RSS. Это позволяет секционирование процессоров по сетевым адаптерам. Это первый логический процессор в диапазоне процессоров RSS, назначенных каждому адаптеру. Пример синтаксиса:

    Set-NetAdapterRss –Name "Ethernet" –BaseProcessorNumber <Byte Value>

  • * NumaNode: узел NUMA, из которых каждый сетевой адаптер может выделить память. Это может быть внутри группы k или из разных групп k-групп. Пример синтаксиса:

    Set-NetAdapterRss –Name "Ethernet" –NumaNodeID <value>

  • * NumberofReceiveQueues: если логические процессоры, как представляется, недостаточно используются для получения трафика (например, как показано в диспетчере задач), можно попробовать увеличить число очередей RSS по умолчанию до максимального значения, поддерживаемого сетевым адаптером. Сетевой адаптер может иметь возможность изменить количество очередей RSS в составе драйвера. Пример синтаксиса:

    Set-NetAdapterRss –Name "Ethernet" –NumberOfReceiveQueues <value>

Дополнительные сведения см. в следующей ссылке, чтобы скачать масштабируемую сеть: устранение узких мест обработки получения — введение RSS в формат Word.

Общие сведения о производительности RSS

Настройка RSS требует понимания конфигурации и логики балансировки нагрузки. Чтобы убедиться, что параметры RSS ввели силу, можно просмотреть выходные данные при запуске командлета Get-NetAdapterRss Windows PowerShell. Ниже приведен пример выходных данных этого командлета.


PS C:\Users\Administrator> get-netadapterrss
Name                           : testnic 2
InterfaceDescription           : Broadcom BCM5708C NetXtreme II GigE (NDIS VBD Client) #66
Enabled                        : True
NumberOfReceiveQueues          : 2
Profile                        : NUMAStatic
BaseProcessor: [Group:Number]  : 0:0
MaxProcessor: [Group:Number]   : 0:15
MaxProcessors                  : 8

IndirectionTable: [Group:Number]:
     0:0    0:4    0:0    0:4    0:0    0:4    0:0    0:4
…
(# indirection table entries are a power of 2 and based on # of processors)
…
                          0:0    0:4    0:0    0:4    0:0    0:4    0:0    0:4

Помимо заданных параметров эхо, ключевой аспект выходных данных является выходными данными непрямой таблицы. В таблице косвенного обращения отображаются сегменты хэш-таблицы, используемые для распределения входящего трафика. В этом примере нотация n:c обозначает пару индексов Numa K-Group:CPU, которая используется для направления входящего трафика. Мы видим ровно 2 уникальные записи (0:0 и 0:4), которые представляют k-group 0/cpu0 и k-group 0/cpu 4 соответственно.

Для этой системы (k-group 0) существует только одна группа k- и n (где n <= 128) запись таблицы косвенного обращения. Так как число очередей получения равно 2, выбрано только 2 процессора (0:0, 0:4), даже если максимальный процессор имеет значение 8. В действительности таблица косвенного обращения хэшируется входящий трафик, чтобы использовать только 2 ЦП из доступных 8.

Чтобы полностью использовать ЦП, количество очередей получения RSS должно быть равно или больше максимального числа процессоров. В предыдущем примере очередь получения должна иметь значение 8 или больше.

Объединение сетевых карт и RSS

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

Receive Segment Coalescing (RSC)

Получение объединения сегментов (RSC) помогает повысить производительность, уменьшая количество заголовков IP-адресов, обрабатываемых для заданного объема полученных данных. Он должен использоваться для масштабирования производительности полученных данных путем группировки (или объединения) меньших пакетов в большие единицы.

Этот подход может повлиять на задержку с преимуществами, которые в основном наблюдались при увеличении пропускной способности. RSC рекомендуется увеличить пропускную способность для полученных тяжелых рабочих нагрузок. Рассмотрите возможность развертывания сетевых адаптеров, поддерживающих RSC.

В этих сетевых адаптерах убедитесь, что RSC включен (это параметр по умолчанию), если у вас нет конкретных рабочих нагрузок (например, низкой задержки, сети с низкой пропускной способностью), которые показывают, что преимущества от RSC отключены.

Общие сведения о диагностике RSC

Вы можете диагностировать RSC с помощью командлетов Windows PowerShell Get-NetAdapterRsc и Get-NetAdapterStatistics.

Ниже приведен пример выходных данных при запуске командлета Get-NetAdapterRsc.


PS C:\Users\Administrator> Get-NetAdapterRsc

Name                       IPv4Enabled  IPv6Enabled  IPv4Operational IPv6Operational               IPv4FailureReason              IPv6Failure
                                            Reason
----                           -----------  -----------  --------------- --------------- ----------------- ------------
Ethernet                       True         False        True            False                  NoFailure       NicProperties

Командлет Get показывает, включен ли RSC в интерфейсе и включен ли протокол TCP RSC в рабочем состоянии. Причина сбоя содержит сведения о сбое включения RSC в этом интерфейсе.

В предыдущем сценарии IPv4 RSC поддерживается и работает в интерфейсе. Чтобы понять диагностические сбои, можно увидеть объединенные байты или исключения. Это дает представление о проблемах объединения.

Ниже приведен пример выходных данных при запуске командлета Get-NetAdapterStatistics.

PS C:\Users\Administrator> $x = Get-NetAdapterStatistics "myAdapter"
PS C:\Users\Administrator> $x.rscstatistics

CoalescedBytes       : 0
CoalescedPackets     : 0
CoalescingEvents     : 0
CoalescingExceptions : 0

RSC и Виртуализация

RSC поддерживается только в физическом узле, если сетевой адаптер узла не привязан к виртуальному коммутатору Hyper-V. RSC отключается операционной системой, когда узел привязан к виртуальному коммутатору Hyper-V. Кроме того, виртуальные машины не получают преимущества RSC, так как адаптеры виртуальной сети не поддерживают RSC.

RSC можно включить для виртуальной машины, если включена одно корневая виртуализация ввода и вывода (SR-IOV). В этом случае виртуальные функции поддерживают возможности RSC; следовательно, виртуальные машины также получают преимущества RSC.

Ресурсы сетевого адаптера

Несколько сетевых адаптеров активно управляют своими ресурсами для достижения оптимальной производительности. Несколько сетевых адаптеров позволяют вручную настраивать ресурсы с помощью вкладки "Расширенная сеть " для адаптера. Для таких адаптеров можно задать значения ряда параметров, включая количество буферов получения и отправку буферов.

Настройка ресурсов сетевого адаптера упрощается с помощью следующих командлетов Windows PowerShell.

Дополнительные сведения см. в разделе "Командлеты сетевого адаптера" в Windows PowerShell.

Ссылки на все разделы этого руководства см. в разделе "Настройка производительности сетевой подсистемы".