更新时间:2025-09-04 GMT+08:00
如何进行网卡中断绑核
网卡中断绑核是一种优化网络性能的技术,它可以将网卡的数据处理任务分配到特定的CPU核心上,从而提高网络数据的处理效率和吞吐量。本文介绍如何在HCE 2.0上配置网卡中断绑核。
前置条件
确认已经关闭irqbalance服务。如果irqbalance服务未关闭,可以执行systemctl stop irqbalance进行关闭;如果需要取消irqbalance服务开机自启动,执行systemctl disable irqbalance进行配置。
操作步骤
- 执行ethtool -l eth0查看网卡硬件队列数,本例中有两个网卡队列
eth0为网卡名,请根据实际情况进行替换,以下步骤均以eth0举例
- 执行lscpu查看当前CPU核心数,本例有4个CPU核心
- 执行以下命令查看当前网卡队列对应中断,本例中eth0的数据输入使用的中断号分别是25和27,数据输出使用的中断号分别是26和28
cat /proc/interrupts | grep virtio0 | awk '{print $1 $(NF)}'
网卡和virtio的对应关系可以通过以下命令进行查看:ethtool -i eth0 | grep bus-info | awk -F "bus-info:" '{print $2}' | xargs -I {} ls /sys/bus/pci/drivers/virtio-pci/{} | grep virtio
- 查看当前网卡中断绑定情况
执行命令cat /proc/irq/{25,26,27,28}/smp_affinity_list进行查看,本例中25,26,27,28号中断均绑定在CPU3上
- 手动绑定网卡中断
执行以下命令将eth0的数据输入中断分别绑定到CPU0和CPU1
echo 0 > /proc/irq/25/smp_affinity_list echo 1 > /proc/irq/27/smp_affinity_list
执行以下命令将eth0的数据输出中断分别绑定到CPU2和CPU3
echo 2 > /proc/irq/26/smp_affinity_list echo 3 > /proc/irq/28/smp_affinity_list
- 验证网卡中断绑定是否成功
执行cat /proc/irq/{25,26,27,28}/smp_affinity_list进行查看,显示已设置成功