网络收发IOPS或流量高
网口中断绑核
- 关闭irqbalance。
若要对网卡进行绑核操作,则需要关闭irqbalance。
- 执行以下命令,查看网卡pci设备号,举例当前网卡名为enp131s0。
ethtool -i enp131s0
查询结果如下。
driver:hinic version:2.3.2.1 firmware-version:2.3.2.1
- 执行以下命令,查看pcie网卡所属NUMA Node。
lspci -vvvs <bus-info>
查询结果如下。
- 执行以下命令查看NUMA Node对应的core的区间,例如此处就可以绑定到48~71。
lscpu
- 进行中断绑核操作,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
- 利用脚本查看是否绑核成功。
脚本内容如下。
#!/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
查询结果如下。
父主题: %IRQ