手动绑定网卡中断,根据网卡所属CPU将其进行分配,从而优化系统网络性能。
进行网卡中断绑核之前,需要先关闭irqbalance。
1
|
systemctl stop irqbalance.service |
1
|
systemctl disable irqbalance.service |
1
|
systemctl status irqbalance.service |
状态为inactive即为关闭。
对于不同的硬件配置,用于绑中断的最佳CPU数目会有差异,比如对于鲲鹏920 5250处理器 + Huawei TM280 25G网卡(鲲鹏服务器的板载网卡)来说,最多可以绑定32个中断队列,建议将所有的队列都用在中断绑定上来获得最佳性能。
以下脚本是在鲲鹏920 5250处理器 + Huawei TM280 25G网卡上的最佳绑中断设置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/bin/bash eth1=$1 cnt=$2 bus=$3 ethtool -L $eth1 combined $cnt irq1=`cat /proc/interrupts| grep -E ${bus} | head -n$cnt | awk -F ':' '{print $1}'` irq1=`echo $irq1` cpulist=(0 1 2 3 4 5 6 7 {51..71} 93 94 95) c=0 for irq in $irq1 do echo ${cpulist[c]} "->" $irq echo ${cpulist[c]} > /proc/irq/$irq/smp_affinity_list let "c++" done |
ip a
ethtool -l 网卡名称
ethtool -i 网卡名称