10Gbit光纤连接的udp性能问题

时间:2016-05-09 13:47:18

标签: networking network-programming udp

我有一个非常简单的客户端应用程序。它只发送udp包作为
尽可能快。

代码非常简单:我说明每个数据包的大小(以字节为单位),
远程地址和端口数 然后我为每个端口打开一个线程,并尽可能快地发送数据包。

现在问题是当我在10Gbit光纤连接上运行应用程序时: packet_size = 1400
我只能利用~25%的NIC带宽(而且CPU也很高)。

当我运行程序时:
packet_size = 50000
我设法利用~97%的NIC带宽(并且CPU低于10%)。

我对此的解释是涉及较小数据包的系统调用次数 想象一下,每当我发送一个大小为1500字节的数据包时,我就会调用操作系统 问题是我想避免IP碎片,仍然能够使用
NIC的全部潜力。任何想法我怎么能实现这一目标?

BTW:我用GO和c#编写了上面提到的应用程序(两者都显示了类似的结果) GO的效率更高一些,而且我在Windows服务器2008上运行。

0 个答案:

没有答案