Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Эта статья включена в 3-часть серии. Вы можете просмотреть часть 2. Проблемы с производительностью tcp/IP, связанные с базовой сетью, и часть 3. Известные проблемы с производительностью TCP/IP.
Производительность протоколов TCP/IP определяется путем сравнения. Это сравнение нужно выполнять на конечных точках с идентичными параметрами оборудования, сетевого пути и операционной системы. Производительность в реальной жизни всегда будет разной, так как она определяется множеством факторов, каждый из которых может стать причиной узкого места. Среди важнейших факторов можно упомянуть базовую сеть, архитектуру TCP и реальную скорость передачи операций ввода-вывода в хранилище.
Дополнительные сведения о настройке производительности, чтобы задать оптимальную конфигурацию для конечных точек.
Автоматическая настройка окна приема TCP — это определяемая приложением функция, используемая для масштабирования подключения для использования пропускной способности в сетях с высокой задержкой. Например, если TCP настроен на использование уровня автоматической настройки для нормального и если в приложении достаточно буфера, определенного для tcp-окна, ОС будет масштабировать TCP до максимального максимума. Однако эта функция предназначена для более высоких сетей задержки. Для сетей с низкой задержкой нет такого требования, так как на лету не будет много сегментов (например, в сетевой инфраструктуре).
Для сетей с высокой задержкой с окном TCP, которое не масштабируется до максимального числа одновременно, существуют такие алгоритмы, как CUBIC, NewReno и Составной TCP , чтобы определить продукт задержки пропускной способности (BDP) и масштабировать окно соответствующим образом. ОС Windows назначает алгоритм перегрузки каждому созданному сокету.
Параметры TCP предопределяются в Windows 10. Используйте командлет Get-NetTCPSettings, чтобы получить параметры TCP и использовать командлет Get-NetTCPConnection для просмотра свойств подключения TCP, таких как локальный или удаленный IP-адрес, локальный или удаленный порт и состояние подключения.
Ниже приведены советы по повышению пропускной способности:
- Убедитесь в отсутствии проблем с базовой сетью (например, потерь пакетов).
- Включите расширенные возможности сетевой карты для повышения производительности (например, Jumbo-кадры, RSS/VMQ, функции разгрузки и RSC), если нет известных несовместимостей с базовой сетью или вы не занимаетесь устранением неполадок.
- Убедитесь, что для протокола TCP указан обычный уровень автоматической настройки.
- Выполните анализ в Мониторе производительности и убедитесь, что возможности ЦП или хранилища не создают узких мест.
- Выберите функции безопасности, которые соответствуют реальным требованиям организации.
- Определите базовые показатели.
Средство тестирования для пропускной способности TCP
Чтобы достичь максимально возможной пропускной способности для определенного оборудования, необходимо настроить факторы производительности. Убедитесь, что проблемы с базовой сетью (потеря пакетов) отсутствуют. Используйте средство NTttcp.exe или ctsTraffic.exe для проверки пропускной способности. См. сведения о средствах производительности для сетевых рабочих нагрузок.
Узкие места для пропускной способности TCP
Не используйте сетевой монитор или не получите журналы уровня сетевого пакета во время тестов пропускной способности TCP. Фильтры мониторинга интерфейса сетевого драйвера (NDIS) добавляют задержку для отправителя и получателей при каждом записи пакета. Эта операция требует ресурсов ЦП и создает множество операций ввода-вывода хранилища. Производительность уменьшается, когда журналы уровня пакетов принимаются, так как TCP пытается восстановиться после потери пакета.
Добавление безопасности имеет собственные проблемы с затратами и производительностью. Для таких протоколов безопасности, как безопасность интернет-протоколов (IPsec), требуются дополнительные требования к обработке. Сравнение защиты данных с целостностью данных, режим целостности IPsec должен быть предпочтителен для меньшей стоимости обработки. Программное обеспечение безопасности также имеет огромные затраты на обработку пакетов, что приведет к замедлению выходных данных.
Если протестированная производительность не соответствует ожиданиям, выполните журналы, как определено в счетчиках производительности, связанных с сетью.
После проверки проблем с производительностью TCP проверьте связанные с верхним уровнем протоколы, такие как протоколы файловой системы (SMB) или сетевая файловая система (NFS). Для этих протоколов требуются ресурсы процессора и диски IOS. Низкая скорость вызвана неисправным драйвером или оборудованием, очередью вызова отложенной процедуры (DPC) или медленной операцией ввода-вывода диска. Узнайте, какой компонент в ОС вызывает высокий уровень ЦП, так как для этого требуется анализ с помощью журнала записи производительности Xperf/Windows (WPR) (ЦП). Поиск проблем с медленностью, связанных с диском, сравнительно проще. Дополнительные сведения см. в разделе "Изучение и настройка производительности диска".
Во время тестирования тестовые приложения (клиентские и серверные приложения) можно настроить для использования нескольких потоков с значениями буфера достаточно высоким, чтобы достичь максимальной пропускной способности. Однако это может не отражать фактические условия, так как количество потоков и буферов каждый вызов API может использоваться ограничено на основе программирования. Кроме того, протокол уровня приложений (SMB или Common Internet File System (CIFS)) имеет собственный буфер и оптимизацию (настройка производительности для файловых серверов или SMB: руководство по устранению неполадок). Если приложение не работает должным образом для базовых показателей, обратитесь к специалисту по приложению, чтобы найти узкие места.
Создание базового плана
Для сравнения текущей пропускной способности необходимо создать базовые показатели производительности. Чтобы лучше понять сеть, создайте базовые показатели в начале развертывания.
Базовый план формируется следующими основными пунктами:
- Исходные и целевые сети
- Задержка и количество прыжков между этими сетями
- Возможности процессора и интерфейса и конфигурация
- Период времени тестов (рабочие часы, нерабочие часы и пиковые часы)
- Версии ОС
- Отправка по запросу пропускной способности и пропускной способности
Примечание.
Создайте базовые показатели с теми же моделями сервера (одинаковое количество карт сетевого адаптера и емкости процессора), чтобы обеспечить почти равный объем вычислительной мощности.
Просмотрите буфер и следите за количеством сеансов транспорта, созданных средствами тестирования. Четыре одновременных сеанса TCP-транспорта могут оценивать использование ЦП равномерно с включенным RSS.
Ниже приведены действия по измерению пропускной способности и созданию базовой базы данных.
Скачайте инструмент ctsTraffic. Ниже приведено описание некоторых параметров средства ctsTraffic.
Параметр Описание -listen:<IP/*>
Этот параметр используется для прослушивания портов на серверах. Если *
задано, средство ctsTraffic прослушивает все IP-адреса, доступные на этом компьютере. Например,-listen:*
.-target:<IP>
Этот параметр используется для клиентов и указывает IP-адрес сервера, на котором выполняется ctsTraffic.exe и находится в состоянии прослушивания. Например, -target:192.168.1.10
.-pattern:pull
Средство CtsTraffic использует шаблон push-уведомлений по умолчанию. Это означает, что данные отправляются от клиента на сервер. Если этот коммутатор используется как на клиенте, так и на сервере, данные получаются на клиенте. Не используйте этот параметр при выполнении теста push-отправки. -connections:<num>
Этот параметр указывает количество TCP-подключений. Tcp-сокеты будут созданы из клиента одновременно. Восемь обычно используются в качестве очередей RSS на сетевых картах среднего уровня 8. Например, -connections:8
.-iterations:<num>
Этот параметр указывает умноженное количество подключений в -connections:
. Например,-iterations:10
. При использовании 10 итераций клиент попытается выполнить 80 подключений в общей сложности. Если этот параметр не указан, клиент будет продолжать пытаться использовать 8 подключений до 1000 подключений.-statusfilename:<filename.csc>
Используйте этот параметр, чтобы удалить параметр уровня консоли 1 в файл, совместимый .txt
с Microsoft Excel.-connectionfilename:<filename.csv>
Используйте этот параметр для очистки подробных сведений. Например, сведения об уровне сокета, такие как время, необходимое каждому сокету для передачи данных. Вы можете проверить наличие ошибок или расширенных неполадок с помощью этого параметра. -consoleverbosity:<0|1|2|3>
Этот параметр задает представление или выходные данные монитора во время выполнения теста. Например, -consoleverbosity:1
.Откройте монитор ресурсов на принимающей стороне. Например, если вы используете
-pattern:pull
, откройте его на клиенте, в противном случае откройте его на сервере.Запустите средство ctsTraffic на сервере и выполните следующую команду:
Ctstraffic.exe -listen:* -consoleverbosity:1 <-pattern:pull>
Запустите средство ctsTraffic на клиенте и выполните следующую команду:
Ctstraffic.exe -target:<serverip> -consoleverbosity:1 <-pattern:pull> -connections:8 -iterations:10
Убедитесь, что процессоры принимающей стороны используются равномерно. Если они не так, проверьте проблему с RSS, чтобы узнать, какой из них не работает должным образом.
Вычислите пропускную способность в битах/секундах в соответствии с результатом на клиенте. См. пример на следующем снимке экрана:
В этом примере пропускная способность составляет почти 19 ГБ/с и вычисляется следующим образом:
(85 899 349 200 байт/36,678 секунд) * 8 = 18 735 885 097,33355 (бит/секунда)