鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

配置网卡中断绑核

目的

相比使用内核的irqbalance使网卡中断在所有核上进行调度,使用手动绑核将中断固定住能有效提高业务网络收发包的能力。

方法

  1. 关闭irqbalance。
    若要对网卡进行绑核操作,则需要关闭irqbalance。
    1. 停止irqbalance服务,重启后会失效。
      1
      systemctl stop irqbalance.service
      
    2. 关闭irqbalance服务,永久有效。
      1
      systemctl disable irqbalance.service
      
    3. 查看irqbalance服务状态是否已关闭。
      1
      systemctl status irqbalance.service
      
  2. 查看网卡pci设备号,假设当前网卡名为enp131s0。
    1
    ethtool -i enp131s0
    

  3. 查看pcie网卡所属NUMA node。
    1
    lspci -vvvs <bus-info>
    

  4. 查看NUMA对应哪些CORE。
    1
    numactl -H
    

    假设位于numa1,我们把上节中设置好的4个网卡队列绑定到numa1节点的最后4个CPU,即60-63 CORE上。

  5. 新建一个shell脚本,在脚本内复制以下内容来进行绑核。其中$1是网卡名称,即上面的enp131s0。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # /bin/bash
    t=60
    for i in `cat /proc/interrupts |grep -e $1 |awk -F ':' '{print $1}'`
    do
    cat /proc/irq/$i/smp_affinity_list
    echo $t > /proc/irq/$i/smp_affinity_list
    cat /proc/irq/$i/smp_affinity_list
    t=`expr $t + 1`
    done