若要对网卡进行绑核操作,则需要关闭irqbalance。
systemctl stop irqbalance.service
systemctl disable irqbalance.service
systemctl status irqbalance.service
ethtool -i enp131s0
查询结果如下。
driver:hinic version:2.3.2.1 firmware-version:2.3.2.1
lspci -vvvs <bus-info>
查询结果如下。
lscpu
脚本内容如下:
#!/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
脚本内容如下。
#!/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
查询结果如下。