具有不同链路速度的交换机的最大吞吐量

在networking应用程序上做一些基准testing时,我发现了一个奇怪的行为,涉及通过交换机(at-gs900 / 8e)连接的100MBit和1GBit以太网客户端。 我有一台服务器(千兆位)和多个客户端,networking应用程序使用TCP / IPv4。 客户端通过单个连接接收大数据stream。

只要有GBit速度的客户端从服务器接收数据都没问题,即使只有一个客户端,服务器的上行链路也是饱和的, 当多个客户端接收到数据时,其中的带宽被均分。 但是一旦一个100MBit的客户端也收到来自服务器的数据,输出就会降低到每个客户端几乎100MBit / s,即使是GBit。 所以只有100MBit的客户端接收数据,我得到了100MBit / s的输出,另外一个GBit客户端我得到了200MBit / s,等等……我的第一个想法就像“也许服务器的网卡切换回100MBit / s FD”,但显然没有任何意义,因为我得到每个客户 100MBit / s的输出,而不是总数。

作为一个方面说明,在testing期间,所有客户端都连续连接到服务器(空闲的TCP连接)。 任何人都可以启发我这里发生了什么,如果这是预期的行为? 我真的不希望,因为它会使交换机相当愚蠢的设备。 我希望在接下来的几天里能够得到一些不同的模型来testing…

更新 :我发现这是由以太网stream量控制造成的,即所谓的暂停帧。 我没有弄清楚是谁在创build这些帧,100MBit客户端或交换机本身,但对我来说,它不会将服务器总数限制在100MBit / s,而不是每个客户端100MBit / s。所以服务器上的“解决scheme”是禁用stream量控制,至less在我的情况下是好的,因为TCP自己处理拥塞: ethtool -A eth0 autoneg off rx off tx off将导致100MBit / s 100Mbit / s客户端和900MBit / s第二个支持GBit的客户端。 🙂

我曾经有一个缓冲开关,其行为有点类似:如果stream中的一个端口速度较低,则其他端口每当与其通信时都被拖动到较低的速度。

我是否正确地说,即使没有涉及缓慢stream量的stream量,您也看到了所有的端口被拖拽了? 如果是这样,这听起来像一个错误,你应该与你的交换机销售人员讨论。

我注意到销售人员说:通常的客户支持机构的任务是让你满意你的东西,而不是固定东西,所以不太可能让你更换开关(:-))

–dave