Известные проблемы производительности TCP/IP
Эта статья входит в трехсерийную серию. Вы можете просмотреть часть 1: обзор производительности TCP/IP и часть 2: проблемы сетевой производительности TCP/IP.
В этой статье описываются следующие проблемы производительности TCP/IP:
Медленная скорость пропускной способности при высокой задержке и пропускной способности сети
Два сервера, расположенные на разных сайтах, подключены к сети с высокой задержкой. Пропускная способность, измеряемая с помощью средства ctsTraffic, ниже базовой.
Это происходит из-за того, что параметр TCP Window Scale не включен на любом сервере. Используйте Windows командную подсказку или Windows PowerShell, чтобы включить параметр, установив уровень автотунинга TCP для получения окна.
Чтобы включить уровень автотунинга, используйте командную подсказку
Выполните следующую команду:
Чтобы проверить, включен ли уровень автотунинга, используйте следующую команду:
Чтобы включить уровень автотунинга, используйте PowerShell
Запустите следующий командлет:
Чтобы проверить, включен ли уровень автотунинга, используйте следующий cmdlet:
Существует пять уровней для получения автоматического окне: отключенный, ограниченный, ограниченный, нормальный и экспериментальный. Дополнительные сведения о том, как автотунинг влияет на пропускную способность, см. в дополнительных сведениях о сетевых адаптаторах для настройки производительности.
Медленная скорость пропускной способности при низкой задержке и высокой пропускной способности сети
Два сервера подключены к одной сети с низкой задержкой и высокой пропускной способностью. При создании базовой или тестовой производительности TCP с помощью средства ctsTraffic в многоядерном сервере ЦП 0 скачет только процессор 0.
Эта проблема возникает из-за того, что функция «Получение бокового масштабирования» (RSS) или «Очередь виртуальных машин» (VMQ) не включена или не настроена правильно. Используйте VMQ, когда физический компьютер является гипервизором. Если это не так, вьйте RSS как на операционной системе (ОС), так и на сетевых картах.
Беспроводные сетевые карты не поддерживают функции RSS или VMQ.
Включить RSS для ОС
Включить RSS с помощью командной подсказки или PowerShell следующим образом:
Командная подсказка: netsh int tcp set global rss=enabled
Включить RSS для сетевых карт
Сначала проверьте, включена ли функция RSS. Проверьте расширенные свойства сетевой карты для связанной конфигурации с помощью следующего cmdlet:
Изменения в расширенных свойствах могут привести к перерыву или потере подключения к сети. Перед внесением изменений обратитесь к документации поставщика NIC.
Выполните следующие действия, чтобы включить RSS для сетевых карт:
RSS также можно включить с помощью cmdlet PowerShell:
Проблемы с сетевой сетью
В этом разделе описывается, как проверить на факты базовых сетевых проблем при измерении базовой пропускной способности или устранении проблем пропускной способности.
Чтобы получить анализ журналов уровня пакетов, проверьте проблемы с сетью, используя средство захвата сетевых пакетов (например, Microsoft Network Monitor, Wireshark или ctsTraffic).
Действия для записи журналов с помощью средств захвата сетевых пакетов
Начните ведение журнала с помощью Microsoft Network Monitor или Wireshark для захвата трафика на обеих конечных точках. Вы также можете использовать встроенный Windows для захвата следующим образом:
Откройте командную подсказку в качестве администратора.
Выполните следующую команду:
При использовании команды может потребоваться несколько netsh trace захватов.
Остановите ведение журнала. Для Windows встроенного средства захвата введите командную подсказку NETSH TRACE STOP в качестве администратора.
Анализ файла захвата
Вот пример, показывающий, как анализировать отфильтрованный результат. В этом сценарии средство ctsTraffic использует шаблон push (шаблон по умолчанию), который означает, что пакет отправляется от клиента на сервер.
Откройте файл захвата в Microsoft Network Monitor.
Фильтр сетевого трассировки с помощью Property.TCPRetransmit==1 && tcp.Port==4444 фильтра, который находит пакеты ретрансляторов. Повторное выполнение пакета означает, что TCP-подтверждение данной последовательности TCP от отправитель не получает.
Чтобы проанализировать файл ETL, перейдите в параметры инструментов > > Parser Profiles > Windows > Set As Active > OK.
Как показано на скриншоте, кадр повторно передается дважды, что означает, что он передается отправителю #441 три раза. Для определения этого кадра используйте тот же номер последовательности TCP (2278877548).
Щелкните правой кнопкой мыши SequenceNumber в подробностях кадра и выберите Добавить выбранное значение для отображения фильтра.
Отключим предыдущий фильтр, добавив «//» следующим образом:
Нажмите Применить. Полная последовательность TCP с этим номером последовательности отображается следующим образом:
Этот результат показывает, что исходный кадр не получается сервером и повторно #441 отправляется отправителю. Повторное выполнение кадра происходит, если не получено подтверждения последовательности. Чтобы понять, как работает TCP, см. трехначерное рукопожатие с помощью TCP/IP и описание Windows TCP. Затем скопируйте фильтр TCP.SequenceNumber == последовательности из трассировки клиента и вклеите его на след сервера.
На сервере получается только один пакет данной последовательности, как показано в следующем результате:
Этот результат доказывает, что на промежуточных сетевых устройствах происходит потеря пакета от отправщика к приемнику. Пакеты покидают отправитель, но никогда не достигают приемник. Это проблема с сетевой сетью, которая должна быть решена сетевыми администраторами.
Настройка производительности сетевых адаптеров
область применения: Windows server 2022, Windows server 2019, Windows Server 2016, Azure Stack хЦи, версии 21H2 и 20H2
используйте сведения в этом разделе для настройки сетевых адаптеров производительности для компьютеров под управлением Windows Server 2016 и более поздних версий. Если сетевые адаптеры предоставляют параметры настройки, эти параметры можно использовать для оптимизации пропускной способности сети и использования ресурсов.
Правильные параметры настройки для сетевых адаптеров зависят от следующих переменных.
В следующих разделах описывается ряд параметров настройки производительности.
Включение функций разгрузки
Включение функций разгрузки на сетевом адаптере обычно имеет положительный эффект. Однако сетевой адаптер может оказаться недостаточно мощным для обработки возможностей разгрузки с высокой пропускной способностью.
Не используйте разгрузку задач IPSec функции разгрузки или разгрузку TCP Chimney. эти технологии являются устаревшими в Windows Server 2016 и могут негативно сказаться на производительности сервера и сети. Кроме того, эти технологии могут не поддерживаться корпорацией Майкрософт в будущем.
Например, рассмотрим сетевой адаптер с ограниченными аппаратными ресурсами. В этом случае включение возможности разгрузки сегментации может снизить максимальную устойчивую пропускную способность адаптера. Однако если приемлема пропускная способность, следует включить функции сегментирования разгрузки.
Для некоторых сетевых адаптеров требуется включить разгрузку компонентов независимо для путей отправки и получения.
Включение масштабирования на стороне приема (RSS) для веб-серверов
RSS способно повысить веб-масштабируемость и производительность, когда число сетевых адаптеров меньше количества логических процессоров на сервере. Когда весь веб-трафик проходит через сетевые адаптеры, поддерживающие RSS, сервер может обрабатывать входящие веб-запросы с разных соединений одновременно на разных процессорах.
Избегайте использования сетевых адаптеров, отличных от RSS, и сетевых адаптеров, поддерживающих RSS, на одном сервере. Из-за логики распределения нагрузки в RSS и протоколе HTTP, производительность может быть значительно снижена, если сетевой адаптер, не поддерживающий RSS, принимает веб-трафик на сервере с одним или несколькими сетевыми адаптерами, поддерживающими RSS. В этом случае необходимо использовать сетевые адаптеры, поддерживающие RSS, или отключить RSS на вкладке Дополнительные свойства в свойствах сетевого адаптера.
Чтобы определить, поддерживает ли сетевой адаптер RSS, можно просмотреть сведения RSS на вкладке Дополнительные свойства в свойствах сетевого адаптера.
Профили RSS и очереди RSS
стандартный профиль RSS по умолчанию — нумастатик, который отличается от используемого по умолчанию предыдущих версий Windows. Прежде чем приступить к использованию профилей RSS, ознакомьтесь с доступными профилями, чтобы понять, когда они полезны и как они применяются к сетевой среде и оборудованию.
Например, если открыть диспетчер задач и проверить логические процессоры на сервере и они будут недостаточно загружены для приема трафика, можно попробовать увеличить число очередей RSS по умолчанию, равное двум, до максимума, поддерживаемого сетевым адаптером. В используемом сетевом адаптере могут быть параметры для изменения числа очередей RSS в драйвере.
Увеличение ресурсов сетевого адаптера
Для сетевых адаптеров, позволяющих вручную настраивать ресурсы, такие как буферы приема и отправки, следует увеличить выделенные ресурсы.
В некоторых сетевых адаптерах устанавливаются небольшие буферы приема для экономии выделенной памяти от узла. Это ведет к потере пакетов и снижению производительности. Поэтому для сценариев с интенсивным приемом рекомендуется увеличить буфер приема до максимума.
Если сетевой адаптер не предоставляет настройки ресурсов вручную, он динамически настраивает ресурсы, или для ресурсов задано фиксированное значение, которое нельзя изменить.
Включение контроля прерываний
Для управления прерываниями прерываний некоторые сетевые адаптеры предоставляют различные уровни управления прерываниями, различные параметры объединения буфера (иногда отдельно для буферов отправки и получения) или и то, и другое.
Следует рассмотреть возможность контроля прерываний для рабочих нагрузок, привязанных к ЦП. При использовании управления прерываниями учитывайте компромисс между экономией ЦП узла и задержкой, а также увеличением экономии ресурсов узла из-за большего количества прерываний и снижения задержки. Если сетевой адаптер не выполняет контроль прерываний, но он предоставляет объединение буферов, можно повысить производительность, увеличив число Объединенных буферов, чтобы освободить больше буферов на отправку или получение.
Настройка производительности для обработки пакетов с низкой задержкой
Многие сетевые адаптеры позволяют настраивать параметры для оптимизации системной задержки. Задержка — это время между обработкой входящего пакета сетевым драйвером и отправкой этого пакета обратно. Обычно это время измеряется в микросекундах. Для сравнения время передачи пакетов на длинные дистанции обычно измеряется в миллисекундах (это на порядок дольше). Эта настройка не сокращает время прохождения пакета.
Ниже приведены некоторые советы по настройке производительности для загруженных сетей, в которых на счету каждая микросекунда.
Установите в операционной системе профиль управления электропитанием Высокая производительность.
Этот параметр не работает должным образом, если 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
Для настройки производительности TCP можно использовать следующие элементы.
Автоматическая настройка окна приема TCP
в более ранних версиях Windows сетевой стек Windows использовал окно приема фиксированного размера (65 535 байт), которое ограничивает общую возможную пропускную способность для подключений. Общая пропускная способность подключений TCP может ограничивать сценарии использования сети. Автоматическая настройка окна приема TCP позволяет этим сценариям полностью использовать сеть.
Для окна приема TCP, имеющего определенный размер, можно использовать следующее уравнение для вычисления общей пропускной способности отдельного соединения.
Общая пропускная способность в байтах Размер окна приема TCP в байтах * (1/ Задержка подключения в секундах)
Например, для соединения с задержкой 10 мс общая пропускная способность составляет только 51 Мбит/с. Это значение целесообразно для большой корпоративной сетевой инфраструктуры. Однако с помощью автонастройки для настройки окна приема подключение может обеспечить полную скорость линии для подключения 1 Гбит/с.
Некоторые приложения определяют размер окна приема TCP. Если приложение не определяет размер окна приема, скорость связи определяется следующим образом:
Например, на компьютере с установленным сетевым адаптером с 1 Гбит/с размер окна должен быть 64 КБ.
Эта функция также обеспечивает полное использование других функций для повышения производительности сети. Эти функции включают остальные параметры TCP, определенные в RFC 1323. используя эти функции, компьютеры на базе Windows могут согласовать размеры окна приема TCP, которые меньше, но масштабируются по определенному значению в зависимости от конфигурации. Такое поведение упрощает обработку размеров для сетевых устройств.
Может возникнуть проблема, при которой сетевое устройство не соответствует параметру TCP Window Scale, как определено в RFC 1323 и, следовательно, не поддерживает коэффициент масштабирования. в таких случаях обратитесь к этой статье KB 934430, если вы пытаетесь использовать Windows Vista за устройством брандмауэра или обратитесь в службу поддержки для поставщика сетевых устройств.
Проверка и настройка уровня автонастройки окна приема TCP
для просмотра или изменения уровня автонастройки окна приема TCP можно использовать команды netsh или командлеты Windows PowerShell.
в отличие от версий Windows, которые предварительно устарели Windows 10 или Windows Server 2019, вы больше не можете использовать реестр для настройки размера окна приема TCP. Дополнительные сведения об устаревших параметрах TCPсм. здесь.
Подробные сведения о доступных уровнях автонастройки см. в разделе уровни автонастройки.
Использование команды Netsh для просмотра или изменения уровня автонастройки
Чтобы проверить текущие параметры, откройте окно командной строки и выполните следующую команду:
Выходные данные этой команды должны выглядеть следующим образом:
Чтобы изменить этот параметр, выполните в командной строке следующую команду:
В предыдущей команде представляет новое значение для уровня автоматической настройки.
Использование PowerShell для просмотра или изменения уровня автонастройки
Чтобы проверить текущие параметры, откройте окно PowerShell и выполните следующий командлет.
Выходные данные этого командлета должны выглядеть следующим образом.
Чтобы изменить этот параметр, выполните следующий командлет в командной строке PowerShell.
В предыдущей команде представляет новое значение для уровня автоматической настройки.
Дополнительные сведения об этих командлетах см. в следующих статьях:
Уровни автонастройки
Можно настроить автоматическую настройку окна приема на любой из пяти уровней. Уровень по умолчанию — Обычная. В следующей таблице описаны уровни.
| Level | Шестнадцатеричное значение | Комментарии |
|---|---|---|
| Normal (по умолчанию) | 0x8 (коэффициент масштабирования 8) | Задайте для окна приема TCP значение рост в соответствии с практически всеми сценариями. |
| Выключено | Коэффициент масштабирования недоступен | Задайте для окна приема TCP значение по умолчанию. |
| С ограниченным доступом | 0x4 (коэффициент масштабирования 4) | Задайте размер окна приема TCP, превышающего значение по умолчанию, но ограничьте такой рост в некоторых сценариях. |
| С высоким уровнем ограничений | 0x2 (коэффициент масштабирования 2) | Задайте размер окна приема TCP, превышающего значение по умолчанию, но это очень консервативно. |
| Экспериментальный | 0xE (коэффициент масштабирования 14) | Задайте для окна приема TCP значение рост в соответствии с экстремальными сценариями. |
Если для записи сетевых пакетов используется приложение, приложение должно сообщить данные, аналогичные приведенным ниже, для различных параметров автонастройки окна.
Уровень автонастройки: нормальный (состояние по умолчанию)
Уровень автонастройки: отключен
Уровень автонастройки: ограниченный
Уровень автонастройки: очень ограниченный
Уровень автонастройки: экспериментальный
Устаревшие параметры TCP
следующие параметры реестра из Windows Server 2003 больше не поддерживаются и не учитываются в более поздних версиях.
Все эти параметры были расположены в следующем подразделе реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
Платформа фильтрации Windows
Windows в Vista и Windows Server 2008 появилась платформа фильтрации Windows (WFP). WFP предоставляет интерфейсы API независимым поставщикам программного обеспечения (ISV) для создания фильтров обработки пакетов. Например, для брандмауэров и антивирусного ПО.
Плохо написанный фильтр WFP может значительно снизить производительность сети сервера. дополнительные сведения см. в разделе перенос Packet-Processing драйверов и приложений в WFP в Windows Центр разработки.
Ссылки на все разделы данного руководства см. в разделе Настройка производительности сетевой подсистемы.
Получение функции автоматической настройки окна для трафика HTTP на Windows компьютерах на основе Vista
В этой статье описывается, как функция автоматической настройки получения окна улучшает передачу данных, как включить/размять эту функцию для трафика HTTP на Windows компьютерах на основе Vista, а также проблемы, которые могут возникнуть после того, как вы встроит эту функцию для трафика HTTP.
Применяется к: Windows Vista
Исходный номер КБ: 947239
Введение
Windows Vista включает функцию автоматической настройки «Получение окна», которая повышает производительность для программ, которые получают данные TCP по сети. Однако эта функция отключена по умолчанию для программ, Windows http services (WinHTTP). Некоторые примеры программ, которые используют WinHTTP, включают автоматические обновления, обновления Windows, удаленное подключение к рабочему столу, Windows Explorer (копия сетевого файла) и Sharepoint (WebDAV).
Если вы включаете получение автоматической настройки окна для трафика WinHTTP, передача данных по сети может быть более эффективной. Однако в некоторых случаях может возникнуть более медленная передача данных или потеря подключения, если в сети используется старый маршрутизатор и брандмауэр, которые не поддерживают эту функцию. Например, при использовании Windows Internet Explorer для доступа к приложениям, которые находятся в Microsoft Office SharePoint Server, трафик HTTP может замедлиться. Это происходит из-за того, что некоторые маршрутизаторы не поддерживают функцию автоматической настройки «Получение окна».
С момента выпуска Windows 7, получение автоматической настройки окна теперь доступно для программ, которые используют интерфейс программирования приложений Windows (WinINet) для http-запросов, а не WinHTTP. Некоторые примеры программ, которые используют WinINet для трафика HTTP, включают Internet Explorer, Outlook и Outlook Express.
Как функция получения автоматической настройки окна улучшает передачу данных
Функция автоматической настройки «Получение окна» позволяет операционной системе постоянно отслеживать условия маршрутизания, такие как пропускная способность, задержка сети и задержка приложения. Поэтому операционная система может настраивать подключения путем масштабирования окна получения TCP для максимальной производительности сети. Чтобы определить оптимальный размер окна получения, функция Автоматической настройки окне получения измеряет продукты, которые задерживают пропускную способность, и показатели получения приложения. Затем функция автоподстройки «Получение окна» адаптируется к размеру получаемого окна текущей передачи, чтобы воспользоваться любой неиспользоваемой пропускной способностью.
Включить функцию автоматической настройки окна для трафика WinHTTP
Необходимые условия: необходимо запускать Windows Vista Пакет обновления 2 или Windows Vista Пакет обновления 1 или установить 939006 для автоматической настройки для WinHTTP.
В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о том, как создать и восстановить реестр, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт: 322756 Как создать и восстановить реестр в Windows
Чтобы включить функцию автоматической настройки окне получения для трафика HTTP, необходимо изменить реестр. Для этого выполните следующие действия:
Функция автоматической настройки окна получения включена для трафика HTTP, если запись реестра TcpAutotuning установлена до 1. Функция автоматической настройки окне получения не включена для трафика HTTP, если запись реестра TcpAutotuning не существует или если она установлена для значения не 1.
Чтобы включить Windows (WinINet) в Windows 7, выполните следующие действия:
Нажмите кнопку Начните, введите regedit в поле Программы поиска и файлы и нажмите кнопку ENTER.
Указать на новый, а затем нажмите значение DWORD.
Введите TcpAutotuning и нажмите кнопку ENTER.
Щелкните правой кнопкой мыши TcpAutotuning и нажмите кнопку Изменить.
В поле Значение данных введите 1, а затем нажмите кнопку ОК.
Повторите шаг 2 через шаг 6, чтобы добавить запись TcpAutotuning со значением DWORD 1 в следующем подкайке реестра:
Закройте редактор реестра.
WinINet включен, если записи реестра TcpAutotuning настроены на 1. WinINet не включен, если записи реестра TcpAutotuning не существуют или если они задаваются значению, которое не является 1.
Проверьте, устранена ли проблема. Если проблема устранена, вы закончите с этой статьей. Если нет, обратитесь в службу технической поддержки.
Проблемы, которые могут возникнуть после того, как вы включаете функцию автоматической настройки окне получения для трафика HTTP
При включении функции автоматической настройки окне получения для http-трафика старые маршрутизаторы, старые брандмауэры и старые операционные системы, несовместимые с функцией автоматической настройки окне получения, иногда могут вызывать медленную передачу данных или потерю подключения. При этом пользователи могут испытывать медленную производительность. Или приложения могут сбой. Эти старые устройства не соответствуют стандарту RFC 1323. Некоторые производители устройств предоставляют программное обеспечение, которое работает вокруг ограничений оборудования. Свяжитесь с производителем устройств, чтобы определить, доступно ли такое программное обеспечение.
Если несовместимые устройства находятся за пределами организации и вы не можете изменить устройства, эта проблема сохранится. Поэтому может потребоваться отключить функцию автоматической настройки окне получения для http-трафика.
Отключение функции автоматической настройки окна получения
Чтобы отключить функцию автоматической настройки окне получения для трафика HTTP, выполните следующие действия:
Войдите на компьютер в качестве пользователя с административными учетными данными.
Нажмите кнопку Начните, runas /user: local_computer_name \administrator cmd введите в поле Начните поиск и нажмите кнопку ENTER.
При запросе пароля учетной записи администратора введите правильный пароль и нажмите кнопку ENTER.
В командной строке введите следующую команду, а затем нажмите клавишу ВВОД:
Выход из окна Командная подсказка.
Проверьте, устранена ли проблема. Если проблема устранена, вы закончите с этой статьей. Если нет, обратитесь в службу технической поддержки.










