- 修改网卡MTU值#ifconfig ethx mtu 9000 up
- 调整网卡ring_buffer到最大值ethtool –g eno1 查询网卡的ring_buffer信息,其中pre-set maximums表示网卡支持的最大值,currenthardwaresettings表示网卡当前设置值。
ethtool -G eno1 rx 8192 调整网卡ring_buffer到支持的最大值(RX丢包调整RX的 ring_buffer,TX丢包则调整TX 的ring_buffer)
-
调整网卡队列数查询当前队列数:ethtool–leno1
调整队列数量:ethtool -L eno1 combined X 其中X为需要调整的队列数量,需小于等于pre-setmaximums中值
- 确认网卡所属node,然后使用lscpu确认该node下包含的CPU核cat /sys/class/net/eno1/device/numa_node
lscpu确认node0包含的CPU核
- 绑定网卡中断到对应node CPU核上,可以使用网卡驱动包中scriptsset_irq_affinity脚本进行绑核。也可以按如下方法,手动操作进行绑核
-
systemctl stop irqbalance.service 停止服务systemctl disable irqbalance.service 关闭irqbalance服务,永久有效
systemctl status irqbalance.service 查看irqbalance服务状态是否已关闭 - 查看网卡中断号,对网卡队列对应的中断做绑核处理。cat /proc/interrupts | grep eno1 | awk -F :'{print $1}’
-
将CPU0-7 一一对应绑定到网卡队列中断号,如果队列数量较多,可以将CPU平均分配绑定到网卡队列中断上 echo 0 > /proc/irq/147/smp_affinity_list
echo 1 > /proc/irq/148/smp_affinity_list
.
.
.
echo 7 > /proc/irq/154/smp_affinity_list
- 确认网卡中断绑核成功,cat中断号对应的cpu绑定成功。
cat /proc/irq/147/smp_affinity_list 预期结果为0,对应cpu0.
该步骤操作参考:
https://blog.csdn.net/kobe24fgy/article/details/119004105