测量40Gbe的性能

我通过40Gbe光纤链路连接了两台主机,并希望确定它们之间数据传输的基准。 我看到相对较低的速度(约620MB /秒)。 似乎信号传输速率较低,实际上可能是5Gb / s(这与我所看到的一致),但我对光纤知之甚less(而且还在不稳固的地面上)。

我的设置如下:

在每个节点上的40Gbe接口上的ethtool输出摘录

Speed: 40000Mb/s Duplex: Full Port: FIBRE 

在一台主机上运行UDP接收器(10.0.0.2)

 nc -vv -u -l 2222 > /dev/null 

和另一个寄件人

 time dd if=/dev/zero count=10000 bs=1500k | nc -u 10.0.0.2 2222 

导致速度在650MB / s左右。 不同的块大小差异很小。

如果有人能指出我的做法或想法是否错误,我将非常感激(我在这方面非常绿色,维基页面和制造商文档对我来说有点不透明)。

你最好使用像iperf这样的工具来代替dd | nc dd | nc

这样你就可以testingTCP和UDP,并得到一个合适的吞吐量报告,以及控制速率,数据包大小等。

人们经常用这个来衡量10Gbe和40Gbe的性能。

在运行testing时观察top 。 您可能正在对nc命令执行CPU限制。 我们已经看到nc成为CPU绑定吞吐量的限制。 因为我们在内核空间上观察到更高的吞吐量,比如DRBD复制,所以我的猜测是nc经历了很多系统调用的开销。

如果是这种情况,可以运行多个并发的dd | nc dd | nc利用多个CPU核心,进一步推动你的testing。