Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот раздел можно использовать для изучения некоторых функций сетевых адаптеров, которые могут повлиять на выбор покупки.
Для приложений с интенсивным доступом к сети требуются высокопроизводительные сетевые адаптеры. В этом разделе рассматриваются некоторые рекомендации по выбору сетевых адаптеров, а также настройка различных параметров сетевого адаптера для достижения оптимальной производительности сети.
Tip
Параметры сетевого адаптера можно настроить с помощью Windows PowerShell. Дополнительные сведения см. в разделе "Командлеты сетевого адаптера" в Windows PowerShell.
Offload Capabilities
Выгрузка задач с центрального модуля обработки (ЦП) на сетевой адаптер может снизить потребление ЦП на сервере, что повышает общую производительность системы.
Сетевой стек в продуктах Майкрософт может выгрузить одну или несколько задач в сетевой адаптер, если выбрать сетевой адаптер с соответствующими возможностями разгрузки. В следующей таблице представлен краткий обзор различных возможностей разгрузки, доступных в Windows Server 2016.
Offload type | Description |
---|---|
Расчет контрольной суммы для TCP | Сетевой стек может перенести вычисление и проверку контрольных сумм протокола TCP на пути кода отправки и получения. Он также может перенести вычисление и проверку контрольных сумм IPv4 и IPv6 на пути кода отправки и получения. |
Вычисление контрольной суммы для протокола UDP | Сетевой стек может переносить проверку и вычисление контрольных сумм протокола пользовательских датаграмм (UDP) на этапе отправки и получения. |
Расчет контрольной суммы для IPv4 | Сетевой стек может переложить нагрузку на вычисление и проверку контрольных сумм IPv4 на пути отправки и получения данных. |
Вычисление контрольной суммы для IPv6 | Сетевой стек может разгружать вычисление и проверку контрольных сумм IPv6 на путях отправки и получения. |
Сегментация больших пакетов TCP | Уровень транспорта TCP/IP поддерживает функцию разгрузки отправки LSO версии 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 и многоадресного трафика, а также направляет связанные потоки (которые определяются хэшированием исходных и целевых адресов) в тот же логический процессор, сохраняя порядок связанных поступлений. Это помогает повысить масштабируемость и производительность в сценариях с интенсивной загрузкой для серверов, у которых сетевых адаптеров меньше, чем подходящих логических процессоров.
Configuring RSS
В Windows Server 2016 можно настроить RSS с помощью командлетов Windows PowerShell и профилей RSS.
You can define RSS profiles by using the –Profile parameter of the Set-NetAdapterRss Windows PowerShell cmdlet.
Команды Windows PowerShell для конфигурации RSS
Следующие командлеты позволяют просматривать и изменять параметры RSS для каждого сетевого адаптера.
Note
Подробный справочник команд для каждого командлета, включая синтаксис и параметры, доступен по следующим ссылкам. In addition, you can pass the cmdlet name to Get-Help at the Windows PowerShell prompt for details on each command.
Disable-NetAdapterRss. Эта команда отключает RSS в указанном сетевом адаптере.
Enable-NetAdapterRss. Эта команда включает RSS в указанном сетевом адаптере.
Get-NetAdapterRss. Эта команда извлекает свойства RSS указанного сетевого адаптера.
Set-NetAdapterRss. Эта команда задает свойства RSS для указанного сетевого адаптера.
RSS profiles
You can use the –Profile parameter of the Set-NetAdapterRss cmdlet to specify which logical processors are assigned to which network adapter. Доступные значения для этого параметра:
Closest. Предпочтительны номера логических процессоров, расположенные рядом с базовым процессором RSS сетевого адаптера. С помощью этого профиля операционная система может динамически сбалансировать логические процессоры на основе нагрузки.
ClosestStatic. Логические номера процессоров, расположенные рядом с основным процессором RSS сетевого адаптера, предпочтительны. В этом профиле операционная система не перераспределяет логические процессоры динамически в зависимости от нагрузки.
NUMA. Логические номера процессора обычно выбираются на разных узлах NUMA для распределения нагрузки. С помощью этого профиля операционная система может динамически сбалансировать логические процессоры на основе нагрузки.
NUMAStatic. This is the default profile. Логические номера процессора обычно выбираются на разных узлах NUMA для распределения нагрузки. С помощью этого профиля операционная система не будет динамически распределять логические процессоры на основе нагрузки.
Conservative. RSS использует как можно меньше процессоров для поддержания нагрузки. Этот параметр помогает уменьшить количество прерываний.
Depending on the scenario and the workload characteristics, you can also use other parameters of the Set-NetAdapterRss Windows PowerShell cmdlet to specify the following:
- Для каждого сетевого адаптера, сколько логических процессоров можно использовать для RSS?
- Начальное смещение для диапазона логических процессоров.
- Узел, из которого сетевой адаптер выделяет память.
Following are the additional Set-NetAdapterRss parameters that you can use to configure RSS:
Note
In the example syntax for each parameter below, the network adapter name Ethernet is used as an example value for the –Name parameter of the Set-NetAdapterRss command. При запуске командлета убедитесь, что используемое имя сетевого адаптера подходит для вашей среды.
* MaxProcessors: Sets the maximum number of RSS processors to be used. Это гарантирует, что трафик приложения привязан к максимальному количеству процессоров в заданном интерфейсе. Example syntax:
Set-NetAdapterRss –Name "Ethernet" –MaxProcessors <value>
* BaseProcessorGroup: Sets the base processor group of a NUMA node. Это влияет на массив процессора, используемый RSS. Example syntax:
Set-NetAdapterRss –Name "Ethernet" –BaseProcessorGroup <value>
* MaxProcessorGroup: Sets the Max processor group of a NUMA node. Это влияет на массив процессора, используемый RSS. Установка этого параметра ограничивает максимальную группу процессоров, чтобы балансировка нагрузки была выровнена в группе k-групп. Example syntax:
Set-NetAdapterRss –Name "Ethernet" –MaxProcessorGroup <value>
* BaseProcessorNumber: Sets the base processor number of a NUMA node. Это влияет на массив процессора, используемый RSS. Это позволяет секционирование процессоров по сетевым адаптерам. Это первый логический процессор в диапазоне процессоров RSS, назначенных каждому адаптеру. Example syntax:
Set-NetAdapterRss –Name "Ethernet" –BaseProcessorNumber <Byte Value>
* NumaNode: The NUMA node that each network adapter can allocate memory from. Это может быть внутри группы k или из разных групп k-групп. Example syntax:
Set-NetAdapterRss –Name "Ethernet" –NumaNodeID <value>
* NumberofReceiveQueues: If your logical processors seem to be underutilized for receive traffic (for example, as viewed in Task Manager), you can try increasing the number of RSS queues from the default of 2 to the maximum that is supported by your network adapter. Сетевой адаптер может иметь возможность изменить количество очередей RSS в составе драйвера. Example syntax:
Set-NetAdapterRss –Name "Ethernet" –NumberOfReceiveQueues <value>
Для получения дополнительной информации нажмите на следующую ссылку, чтобы скачать Масштабируемые сети: Устранение узких мест обработки получения — Введение RSS в формате Word.
Общие сведения о производительности RSS
Настройка RSS требует понимания конфигурации и логики балансировки нагрузки. To verify that the RSS settings have taken effect, you can review the output when you run the Get-NetAdapterRss Windows PowerShell cmdlet. Ниже приведен пример выходных данных этого командлета.
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-группа (k-группа 0) и запись в таблице косвенных индексов n (где n < = 128). Так как число очередей получения равно 2, выбрано только 2 процессора (0:0, 0:4), даже если максимальный процессор имеет значение 8. В действительности таблица косвенного обращения хэширует входящий трафик, чтобы использовать только 2 процессора из 8 доступных.
Чтобы полностью использовать ЦП, количество очередей получения RSS должно быть равно или больше максимального числа процессоров. В предыдущем примере очередь получения должна иметь значение 8 или больше.
Объединение сетевых адаптеров и RSS
RSS можно включить на сетевом адаптере, который связан с другой сетевой картой интерфейса с помощью NIC Teaming. В этом сценарии можно настроить только базовый физический сетевой адаптер для использования RSS. Пользователь не может задать командлеты RSS на командованном сетевом адаптере.
Совмещение сегментов (Receive Segment Coalescing, RSC)
Объединение сегментов (RSC) помогает повысить производительность, уменьшая количество IP заголовков, обрабатываемых для заданного объема полученных данных. Он должен использоваться для масштабирования производительности полученных данных путем группировки (или объединения) меньших пакетов в большие единицы.
Этот подход может повлиять на задержку, с тем что преимущества в основном проявляются в увеличении пропускной способности. RSC рекомендуется увеличить пропускную способность для полученных тяжелых рабочих нагрузок. Рассмотрите возможность развертывания сетевых адаптеров, поддерживающих RSC.
В этих сетевых адаптерах убедитесь, что RSC включен (это параметр по умолчанию), если у вас нет конкретных рабочих нагрузок (например, низкой задержки, сети с низкой пропускной способностью), которые показывают, что преимущества от RSC отключены.
Общие сведения о диагностике RSC
You can diagnose RSC by using the Windows PowerShell cmdlets Get-NetAdapterRsc and 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
The Get cmdlet shows whether RSC is enabled in the interface and whether TCP enables RSC to be in an operational state. Причина сбоя содержит сведения о сбое включения 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.
Ресурсы сетевого адаптера
Несколько сетевых адаптеров активно управляют своими ресурсами для достижения оптимальной производительности. Several network adapters allow you to manually configure resources by using the Advanced Networking tab for the adapter. Для таких адаптеров можно задать значения ряда параметров, включая количество буферов получения и отправку буферов.
Настройка ресурсов сетевого адаптера упрощается с помощью следующих командлетов Windows PowerShell.
Дополнительные сведения см. в разделе "Командлеты сетевого адаптера" в Windows PowerShell.
Ссылки на все разделы этого руководства см. в разделе "Настройка производительности сетевой подсистемы".