中文
注册

网络收发IOPS或流量高

网口中断绑核

  1. 关闭irqbalance。

    若要对网卡进行绑核操作,则需要关闭irqbalance。

    1. 执行以下命令,停止irqbalance服务,重启失效。

      systemctl stop irqbalance.service

    2. 执行以下命令,关闭irqbalance服务,永久有效

      systemctl disable irqbalance.service

    3. 执行以下命令,查看irqbalance服务状态是否已关闭

      systemctl status irqbalance.service

  2. 执行以下命令,查看网卡pci设备号,举例当前网卡名为enp131s0

    ethtool -i enp131s0

    查询结果如下。

    driver:hinic
    version:2.3.2.1
    firmware-version:2.3.2.1
  3. 执行以下命令,查看pcie网卡所属NUMA Node。

    lspci -vvvs <bus-info>

    查询结果如下。

  4. 执行以下命令查看NUMA Node对应的core的区间,例如此处就可以绑定到48~71。

    lscpu

  5. 进行中断绑核操作,1822网卡上共计有16个队列,将这些中断逐个绑定至所在NUMA Node的16个core上(此处举例中断绑定至NUMA node2 对应的48~63上面)。

    脚本内容如下:

    #!/bin/bash
    irq_list=(`cat /proc/interrupts | grep enp131s0 | awk -F: '{print $1}'`)
    cpunum=48  # 修改为所在node的第一个Core
    for irq in ${irq_list[@]}
    do
    echo $cpunum > /proc/irq/$irq/smp_affinity_list
    echo `cat /proc/irq/$irq/smp_affinity_list`
    (( cpunum+=1 ))
    done

    执行以下命令编辑脚本。

    bash smartIrq.sh

  6. 利用脚本查看是否绑核成功。

    脚本内容如下。

    #!/bin/bash
    # 网卡名
    intf=$1
    log=irqSet-`date "+%Y%m%d-%H%M%S"`.log
    # 可用的CPU数
    cpuNum=$(cat /proc/cpuinfo |grep processor -c)
    # RX TX中断列表
    irqListRx=$(cat /proc/interrupts | grep ${intf} | awk -F':' '{print $1}')
    irqListTx=$(cat /proc/interrupts | grep ${intf} | awk -F':' '{print $1}')
    # 绑定接收中断rx irq
    for irqRX in ${irqListRx[@]}
    do
    cat /proc/irq/${irqRX}/smp_affinity_list
    done
    # 绑定发送中断tx irq
    for irqTX in ${irqListTx[@]}
    do
    cat /proc/irq/${irqTX}/smp_affinity_list
    don

    执行脚本查看是否绑核成功。

    sh irqCheck.sh enp131s0

    查询结果如下。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词