首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows环境下,是否可以使用不可知的API每秒处理数百万个数据报?

在Windows环境下,是否可以使用不可知的API每秒处理数百万个数据报?
EN

Server Fault用户
提问于 2015-05-28 02:33:07
回答 1查看 882关注 0票数 7

我正在研究是否可以在Windows中实现一个HPC应用程序,该应用程序可以以较高的速率接收小型UDP组播数据报(大部分为100-400字节),使用十几个或多达200个多播组(即使用MSI和RSS I可以扩展到多个核),对每个数据包进行一些处理,然后发送出去。通过TCP发送,我设法达到了我需要的高度(6.4Gb/秒),但以较高的pps速率接收数据报却是个问题。

在一台具有2端口10 go以太网网卡的高规格NUMA机器上的近期试验中,我只能每秒接收数十万UDP数据报(早期下降,即不用实际处理数据,使用2x12核消除应用程序的处理开销),测试的12个多播组的核心部分似乎分布在一个NUMA节点的8个或10个核心上(最大RSS队列设置为16) --尽管使用了.net应用程序,所以应用程序应该能够运行得更快。

但是,即使是伦霍盖特也只能在他的高性能Windows测试中以500 bytes的速度接收UDP数据包,使用的UDP有效负载为1024字节。

QLogic白皮书 (没有提到正在测试的操作系统)中,“多线程超小数据包路由”的限制(包括接收和后续发送?)设定为5.7Mpps。在文章 on Linux网络中,将限制设置为每个核心的1 1Mpps到2 1Mpps(据报道,每个内核的扩展或多或少是线性的),甚至15 set具有绕过内核的特殊解决方案。

例如网图

可以在10GigE链路上以线速率(14.88Mpps)产生通信量,只有一个核心运行在900 can。这相当于每包约60-65个时钟周期,并且具有良好的核心和时钟频率(4核,线速率小于450 MHz)。在接收方也达到了类似的费率。

那么,我能用好的标准以太网NIC,使用标准以太网(而不是聚合以太网),使用与供应商无关的API,将Windows2012 R2带到多远呢?

EN

回答 1

Server Fault用户

发布于 2015-05-28 10:18:45

它可以绕过内核,在安装hpc的情况下使用netdirect。请参阅https://msdn.microsoft.com/en-us/library/cc904344(v=vs.85).aspx,我无法找到任何perf数据(我怀疑它会因厂商的不同而有所不同,因为它比其他API更直接地使用NIC硬件),但它应该与Linux中的其他内核旁路解决方案(内核旁路是内核旁路)编辑相同:因此,如果要拒绝实际使用所提供的硬件,请不要期望使用所需的驱动程序从标准NIC中获得性能。不需要聚合以太网(我不知道这是怎么出现的),但这就是供应商如何向OS-驱动程序公开硬件特性,我不知道为什么您甚至提到qlogic文件(它专门指的是使用他们的nic硬件-这是你说你不想做的)同样的上网纸(使用修改的驱动程序)。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/694877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档