关于套接字:难以实现1Gbit UDP吞吐量

关于套接字:难以实现1Gbit UDP吞吐量

Having trouble achieving 1Gbit UDP throughput

对于有效载荷小于1470的UDP数据包,是否可以实现1Gbit吞吐量?由于数据包较小,因此在实现此类吞吐量(I / O,OS,网络等)时应存在一些瓶颈。我认为可能必须将驱动程序和硬件调整为小数据包/高吞吐量。有没有人尝试通过小型UDP数据包成功实现1Gbit吞吐量?


我以前已经在相对标准的PC硬件上对千兆链路的吞吐量进行了一些实验,尽管只是通过tcpreplay进行传输(而不是通过udp进行)。

我发现的最大瓶颈是仅将数据包发送到NIC本身。通过使用高速总线连接到NIC(例如4x pci-express NIC),可以大大改善这一点。但是即使这样,还是有非常明确的数据包/秒限制。显然,增加数据包大小将使您可以利用更多带宽,同时减少处理器负载。

与史蒂夫·莫耶(Steve Moyer)的评论相同,任何网络的使用都存在理论上的限制。在我的实验中(这是在完全安静的网络上完成的),我看到的最大值约为900Mb / s(并且仅在内存顶部)。 CPU负载为30%到40%。

该限制更有可能由您的系统硬件(例如PC)而不是网络基础结构强加-任何有价值的网络交换机都应能够维持小数据包的全速网络访问-当然,其速率要比大多数PC所能应付的高得多。


我发现硬件的每秒数据包限制明显低于网络的理论容量。对于Broadcomm BCM5704S,我达到了69,000 pps的水平,而吉比特为1,488,100 pps。

我在这里报告了更多数字,http://code.google.com/p/openpgm/


查看正在使用的交换机的文档。交换机受到每秒可发送的数据包数量(pps)的限制,如果您要发送的数据包明显小于最大有效负载大小,则通常不能维持1GBps。

要检查的另一件事是您的网卡是否正在执行中断合并,并且它可以支持的最大发送/接收描述符数量是多少。在这样的吞吐量水平上,即使使用现代的CPU和内存系统,中断服务时间和上下文切换时间也可能成为主机系统的一大开销。

此外,如果您在铜缆上使用千兆位,则卡将发出的最小以太网帧为512字节,因此较小的消息将被填充为该大小。这是因为对载波侦听/冲突检测有要求。


您正在使用哪种类型的网络连接?如果您使用的是1000BaseTx / Fx链接,则对于最大大小的数据包,不要期望吞吐量超过80%。随着数据包大小的减小,间隔,同步,以太网头,IP头和UDP头的开销相对于有效负载而言会增加,因此最大吞吐量甚至会进一步降低。


这里有一个很好的教程,关于如何调整网络设置(在Linux中)以实现真正的千兆位速度:http://datatag.web.cern.ch/datatag/howto/tcp.html


推荐阅读

    linux下网络重启命令?

    linux下网络重启命令?,服务,设备,系统,标准,工作,工具,网络,状态,命令,代码,

    linux的网络连接命令?

    linux的网络连接命令?,地址,系统,工作,网络,工具,信息,命令,基础,服务,目录,l

    linux界面网络命令?

    linux界面网络命令?,网络,工作,地址,系统,信息,命令,目录,管理,标准,状态,使

    linux配置网络命令?

    linux配置网络命令?,系统,地址,工作,网络,代码,信息,工具,名字,设备,命令,lin

    linux命令行模式网络?

    linux命令行模式网络?,网络,基础,系统,服务,管理,工作,命令,信息,中级,设备,l

    linux链接网络命令行?

    linux链接网络命令行?,地址,系统,网络,工作,软件,工具,信息,密码,服务,标准,l

    linux网络命令及应用?

    linux网络命令及应用?,网络,地址,系统,信息,状态,工具,情况,服务,电脑,命令,L

    linux中测试网络命令?

    linux中测试网络命令?,网络,系统,管理,工作,命令,基础,信息,网址,网站,情况,L

    十大网络命令linux?

    十大网络命令linux?,网络,系统,管理,工作,命令,信息,工具,情况,基础,服务,Lin

    linux网络排查类命令?

    linux网络排查类命令?,地址,网络,系统,信息,设备,电脑,命令,情况,管理,技术

    linux打开网络命令?

    linux打开网络命令?,网络,系统,地址,工作,信息,工具,管理,命令,基础,状态,Lin

    linux网络修改命令?

    linux网络修改命令?,地址,网络,系统,工作,服务,代码,管理,命令,工具,设备,Lin

    嵌入式linux网络命令?

    嵌入式linux网络命令?,系统,基础,网络,设备,平台,培训,环境,服务,项目,嵌入

    linux网络基础命令?

    linux网络基础命令?,工作,网络,系统,地址,信息,命令,工具,服务,基础,目录,Lin

    linux命令行网络流量?

    linux命令行网络流量?,工具,系统,信息,网络,实时,状态,代码,服务,联通,号码,

    linux网络服务器命令?

    linux网络服务器命令?,地址,网络,系统,名称,信息,工具,状态,中心,灵活,基础,l

    linux网络服务器命令?

    linux网络服务器命令?,地址,网络,系统,名称,信息,工具,状态,中心,灵活,基础,l

    linux命令行网络流量?

    linux命令行网络流量?,工具,系统,信息,网络,实时,状态,代码,服务,联通,号码,

    linux命令网络管理员?

    linux命令网络管理员?,系统,密码,工作,地址,命令,传播,设备,电脑,用户,目录,L

    linux网络故障命令?

    linux网络故障命令?,网络,地址,系统,信息,状态,命令,环境,服务,电脑,流程,浅