

只做了比较常见的网卡型号,RealTek (瑞昱)/Intel(英特尔)/Broadcom(博通)
问题1:什么是RSS?
RSS(Receive Side Scaling)是一种能够在多处理器系统下使接收报文在多个CPU之间高效分发的网卡驱动技术。
网卡对接收到的报文进行解析,获取IP地址(SIP、DIP)、协议和端口(Sport、Dport))五元组信息,网卡通过配置的HASH函数根据五元组信息计算出HASH值,也可以根据二、三或四元组进行计算。取HASH值的低几位(这个具体网卡可能不同)作为RETA(redirection table)的索引,根据RETA中存储的值分发到对应的CPU。
基于RSS技术程序可以通过硬件在多个CPU之间来分发数据流,并且可以通过对RETA的修改来实现动态的负载均衡。
简单来说RSS是一种网卡技术,能让多核系统中跨多个处理器的网络收包处理能力高效能分配。 注意:由于同一个核的处理器超线程共享同一个执行引擎,这个效果跟有多个物理核的处理器不一样。因此,RSS不能使用超线程处理器。
问题2:什么是Sr-Iov?
SR-IOV在操作系统层,能在所有的外围物理设备PF下,创建不只一个的虚拟功能设备(VFs)。VFs能共享外围设备的物理资源(像网卡端口或网卡缓存空间)并且与SR-IOV服务器上的虚拟机系统进行关联。SR-IOV能允许一个物理PCIe设备把自身虚拟为多个虚拟PCIe设备。
简单来说Sr-Iov可以让网卡自身虚拟化,不需要额外的系统虚拟化开销,可以把自身虚拟成多个VF网卡,相对于虚拟化以及半虚拟化网卡性能资源占用都有着天壤之别,虚拟出的VF网卡几乎和本体一样拥有着100%的性能,VF数量取决于网卡芯片以及网卡上有多少个端口。
比方说你想在Esxi下虚拟出爱快/openwrt两个路由或者更多的虚拟机,一般情况下是直通网卡才能保证CPu负载最低性能最好,或者使用虚拟网卡 虚拟网卡的性能很差是一回事,会占用更多的Cpu资源,此时VF网卡的优势就很明显了,比方说I350可以把自身一个网口就虚拟出8个VF网卡,8个虚拟机都用这一个端口,都不会有任何的性能衰减。
问题3:RSS队列在爱快/openwrt/Linux系统下有没有效果?
有效果,爱快/openwrt/高恪/Linux效果明显 其中爱快/openwrt/高恪/仅限于Intel(英特尔)(除I217/I218/I219无效果,仅Cpu0,不清楚什么原因 按照Intel的文档规范 是支持RSS 2核心)RealTek (瑞昱)/Broadcom(博通) 不支持的原因 并不在于网卡本身,而是爱快/openwrt驱动没有开启RSS,原因未知。
问题4:2.5G网卡/软路由推荐什么?
优先选择Intel(英特尔)I225V B3步进 修复了所有问题,RealTek (瑞昱) 8125B必须要关闭环保节能以及大量传送减负,不然跑不满。
目前就这些,有什么疑问请留言,如果哪里有错 请帮忙指出 感谢指教