Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается оптимизация производительности сетевого адаптера в средах Windows Server. Настройка производительности сетевого адаптера может значительно повысить пропускную способность, уменьшить задержку и максимизировать использование ресурсов для рабочих нагрузок сервера.
Правильные параметры настройки сетевых адаптеров зависят от следующих переменных:
- сетевой адаптер и набор его функций;
- Тип рабочей нагрузки, выполняемой сервером
- аппаратные и программные ресурсы сервера;
- Ваши цели по производительности для сервера.
Оптимальные параметры настройки зависят от конкретной конфигурации оборудования, требований к рабочей нагрузке и целей производительности. Перед реализацией изменений оцените текущую производительность сети и определите области для улучшения. Некоторые функции и параметры могут отличаться между версиями.
В следующих разделах описывается ряд параметров настройки производительности.
Разгрузка функций
Функции разгрузки сети переносят задачи обработки с ЦП на оборудование сетевого адаптера, сокращая нагрузку на систему и повышая общую производительность сети. Распространенные функции разгрузки включают разгрузка контрольной суммы TCP, разгрузку больших сегментов (LSO) и масштабирование на стороне получения (RSS).
Включение функций разгрузки сетевого адаптера обычно полезно. Однако сетевой адаптер может быть недостаточно мощным для обеспечения разгрузки при высокой пропускной способности. Например, рассмотрим сетевой адаптер с ограниченными аппаратными ресурсами. В этом случае включение функций разгрузки сегментации может снизить максимальную устойчивую пропускную способность адаптера. Однако если сниженная пропускная способность допустима, следует включить функции сегментационной разгрузки.
Для некоторых сетевых адаптеров требуется включить функции разгрузки независимо от пути отправки и получения.
Внимание
Не используйте функции разгрузки 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
Прежде чем приступить к использованию профилей RSS, ознакомьтесь с доступными профилями, чтобы понять, когда они полезны и как они применяются к сетевой среде и оборудованию.
Например, откройте диспетчер задач и просмотрите логические процессоры на сервере. Если они, как представляется, недостаточно используются для получения трафика, можно попытаться увеличить число очередей RSS по умолчанию от двух до максимального, что поддерживает сетевой адаптер. В используемом сетевом адаптере могут быть параметры для изменения числа очередей RSS в драйвере.
Ресурсы сетевого адаптера
Для сетевых адаптеров, которые позволяют вручную настраивать ресурсы, такие как получение и отправка буферов, следует увеличить выделенные ресурсы.
В некоторых сетевых адаптерах устанавливаются небольшие буферы приема для экономии выделенной памяти от узла. Низкое значение приводит к потере пакетов и снижению производительности. Поэтому для сценариев с интенсивным приемом рекомендуется увеличить буфер приема до максимума.
Если сетевой адаптер не предоставляет конфигурацию ресурсов вручную, он динамически настраивает ресурсы или ресурсы устанавливаются в фиксированное значение, которое невозможно изменить.
Управление прерываниями
Для управления модерацией прерываний некоторые сетевые адаптеры предоставляют различные уровни модерации прерываний, различные параметры объединения буферов (иногда отдельно для буферов отправки и получения) или обоих.
Следует рассмотреть возможность модерации прерываний для ЦП-интенсивных рабочих нагрузок. При использовании модерации прерываний рассмотрите компромисс между экономией ЦП узла и задержкой и увеличением экономии ЦП узла из-за большего количества прерываний и меньшей задержки. Если сетевой адаптер не выполняет модерацию прерываний, но он предоставляет объединение буферов, можно повысить производительность, увеличив число объединенных буферов, чтобы разрешить больше буферов на отправку или получение.
Обработка пакетов с низкой задержкой
Многие сетевые адаптеры позволяют настраивать параметры для оптимизации системной задержки. Задержка — это время между обработкой входящего пакета сетевым драйвером и отправкой этого пакета обратно. Обычно это время измеряется в микросекундах. Для сравнения время передачи пакетов на длинные расстояния обычно измеряется в миллисекундах (порядка величины больше). Эта настройка не сокращает время, затрачиваемое на передачу пакета.
В следующем списке приведены некоторые рекомендации по настройке производительности для сетей с учетом микросекунда:
Если BIOS поддерживает его, установите для компьютера BIOS высокий уровень производительности с
C-states
отключенным. Некоторые системы обеспечивают более высокую производительность, если операционная система управляет управлением питанием. Вы можете проверить и настроить параметры управления питанием из параметров питания или с помощьюpowercfg
команды. Дополнительные сведения см. в разделе "Параметры командной строки Powercfg".Задайте для профиля управления питанием операционной системы высокий уровень производительности. Этот параметр не работает должным образом, если системный BIOS установлен для отключения управления питанием операционной системы.
Включите статические разгрузки. Например, включите параметры контрольной суммы UDP, контрольных сумм TCP и функцию крупной разгрузки (LSO).
Если трафик многопоточный, например при получении высокообъёмного многоадресного трафика, включите RSS.
Отключите параметр Модерация прерываний для драйверов сетевых карт, которые требуют минимально возможной задержки. Помните, что эта конфигурация может использовать больше времени ЦП и представляет компромисс.
Обрабатывайте прерывания сетевого адаптера и DPC на центральном процессоре, который делит процессорный кэш с ядром, используемым программой (пользовательским потоком), обрабатывающей пакет. Настройка привязки ЦП может быть использована для назначения процесса на определенные логические процессоры в рамках конфигурации RSS. Использование одного ядра для прерываний, DPC и пользовательского потока ведет к снижению производительности из-за увеличения нагрузки, поскольку ISR, DPC и поток будут конкурировать за ядро.
Прерывания управления системой
Во многих аппаратных системах для различных функций обслуживания используются прерывания управления системой (SMI), таких как обнаружение ошибок памяти с кодом исправления ошибок (ECC), поддержание совместимости с устаревшими USB, управление вентилятором, а также управление параметрами питания под контролем BIOS.
SMI является самым приоритетным прерыванием в системе и помещает ЦП в режим управления. Этот режим перехватывает все остальные действия, пока SMI выполняет обработчик прерываний, обычно содержащийся в BIOS. К сожалению, это поведение может привести к всплескам задержки в 100 микросекундах или более.
Когда необходимо обеспечить минимальную задержку, следует запросить у поставщика оборудования версию BIOS, которая минимизирует количество прерываний SMI до возможного минимума. Эти версии BIOS часто называются BIOS с низкой задержкой или SMI free BIOS. В некоторых случаях для аппаратной платформы невозможно полностью исключить активность SMI, так как она используется для управления важными функциями, такими как вентиляторы охлаждения.
Операционная система не может управлять SMIs, так как логический процессор работает в специальном режиме обслуживания, что предотвращает вмешательство операционной системы.
Автоматическая настройка окна приёма TCP
В сетевом стеке Windows используется функция, которая называется уровнем автоматического перенастройки окна приема TCP для согласования размера окна получения TCP. Эта функция может согласовывать определенный размер окна получения для каждого соединения TCP во время подтверждения TCP и повысить производительность TCP-подключений.
Ранее стек сети Windows использовал окно получения фиксированного размера размером 65 535 байт, которое ограничивает общую пропускную способность для подключений. Общая достижимая пропускная способность TCP-подключений может ограничить сценарии использования сети. Автоматическая настройка окна приемки TCP позволяет этим сценариям полностью использовать сеть.
Для окна получения TCP с определенным размером можно использовать следующее уравнение, чтобы вычислить общую пропускную способность одного подключения:
Общая достижимая пропускная способность в байтах = размер окна получения TCP в байтах * (1 / задержка подключения в секундах)
Например, для подключения 1 Гбит/с с задержкой в 10 мс общая достижимая пропускная способность составляет всего 51 Мбит/с. Это значение разумно для крупной корпоративной сетевой инфраструктуры. Однако с помощью автоматической настройки приёмного окна подключение может достичь полной скорости передачи 1 Гбит/с.
Некоторые приложения определяют размер окна получения TCP. Если приложение не определяет размер окна получения, скорость связи определяет размер следующим образом:
Скорость связи | Размер окна получения |
---|---|
Менее 1 Мбит/с | 8 КБ |
от 1 до 100 Мбит/с | 17 КБ |
100 Мбит/с до 10 Гбит/с | 64 КБ |
10 Гбит/с или быстрее | 128 КБ |
Например, на компьютере с установленным сетевым адаптером размером 1 Гбит/с размер окна должен быть 64 КБ.
Эта функция также обеспечивает полное использование других функций для повышения производительности сети. К этим функциям относятся остальные параметры TCP, определенные в RFC 1323. Компьютеры под управлением Windows могут использовать эти функции для согласования размеров окна приема TCP, которые меньше, но масштабируются по определенному значению в зависимости от конфигурации. Это поведение упрощает обработку размеров сетевых устройств.
Примечание.
Может возникнуть проблема, из-за которой сетевое устройство не соответствует параметру масштабирования окна TCP, как определено в RFC 1323 и поэтому не поддерживает коэффициент масштабирования. В таких случаях обратитесь к поставщику сетевых устройств.
Уровни автоматической настройки
Вы можете настроить автонастройку окна получения TCP на любой из пяти уровней. Уровень по умолчанию — "Обычный". В следующей таблице описаны уровни.
Уровень | Шестнадцатеричное значение | Комментарии |
---|---|---|
Обычный (по умолчанию) | 0x8 (коэффициент масштабирования 8) | Установите окно получения TCP для увеличения размера, чтобы соответствовать почти всем сценариям. |
Отключено | Нет доступных коэффициентов масштабирования | Задайте окно получения TCP по умолчанию. |
С ограниченным доступом | 0x4 (коэффициент масштабирования 4) | Установите возможность увеличения окна получения TCP за пределы его значения по умолчанию, но ограничьте это увеличение в некоторых сценариях. |
Строго ограниченное | 0x2 (коэффициент масштабирования 2) | Задайте для окна получения TCP значение, превышающее значение по умолчанию, но сделайте это очень консервативно. |
Экспериментальный | 0xE (коэффициент масштабирования 14) | Настройте окно приема TCP так, чтобы оно адаптировалось для удовлетворения экстремальных сценариев. |
Если вы используете приложение для записи сетевых пакетов, приложение должно сообщать данные, похожие на приведенные ниже примеры для различных параметров уровня автоматического настройки окна.
Уровень автонастройки: обычный (состояние по умолчанию)
В этом примере показаны выходные данные средства отслеживания пакетов, когда для уровня автоматической настройки окна приема TCP установлено значение Обычный. Коэффициент масштабирования равен 8.
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:
Уровень автонастройки: отключен
В этом примере показаны выходные данные средства захвата пакетов, когда уровень автонстройки окна получения TCP установлен в положение Отключено. Коэффициент масштабирования не используется.
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:
Уровень автонастройки: ограниченный
В этом примере показано выходные данные средства отслеживания пакетов, когда для параметра "Режим автоматического настройки TCP" задано значение "Ограниченный". Коэффициент масштабирования равен 4.
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:
Уровень автонастройки: высокая степень ограничений
В этом примере показано выходные данные средства отслеживания пакетов, когда для параметра "Автонастройка" окна приема TCP задано значение "Строго ограниченный". Коэффициент масштабирования равен 2.
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:
Уровень автонастройки: экспериментальный
В этом примере показаны выходные данные инструмента захвата пакетов, когда для уровня автонастройки окна получения TCP задан параметр Экспериментальный. Коэффициент масштабирования равен 14.
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 PowerShell или netsh
команду Windows для проверки или изменения уровня автоматического настройки окна получения TCP.
Примечание.
Начиная с Windows Server 2019, вы больше не можете использовать реестр для настройки размера окна получения TCP. Дополнительные сведения о устаревших параметрах см. в разделе "Устаревшие параметры TCP".
Вы можете использовать командлет Get-NetTCPSetting
для проверки или изменения уровня автонастройки. Чтобы просмотреть и изменить текущий параметр, выполните следующие действия.
Откройте PowerShell от имени администратора и выполните следующий командлет:
Get-NetTCPSetting | Select SettingName,AutoTuningLevelLocal
Результат аналогичен следующему примеру:
SettingName AutoTuningLevelLocal ----------- -------------------- Automatic InternetCustom Normal DatacenterCustom Normal Compat Normal Datacenter Normal Internet Normal
Чтобы изменить параметр, выполните следующую команду. Не забудьте установить нужный уровень автотюнинга
<value>
. Дополнительные сведения см. в разделе Set-NetTCPSetting.Set-NetTCPSetting -AutoTuningLevelLocal <value>
Платформа фильтрации Windows
Платформа фильтрации Windows (WFP), представленная в Windows Server 2008, предоставляет API независимым поставщикам программного обеспечения, не связанным с Microsoft, для создания фильтров обработки пакетов. МПП позволяет стороннему программному обеспечению проверять, изменять или фильтровать сетевой трафик на различных уровнях сетевого стека. Хотя эта функция важна для приложений безопасности, она может создать избыточную нагрузку на производительность, если она не реализована правильно. Примеры включают брандмауэр и антивирусное ПО.
Плохо написанный фильтр МПП может значительно снизить производительность сети сервера. Дополнительные сведения см. в статье Перенос драйверов и приложений для обработки пакетов в МПП в Windows Центр разработки.
Устаревшие параметры TCP
Следующие параметры реестра из Windows Server 2003 больше не поддерживаются и игнорируются в более поздних версиях.
- TcpWindowSize
- Число разделов таблицы Tcb
- MaxHashTableSize
Все эти параметры расположены в следующем подразделе реестра: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters