大家好,感谢阅读我,
我有一个连接到 10 个 25G 服务器并运行某种存储应用程序 (nsdperf) 的数据中心交换机,问题是我们看到传输速率非常慢(与可用的 25Gb 相比)。如果流量不需要通过交换机,则不会出现缓慢的传输速率。在这种情况下,TCP 可以获得完整的 bw(或非常接近的东西)。
我通过 3 次握手生成了一个同步数据包捕获,我可以看到 WS=256,双向允许 SACK,估计 RTT 等于 89 微秒。
这是第 2 层通信(相同的 vlan),因此交换机基本上只进行简单的第 2 层查找。此外,我们没有看到交换机上丢弃任何数据包(丢弃/丢弃),也没有看到在交换机上缓冲这些数据包的任何迹象(如果没有丢弃,则没有理由缓冲任何这些数据包) .
我注意到的一件事是有很多 TCP 分段,看起来好像完整的传输是同一个 BIG TCP SEGMENT 的一部分,因为每个新分段都指向前一个分段:
[2 Reassembled TCP Segments (407 bytes): #1377693(305), #1377696(102)] <<<\n
[2 Reassembled TCP Segments (629 bytes): #1377696(603), #1377698(26)] <<<<\n
[2 Reassembled TCP Segments (745 bytes): #1377698(207), #1377701(538)] <<<<\n
即使完整的数据包大小接近 MTU (1500),正如您在上面看到的 TCP 段大小非常小,这可能是个问题吗?(服务器上的开销?)。我们可以看到这个问题随着流量的增加而变得更糟(在那种情况下我们也看不到丢包)。
谢谢你的时间
