Windows 网络带宽问题

fbe*_*nce 5 networking bandwidth windows-10

我们有一台带有五个以太网端口(每个 1 Gb)的计算机(运行 Windows 10),其中两个是内置的,另外三个在两个 PCIe 卡上。其中四个以太网端口总共插入了六个摄像头(有两个交换机,因此没有一个端口可以同时处理两个以上的摄像头)。该系统最初设计为分布在多台计算机上运行,​​因为相机发送未压缩的图像,因此有一项服务运行(最初在每台计算机上)抓取帧并将它们交给记录/显示程序(现在是压缩格式) )。

系统运行时,四个以太网端口远低于其理论限制: 在此处输入图片说明

另一方面,在查看处理传入流量的服务时,我看到 99% 的使用率(它是 100%,但我将所有卡设置为千兆全双工,然后下降到 99%)而实际使用率几乎是四个传入流量的总和(标题顺序:CPU、内存、网络、磁盘、GPU):

在此处输入图片说明

如您所见,内存和 CPU 使用率非常低,800 Mb/s 的速度应该远低于网络容量,但它显示 100%,并且捕获程序运行时好像遇到了严重的带宽问题。缩小到四个摄像头(总共大约 600 Mb/s)可以恢复行为。

最奇怪的是,在几次试验中,总共六个摄像头都运行良好,所以我的感觉是,Windows 10 不知何故认为我们只有 1000 Mb/s 的带宽,并试图限制使用,后来不知何故启动.

我错过了什么?

硬件(编辑)

主板:GA-X99-Designare EX

设备管理器中列出的设备:

  • 英特尔以太网连接 (2) I218-V
  • 英特尔 I211 千兆网络连接
  • 英特尔 PRO/1000 PT 双端口服务器适配器
  • 英特尔 PRO/1000 PT 双端口服务器适配器 #2
  • Realtek PCIe GBE 系列控制器

两个 PCIe 网卡:

  • TP LINK TG-3468
  • GigE 卡 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
Run Code Online (Sandbox Code Playgroud)

似乎 Realtek GBE(应该是 TP LINK TG-3468,它说它可以达到 1 Gbps)的速度为 100 Mbps。它通过 Cat5e 电缆连接到千兆交换机。我不确定这是否相关,但似乎也很奇怪。

har*_*ymc 3

您获得的 800 Mb/s 组合网络性能意味着您一次仅使用其中一个网络适配器。

可以在 Microsoft 文章How multiple Adapters on the same network are Expected to manner中找到解释 ,我引用了该文章(该文章使用了两个适配器的示例):

在这种情况下,您可能期望同一物理网络上的两个适配器执行负载平衡。然而,根据定义,在以太网网络拓扑中,一次只能有一个适配器在网络上进行通信。因此,两个适配器不能同时进行传输,如果网络上的另一个设备正在传输,则必须等待。此外,广播消息必须由每个适配器处理,因为它们都在同一网络上侦听。此配置需要大量开销,不包括任何与协议相关的问题。此配置没有提供为同一网络提供冗余网络适配器的好方法。

如果您的所有适配器都位于同一物理网络和协议子网上,则上述文本解释了您所看到的网络性能影响,因为它们是串行工作而不是并行工作。

本文中提到的开销导致您实际上无法达到 1 Gbps 的限制,而只能达到 800 Mbps。

要在您的配置中使用 5 个适配器,您至少需要将计算机连接到 5 个不同的 VLAN,但可能会遇到其他限制。

我不相信 Windows 10 是进行此类配置的良好平台。在正确的配置下,Windows Server 2016 或许能够做得更好。在服务器 2012 及更高版本中。Windows 本身支持桥接/聚合 NIC,也称为 NIC 组合。

另一种解决方案是用一个 10 Gbps 网络适配器替换五个 1 Gbps 适配器。这可能是一个更好的解决方案,甚至可能比 Windows Server 更便宜。构建交换网络的基本规则是始终需要更快的技术来聚合多个低速网段。10G可以聚合这5个1G网段。如果出现问题,您可能需要布线专家验证您的网络。