开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

使能网络多路径RPS增强特性

  1. 关闭irqbalance。
    systemctl stop irqbalance
  2. 网络多路径模块依赖hisi_l3t.ko,需要确认该模块是否已加载。
    lsmod | grep hisi_l3t

    若上述命令输出为空,则需要加载hisi_l3t.ko。

    modprobe hisi_l3t
  3. 配置网卡信息,启用网络多路径RPS增强优化特性。
    insmod /lib/modules/5.10.0-301.0.0.204.aarch64/kernel/net/oenetcls/oenetcls.ko mode=0 appname="redis-server" ifname="eth0#eth1" strategy=1 debug=0 match_ip_flag=1 rxq_multiplex_limit=1 lo_rps_policy=2 rps_policy=2

    mode:参数为优化模式,mode=0表示ntuple模式;mode=1表示flow模式,取值范围为0,1,默认值为0。中断核负载相对低时可以与分域调度特性配合实现cluster亲和。

    appname:生效多路径特性的进程名称,进程名称最大长度是16个字符,支持输入多进程名,进程名之间通过#间隔,如进程的进程名称为IO_Context和redis-server,appname="IO_Con#redis-server",默认值为redis-server。

    ifname:ifname参数为生效多路径特性的网卡接口名称,支持输入多接口名,网卡接口名称之间通过#间隔,如ifname="eth1#eth2"。

    strategy:中断绑核亲和策略,取值范围为0、1、2、3,其他,默认值为0,传入其他时使用默认策略0。

    取值说明:

    • 0:缺省策略,将网卡队列中断均分到不同NUMA上,不同网卡使用不同核。
    • 1:Cluster均分策略,将网卡队列中断均分到不同Cluster上。
    • 2:NUMA均分策略,将网卡队列中断均分到不同NUMA上,与缺省策略的区别是不同网卡可能使用相同核。
    • 3:用户自定义网卡中断绑核后,加载多路径模块后自动读取中断信息。

    debug:调试开关,debug=1后输出调试日志,支持动态修改,取值范围0或1,默认值为0。

    match_ip_flag:参数为网卡接收数据包时,是否匹配数据包的目的IP来决定放入指定队列,取值范围为0或1。支持动态修改,修改后只对新拉起的进程有效。

    rxq_multiplex_limit:仅用于模式0,在配置网卡接收规则时,每个队列可以被多少tcp数据流复用,如rxq_multiplex_limit=4则表示单个队列可配置4条规则,适用于网卡队列小于tcp流的场景,取值范围为1~64,默认值为1。

    lo_rps_policy:本地回环口loopback rps打散开关。RPS的目的是把网卡收到的数据包,“分发”给多个CPU核心去处理,从而利用多核优势,避免单个CPU成为瓶颈,默认值为0。

    取值说明:

    • 0:关闭本地回环口loopback rps打散功能。
    • 1:将软中断分散在当前流所在的NUMA节点内。
    • 2:将软中断分散在当前流所在的cluster节点内。

    rps_policy:网卡口rps打散开关。RPS的目的是把网卡收到的数据包,“分发”给多个CPU核心去处理,从而利用多核优势,避免单个CPU成为瓶颈,默认值为0。

    取值说明:

    • 0:关闭网卡口rps打散功能。
    • 1:将软中断分散在当前流所在的NUMA节点内。
    • 2:将软中断分散在当前流所在的cluster节点内。