Проблема с пропускной способностью сети Windows

Проблема с пропускной способностью сети Windows

У нас есть компьютер (на Windows 10) с пятью портами Ethernet (каждый 1 Гб), два из них встроенные, остальные три на двух картах PCIe. К четырем портам Ethernet подключено в общей сложности шесть камер (с двумя коммутаторами, поэтому ни один порт не обрабатывает более двух камер одновременно). Изначально система была разработана для распределенной работы на нескольких компьютерах, поскольку камеры отправляют несжатые изображения, поэтому есть запущенная служба (первоначально на каждом компьютере), которая захватывает кадры и передает их в программу записи/отображения (теперь в сжатом формате).

При работе системы четыре порта Ethernet значительно ниже своего теоретического предела: введите описание изображения здесь

С другой стороны, если посмотреть на службу, обрабатывающую входящий трафик, я вижу 99% использования (было 100%, но я установил все карты на гигабитный полный дуплекс, после чего оно упало до 99%), в то время как фактическое использование представляет собой сумму четырех входящих трафиков (заголовки по порядку: ЦП, память, сеть, диск, ГП):

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

Как вы можете видеть, использование памяти и процессора очень низкое, а скорость 800 Мбит/с должна быть НАМНОГО ниже пропускной способности сети, однако она показывает 100%, а программа захвата работает так, как будто у нее серьезные проблемы с пропускной способностью. Уменьшение масштаба до четырех камер (и около 600 Мбит/с в общей сложности) восстанавливает поведение.

Самое странное, что в течение нескольких попыток все шесть камер работали идеально, поэтому у меня такое ощущение, что Windows 10 каким-то образом думает, что у нас есть только 1000 Мбит/с пропускной способности, и пытается ограничить использование, что каким-то образом сработало позже.

Что я упускаю?

Аппаратное обеспечение (редактировать)

Материнская плата: GA-X99-Designare EX

Устройства, перечисленные в диспетчере устройств:

  • Ethernet-подключение Intel (2) I218-V
  • Гигабитное сетевое соединение Intel I211
  • Двухпортовый серверный адаптер Intel PRO/1000 PT
  • Двухпортовый серверный адаптер Intel PRO/1000 PT №2
  • Контроллер семейства Realtek PCIe GBE

Две сетевые карты PCIe:

  • TP-LINK TG-3468
  • Двухпортовый серверный адаптер GigE Card PCIe Intel PRO/1000 PT

Статусы интерфейса:

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet                  Intel(R) I211 Gigabit Network Connec...      12 Up           1C-1B-0D-6C-A0-27         1 Gbps
Ethernet 2                Intel(R) Ethernet Connection (2) I218-V      15 Up           1C-1B-0D-6C-A0-29         1 Gbps
Slot04 x16                Realtek PCIe GBE Family Controller           14 Up           18-D6-C7-01-C9-F6       100 Mbps
Ethernet 4                Intel(R) PRO/1000 PT Dual Port Ser...#2       9 Up           68-05-CA-3F-CB-32         1 Gbps
Ethernet 3                Intel(R) PRO/1000 PT Dual Port Serve...      20 Up           68-05-CA-3F-CB-33         1 Gbps

Похоже, что Realtek GBE (который должен быть TP LINK TG-3468, который заявляет, что может выдавать 1 Гбит/с) работает на 100 Мбит/с. Он подключен кабелем Cat5e к гигабитному коммутатору. Я не уверен, что это относится к делу, но также кажется странным.

решение1

Суммарная производительность сети 800 Мбит/с, которую вы получаете, означает, что вы используете только один из своих сетевых адаптеров одновременно.

Объяснение можно найти в статье Microsoft Как должны вести себя несколько адаптеров в одной сети, из которого я цитирую (в статье приведен пример двух адаптеров):

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

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

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

Чтобы использовать 5 адаптеров в вашей конфигурации, вам потребуется подключить компьютер как минимум к 5 различным VLAN, но при этом могут возникнуть и другие ограничения.

Я не уверен, что Windows 10 — хорошая платформа для такой конфигурации. Windows Server 2016 может работать лучше при правильной конфигурации. В Server 2012 и более поздних версиях. Windows изначально поддерживает мостовое соединение/агрегирование сетевых карт, также называемое объединением сетевых карт.

Альтернативным решением является замена пяти адаптеров 1 Гбит/с на один сетевой адаптер 10 Гбит/с. Это может быть лучшим решением и, возможно, даже более дешевым, чем Windows Server. Фундаментальное правило построения коммутируемых сетей заключается в том, что для объединения нескольких сегментов с более низкой скоростью всегда нужна более быстрая технология. 10 Gigabit может объединить эти пять сегментов 1 Gigabit. В случае возникновения проблем вам может потребоваться проверка вашей сети специалистом по кабельным сетям.

решение2

Ваш Windows на иностранном языке, поэтому я не могу сказать наверняка...

В английской версии Windows третий столбец в диспетчере задач —использование диска.

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

Связанный контент