本发明涉及网卡配置领域,具体涉及一种网卡RSS配置装置及方法。
背景技术:
多队列网卡是一种技术,最初是用来解决网络IO QoS(quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全满足网卡的需求,通过多队列网卡驱动的支持,对传入数据包的头文件进行哈希处理在多个处理器之间分配接收网络流量,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。
如果网卡没有进行RSS配置,网络流量会自动被第一个处理器接收,该处理器可以快速达到最大利用率,限制接收网络传输。现在服务器领域对网络功能的需求不断增加,但是很多网卡并不具备多阵列技术,使得网卡传输性能太低。
技术实现要素:
为解决上述问题,本发明提供一种网卡RSS配置装置及方法,对网卡进行RSS调整,使网卡与CPU之间更有效的进行接收报文及分发数据流,改善网卡性能。
本发明的技术方案是:一种网卡RSS配置装置,包括:
网卡信息读取模块:用于读取系统下网卡相关信息;
网口RSS配置模块:用于根据读取的网卡相关信息,对网卡的各个网口进行RSS参数配置。
进一步地,
网卡信息读取模块通过调用Get-NetAdapterHardwareInfo命令读取系统下网卡相关信息。
进一步地,
网卡信息读取模块所读取的网卡相关信息包括网卡网口的name、NumaNode、PCIELinkSpeed。
进一步地,
网口RSS配置模块通过调用Set-NetAdapterRSS命令对网卡的网口进行RSS配置。
进一步地,
网口RSS配置模块所配置的RSS参数包括:配置RSS的网口名字、网口需要分的CPU核的个数、网口所在的NumaNode、分给网口的CPU核序列。
进一步地,还包括:
网口RSS查看模块:用于在网口RSS配置完后,查看各个网口的RSS信息。
本发明还公开一种网卡RSS配置方法,包括以下步骤:
读取系统下网卡相关信息;
根据读取的网卡相关信息,对网卡的网口进行RSS参数配置。
进一步地,所述读取系统下网卡相关信息包括:
通过调用Get-NetAdapterHardwareInfo命令读取系统下网卡相关信息;
所读取的网卡相关信息包括网卡网口的name、NumaNode、PCIELinkSpeed。
进一步地,所述根据读取的网卡相关信息,对网卡的网口进行RSS参数配置包括:
通过调用Set-NetAdapterRSS命令对网卡的网口进行RSS配置;
所配置的RSS参数包括:配置RSS的网口名字、网口需要分的CPU核的个数、网口所在的NumaNode、分给网口的CPU核序列。
进一步地,还包括:
在网口RSS配置完后,查看各个网口的RSS信息。
本发明提供的网卡RSS配置装置及方法,通过调用Get-NetAdapterHardwareInfo命令读取系统下网卡相关信息,根据网卡相关信息通过调用Set-NetAdapterRSS命令对网卡的网口进行RSS(Receive Side Scaling)配置,通过RSS配置将网卡各个网口的控制权固定在“就近”CPU的不同核上,实现静态的负载均衡,使网卡与CPU之间更有效的进行接收报文及分发数据流,大大的改善了网卡的性能。
附图说明
图1是本发明具体实施例一结构示意框图。
图2是本发明具体实施例二方法流程示意图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
实施例一
本实施例提供一种网卡RSS配置装置,能够在多处理器系统下使接收报文在多个CPU之间高效分发,基于NUMA(Non-Uniform Memory Access)将网卡各个网口的控制权固定在“就近”CPU的不同核上,实现静态的负载均衡。
该装置包括:
(1)网卡信息读取模块101:用于读取系统下网卡相关信息。
所述系统可以是Windows操作系统,及该装置运行于Windows操作系统上。
该模块通过调用Get-NetAdapterHardwareInfo命令读取系统下网卡相关信息。
所读取的网卡相关信息包括网卡网口的name、NumaNode、PCIELinkSpeed。
(2)网口RSS配置模块102:用于根据读取的网卡相关信息,对网卡的各个网口进行RSS参数配置。
该模块通过调用Set-NetAdapterRSS命令对网卡的网口进行RSS配置。
Set-NetAdapterRSS命令在网络适配器上设置接收端扩展(RSS)属性,可以使用参数配置许多属性来优化RSS的性能,大多数参数有助于确定RSS使用的处理器。
具体使用的命令及参数如下:
Set-NetAdapterrss -name"n1"-NumberOfReceiveQueues n2 -BaseProcessorGroup n3 -MaxProcessorGroup n4 -BaseProcessorNumber n5 -MaxProcessorNumber n6 -MaxProcessors n7 -NumaNode n8 –Profile n9。
其中:
n1:是指配置RSS的网口名字;
n2:是指网口需要分的CPU核的个数,一般1G网口分一个核,10G网口分2个核,25G网口分4-8个核,100G网口分8个核;
n3,n4:是指Get-NetAdapterHardwareInfo查看到的网口所在的NumaNode,指定非统一内存访问(NUMA)节点的基本处理器组,这将影响RSS使用的处理器数组;
n5:是指如果从CPU第x个核开始分给该网口,则n5=2*x;
n6:是指如果分给该网口的最后一个核为第y个,则n6=2*y;
n7:与n2一样指分给网卡的CPU核数;
n8:指网口所在的NumaNode;
n9:此参数设置为“ClosestStatic”,分配网络适配器的基本RSS处理器附近的逻辑处理器,操作系统则不需要根据负载动态地重新平衡逻辑处理器。
(3)网口RSS查看模块103:用于在网口RSS配置完后,查看各个网口的RSS信息。
实施例二
本实施例提供一种网卡RSS配置方法,包括以下步骤:
S1-1:读取系统下网卡相关信息。
该步骤通过调用Get-NetAdapterHardwareInfo命令读取系统下网卡相关信息。
所读取的网卡相关信息包括网卡网口的name、NumaNode、PCIELinkSpeed。
S1-2:根据读取的网卡相关信息,对网卡的网口进行RSS参数配置。
该步骤通过调用Set-NetAdapterRSS命令对网卡的网口进行RSS配置。
所配置的RSS参数包括:配置RSS的网口名字、网口需要分的CPU核的个数、网口所在的NumaNode、分给网口的CPU核序列。
Set-NetAdapterRSS命令在网络适配器上设置接收端扩展(RSS)属性,可以使用参数配置许多属性来优化RSS的性能,大多数参数有助于确定RSS使用的处理器。
具体使用的命令及参数如下:
Set-NetAdapterrss -name"n1"-NumberOfReceiveQueues n2 -BaseProcessorGroup n3 -MaxProcessorGroup n4 -BaseProcessorNumber n5 -MaxProcessorNumber n6 -MaxProcessors n7 -NumaNode n8 –Profile n9。
其中:
n1:是指配置RSS的网口名字;
n2:是指网口需要分的CPU核的个数,一般1G网口分一个核,10G网口分2个核,25G网口分4-8个核,100G网口分8个核;
n3,n4:是指Get-NetAdapterHardwareInfo查看到的网口所在的NumaNode,指定非统一内存访问(NUMA)节点的基本处理器组,这将影响RSS使用的处理器数组;
n5:是指如果从CPU第x个核开始分给该网口,则n5=2*x;
n6:是指如果分给该网口的最后一个核为第y个,则n6=2*y;
n7:与n2一样指分给网卡的CPU核数;
n8:指网口所在的NumaNode;
n9:此参数设置为“ClosestStatic”,分配网络适配器的基本RSS处理器附近的逻辑处理器,操作系统则不需要根据负载动态地重新平衡逻辑处理器。
S1-3:在网口RSS配置完后,查看各个网口的RSS信息。
本发明能够在多处理器系统下使接收报文在多个CPU之间高效分发的网卡驱动技术,具体说就是基于NUMA(Non-Uniform Memory Access)将网卡各个网口的控制权固定在“就近”CPU的不同核上,实现静态的负载均衡,使网卡与CPU之间更有效的进行接收报文及分发数据流,大大的改善了网卡的性能。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。