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


Настройка производительности сетевых адаптеров

Используйте сведения в этом разделе, чтобы настроить сетевые адаптеры производительности для компьютеров под управлением Windows Server 2016 и более поздних версий. Если сетевые адаптеры предоставляют параметры настройки, эти параметры можно использовать для оптимизации пропускной способности сети и использования ресурсов.

Правильные параметры настройки сетевых адаптеров зависят от следующих переменных:

  • сетевой адаптер и набор его функций;
  • Тип рабочей нагрузки, выполняемой сервером
  • аппаратные и программные ресурсы сервера;
  • Ваши цели по производительности для сервера.

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

Включение функций разгрузки

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

Внимание

Не используйте функции выгрузки IPsec Task Offload или TCP Chimney Offload. Эти технологии устарели в Windows Server 2016 и могут негативно повлиять на производительность сервера и сети. Кроме того, эти технологии могут не поддерживаться корпорацией Майкрософт в будущем.

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

Примечание.

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

Включение масштабирования на стороне получения (RSS) для веб-серверов

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

Внимание

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

Чтобы определить, поддерживается ли сетевой адаптер RSS, можно просмотреть сведения о RSS на вкладке "Дополнительные свойства сетевого адаптера".

Профили RSS и очереди RSS

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

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

Увеличение ресурсов сетевого адаптера

Для сетевых адаптеров, которые позволяют вручную настраивать ресурсы, такие как получение и отправка буферов, следует увеличить выделенные ресурсы.

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

Примечание.

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

Включение модерации прерываний

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

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

Настройка производительности для обработки пакетов с низкой задержкой

Многие сетевые адаптеры позволяют настраивать параметры для оптимизации системной задержки. Задержка — это время между обработкой входящего пакета сетевым драйвером и отправкой этого пакета обратно. Обычно это время измеряется в микросекундах. Для сравнения время передачи пакетов на длинные расстояния обычно измеряется в миллисекундах (порядка величины больше). Эта настройка не сокращает время прохождения пакета.

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

  • Установите для компьютера BIOS высокий уровень производительности с отключенными состояниями C. Однако имейте в виду, что это зависит от системы и BIOS, и некоторые системы обеспечивают большую производительность, если операционная система управляет электропитанием. Вы можете проверить и настроить параметры управления питанием из Параметры или с помощью команды powercfg. Дополнительные сведения см. в разделе "Параметры командной строки Powercfg".

  • Задайте для профиля управления питанием операционной системы высокий уровень производительности.

    Примечание.

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

  • Включите статические разгрузки. Например, включите параметры контрольной суммы UDP, контрольных сумм TCP и функцию крупной разгрузки (LSO).

  • Если трафик многопоточный, например при получении высокообъёмного многоадресного трафика, включите RSS.

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

  • Обрабатывайте прерывания сетевого адаптера и DPC на центральном процессоре, который делит процессорный кэш с ядром, используемым программой (пользовательским потоком), обрабатывающей пакет. Настройку привязки ЦП можно использовать для управления процессом на конкретных логических процессорах в сочетании с конфигурацией RSS. Использование одного ядра для прерываний, DPC и пользовательского потока ведет к снижению производительности из-за увеличения нагрузки, поскольку ISR, DPC и поток будут конкурировать за ядро.

Прерывания управления системой

Во многих аппаратных системах используются прерывания управления системой (SMI) для различных функций обслуживания, таких как уведомление об ошибках памяти ECC, поддержание совместимости с устаревшими USB-устройствами, управление вентилятором и управление параметрами питания, которые контролируются BIOS.

SMI является самым приоритетным прерыванием в системе и помещает ЦП в режим управления. Этот режим перехватывает все остальные действия, пока SMI выполняет обработчик прерываний, обычно содержащийся в BIOS.

К сожалению, это поведение может привести к всплескам задержки в 100 микросекундах или более.

Когда необходимо обеспечить минимальную задержку, следует запросить у поставщика оборудования версию BIOS, которая минимизирует количество прерываний SMI до возможного минимума. Эти версии BIOS часто называют "BIOS с низкой задержкой" или "BIOS без SMI". В некоторых случаях невозможно, чтобы аппаратная платформа полностью исключила активность SMI, так как она используется для контроля важных функций (например, вентиляторов охлаждения).

Примечание.

Операционная система не может управлять SMIs, так как логический процессор работает в специальном режиме обслуживания, что предотвращает вмешательство операционной системы.

Настройка производительности TCP

Для настройки производительности TCP можно использовать следующие элементы.

Автоматическая настройка окна приёма TCP

В Windows Vista, Windows Server 2008 и более поздних версиях Windows стек сети Windows использует функцию, которая называется уровнем автоматической настройки окна приема TCP для согласования размера окна получения TCP. Эта функция может согласовывать определенный размер окна приема для каждого TCP-соединения в процессе TCP-рукопожатия.

В более ранних версиях Windows сетевой стек Windows использовал окно получения фиксированного размера (65 535 байт), которое ограничивало общую пропускную способность для подключений. Общая достижимая пропускная способность TCP-подключений может ограничить сценарии использования сети. Автоматическая настройка окна приема TCP позволяет этим сценариям полностью использовать сеть.

Для окна получения TCP с определенным размером можно использовать следующее уравнение для вычисления общей пропускной способности одного подключения.

Общая достижимая пропускная способность в байтах = размер окна получения TCP в байтах * (1 / задержка подключения в секундах)

Например, для подключения с задержкой в 10 мс общая достижимая пропускная способность составляет всего 51 Мбит/с. Это значение разумно для крупной корпоративной сетевой инфраструктуры. Однако, используя автоматическую настройку приемного окна, подключение может достичь полной пропускной способности линии на скорости 1 Гбит/с.

Некоторые приложения определяют размер окна получения TCP. Если приложение не определяет размер окна получения, скорость связи определяет размер следующим образом:

  • Менее 1 мегабит в секунду (Мбит/с): 8 килобайт (КБ)
  • 1 Мбит/с до 100 Мбит/с: 17 КБ
  • 100 Мбит/с до 10 гигабит в секунду (Гбит/с): 64 КБ
  • 10 Гбит/с или быстрее: 128 КБ

Например, на компьютере с установленным сетевым адаптером размером 1 Гбит/с размер окна должен быть 64 КБ.

Эта функция также обеспечивает полное использование других функций для повышения производительности сети. К этим функциям относятся остальные параметры TCP, определенные в RFC 1323. С помощью этих функций компьютеры под управлением Windows могут согласовывать размеры окна приема TCP, которые меньше, но масштабируются по определенному значению в зависимости от конфигурации. Это поведение упрощает обработку размеров сетевых устройств.

Проверка и настройка автоматического уровня настройки окна приема TCP

Вы можете использовать команды netsh или командлеты Windows PowerShell, чтобы проверить или изменить уровень автоматической настройки окна приёма TCP.

Примечание.

В отличие от версий Windows, выпущенных до Windows 10 или Windows Server 2019, вы больше не можете использовать реестр для настройки размера окна приема TCP. Дополнительные сведения о устаревших параметрах см. в разделе "Устаревшие параметры TCP".

Примечание.

Подробные сведения о доступных уровнях автоматической настройки см. в разделе "Уровни автоматического настройки".

Использование netsh для проверки или изменения уровня автоматической настройки

Чтобы просмотреть текущие параметры, откройте окно командной строки и выполните следующую команду:

netsh interface tcp show global

Выходные данные этой команды должны выглядеть следующим образом:

Querying active state...

TCP Global Parameters
-----
Receive-Side Scaling State : enabled
Chimney Offload State : disabled
Receive Window Auto-Tuning Level : normal
Add-On Congestion Control Provider : default
ECN Capability : disabled
RFC 1323 Timestamps : disabled
Initial RTO : 3000
Receive Segment Coalescing State : enabled
Non Sack Rtt Resiliency : disabled
Max SYN Retransmissions : 2
Fast Open : enabled
Fast Open Fallback : enabled
Pacing Profile : off

Чтобы изменить параметр, выполните следующую команду в командной строке:

netsh interface tcp set global autotuninglevel=<Value>

Примечание.

В приведенной выше команде <значение> представляет новое значение для уровня автоматической настройки.

Дополнительные сведения об этой команде см. в разделе Команды Netsh для протокола управления передачей данных интерфейса.

Использование PowerShell для проверки или изменения уровня автонастройки

Чтобы просмотреть текущие параметры, откройте окно PowerShell и выполните следующий командлет.

Get-NetTCPSetting | Select SettingName,AutoTuningLevelLocal

Выходные данные этого командлета должны выглядеть следующим образом.

SettingName           AutoTuningLevelLocal
-----------          --------------------
Automatic
InternetCustom       Normal
DatacenterCustom     Normal
Compat               Normal
Datacenter           Normal
Internet             Normal

Чтобы изменить этот параметр, выполните следующий командлет в командной строке PowerShell.

Set-NetTCPSetting -AutoTuningLevelLocal <Value>

Примечание.

В приведенной выше команде <значение> представляет новое значение для уровня автоматической настройки.

Дополнительные сведения об этих командлетах см. в следующих статьях:

Уровни автоматической настройки

Вы можете установить автоподстройку окна приёма на любой из пяти уровней. Уровень по умолчанию — "Обычный". В следующей таблице описаны уровни.

Уровень Шестнадцатеричное значение Комментарии
Обычный (по умолчанию) 0x8 (коэффициент масштабирования 8) Установите окно получения TCP для увеличения размера, чтобы соответствовать почти всем сценариям.
Отключено Нет доступных коэффициентов масштабирования Задайте окно получения TCP по умолчанию.
С ограниченным доступом 0x4 (коэффициент масштабирования 4) Установите возможность увеличения окна получения TCP за пределы его значения по умолчанию, но ограничьте это увеличение в некоторых сценариях.
Строго ограниченное 0x2 (коэффициент масштабирования 2) Задайте для окна получения TCP значение, превышающее значение по умолчанию, но сделайте это очень консервативно.
Экспериментальный 0xE (коэффициент масштабирования 14) Настройте окно приема TCP так, чтобы оно адаптировалось для удовлетворения экстремальных сценариев.

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

  • Уровень автонастройки: обычный (состояние по умолчанию)

    Frame: Number = 492, Captured Frame Length = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[D8-FE-E3-65-F3-FD],SourceAddress:[C8-5B-76-7D-FA-7F]
    + Ipv4: Src = 192.169.0.5, Dest = 192.169.0.4, Next Protocol = TCP, Packet ID = 2667, Total IP Length = 52
    - Tcp: [Bad CheckSum]Flags=......S., SrcPort=60975, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=4075590425, Ack=0, Win=64240 ( Negotiating scale factor 0x8 ) = 64240
    SrcPort: 60975
    DstPort: Microsoft-DS(445)
    SequenceNumber: 4075590425 (0xF2EC9319)
    AcknowledgementNumber: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Flags: ......S. ---------------------------------------------------------> SYN Flag set
    Window: 64240 ( Negotiating scale factor 0x8 ) = 64240 ---------> TCP Receive Window set as 64K as per NIC Link bitrate. Note it shows the 0x8 Scale Factor.
    Checksum: 0x8182, Bad
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + NoOption:
    + WindowsScaleFactor: ShiftCount: 8 -----------------------------> Scale factor, defined by AutoTuningLevel
    + NoOption:
    + NoOption:
    + SACKPermitted:
    
  • Уровень автонастройки: отключен

    Frame: Number = 353, Captured Frame Length = 62, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[D8-FE-E3-65-F3-FD],SourceAddress:[C8-5B-76-7D-FA-7F]
    + Ipv4: Src = 192.169.0.5, Dest = 192.169.0.4, Next Protocol = TCP, Packet ID = 2576, Total IP Length = 48
    - Tcp: [Bad CheckSum]Flags=......S., SrcPort=60956, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=2315885330, Ack=0, Win=64240 ( ) = 64240
    SrcPort: 60956
    DstPort: Microsoft-DS(445)
    SequenceNumber: 2315885330 (0x8A099B12)
    AcknowledgementNumber: 0 (0x0)
    + DataOffset: 112 (0x70)
    + Flags: ......S. ---------------------------------------------------------> SYN Flag set
    Window: 64240 ( ) = 64240 ----------------------------------------> TCP Receive Window set as 64K as per NIC Link bitrate. Note there is no Scale Factor defined. In this case, Scale factor is not being sent as a TCP Option, so it will not be used by Windows.
    Checksum: 0x817E, Bad
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + NoOption:
    + NoOption:
    + SACKPermitted:
    
  • Уровень автонастройки: ограниченный

    Frame: Number = 3, Captured Frame Length = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[D8-FE-E3-65-F3-FD],SourceAddress:[C8-5B-76-7D-FA-7F]
    + Ipv4: Src = 192.169.0.5, Dest = 192.169.0.4, Next Protocol = TCP, Packet ID = 2319, Total IP Length = 52
    - Tcp: [Bad CheckSum]Flags=......S., SrcPort=60890, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=1966088568, Ack=0, Win=64240 ( Negotiating scale factor 0x4 ) = 64240
    SrcPort: 60890
    DstPort: Microsoft-DS(445)
    SequenceNumber: 1966088568 (0x75302178)
    AcknowledgementNumber: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Flags: ......S. ---------------------------------------------------------> SYN Flag set
    Window: 64240 ( Negotiating scale factor 0x4 ) = 64240 ---------> TCP Receive Window set as 64K as per NIC Link bitrate. Note it shows the 0x4 Scale Factor.
    Checksum: 0x8182, Bad
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + NoOption:
    + WindowsScaleFactor: ShiftCount: 4 -------------------------------> Scale factor, defined by AutoTuningLevel.
    + NoOption:
    + NoOption:
    + SACKPermitted:
    
  • Уровень автонастройки: высокий уровень ограниченного доступа

    Frame: Number = 115, Captured Frame Length = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[D8-FE-E3-65-F3-FD],SourceAddress:[C8-5B-76-7D-FA-7F]
    + Ipv4: Src = 192.169.0.5, Dest = 192.169.0.4, Next Protocol = TCP, Packet ID = 2388, Total IP Length = 52
    - Tcp: [Bad CheckSum]Flags=......S., SrcPort=60903, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=1463725706, Ack=0, Win=64240 ( Negotiating scale factor 0x2 ) = 64240
    SrcPort: 60903
    DstPort: Microsoft-DS(445)
    SequenceNumber: 1463725706 (0x573EAE8A)
    AcknowledgementNumber: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Flags: ......S. ---------------------------------------------------------> SYN Flag set
    Window: 64240 ( Negotiating scale factor 0x2 ) = 64240 ---------> TCP Receive Window set as 64K as per NIC Link bitrate. Note it shows the 0x2 Scale Factor.
    Checksum: 0x8182, Bad
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + NoOption:
    + WindowsScaleFactor: ShiftCount: 2 ------------------------------> Scale factor, defined by AutoTuningLevel
    + NoOption:
    + NoOption:
    + SACKPermitted:
    
  • Уровень автонастройки: экспериментальный

    Frame: Number = 238, Captured Frame Length = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[D8-FE-E3-65-F3-FD],SourceAddress:[C8-5B-76-7D-FA-7F]
    + Ipv4: Src = 192.169.0.5, Dest = 192.169.0.4, Next Protocol = TCP, Packet ID = 2490, Total IP Length = 52
    - Tcp: [Bad CheckSum]Flags=......S., SrcPort=60933, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=2095111365, Ack=0, Win=64240 ( Negotiating scale factor 0xe ) = 64240
    SrcPort: 60933
    DstPort: Microsoft-DS(445)
    SequenceNumber: 2095111365 (0x7CE0DCC5)
    AcknowledgementNumber: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Flags: ......S. ---------------------------------------------------------> SYN Flag set
    Window: 64240 ( Negotiating scale factor 0xe ) = 64240 ---------> TCP Receive Window set as 64K as per NIC Link bitrate. Note it shows the 0xe Scale Factor.
    Checksum: 0x8182, Bad
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + NoOption:
    + WindowsScaleFactor: ShiftCount: 14 -----------------------------> Scale factor, defined by AutoTuningLevel
    + NoOption:
    + NoOption:
    + SACKPermitted:
    

Устаревшие параметры TCP

Следующие параметры реестра из Windows Server 2003 больше не поддерживаются и игнорируются в более поздних версиях.

  • TcpWindowSize
  • NumTcbTablePartitions
  • MaxHashTableSize

Все эти параметры находились в следующем подразделе реестра:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

Платформа фильтрации Windows

Windows Vista и Windows Server 2008 представили платформу фильтрации Windows (МПП). WFP предоставляет API независимым поставщикам программного обеспечения, не связанным с Microsoft, для создания фильтров обработки пакетов. Примеры включают брандмауэр и антивирусное ПО.

Примечание.

Плохо написанный фильтр МПП может значительно снизить производительность сети сервера. Дополнительные сведения см. в статье Перенос драйверов и приложений для обработки пакетов в МПП в Windows Центр разработки.

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