Linux网卡多队列优化网络性能

为什么要关注网卡多队列

很多人把网络慢归咎于带宽或配置,却忽略了网卡多队列这个关键优化点。
简单说,传统网卡只有一个队列,所有收发包都挤在同一个CPU核心上处理;
开启多队列后,内核可以将不同网络流分散到多个队列,再由多个CPU核心并行处理。
这样一来,高并发场景下的丢包率和延迟都能明显改善,服务器能扛住更大的流量。

先确认你的网卡和驱动是否支持

不是所有网卡都支持多队列。
用下面几步快速检查:

  1. 查看网卡型号和驱动
   lspci -v | grep -i ethernet | head -5
   ethtool -i eth0

(将 eth0 换成你的实际网卡名,下同)

  1. 检查当前队列数量
   ethtool -l eth0

看输出中 Combined 那一行的值,如果是 1 说明多队列未开启;
如果是大于1的数(比如 8),说明驱动已经支持但可能未充分利用。

  1. 确认驱动是否支持多队列

多队列能力主要依赖驱动,主流驱动(如 ixgbe、igb、e1000e、bnx2x、mlx5_core)通常都支持。
如果不确定,可以搜索你的驱动型号加“RSS”或“multi-queue”关键词。

开启并调整多队列数量

第一步:调整队列数

如果你的网卡硬件支持但队列数被设为1,可以手动增加:

ethtool -L eth0 combined 4

这里 combined 4 表示启用4个队列。
一般建议队列数不超过物理CPU核心数,且最好是2的幂。
可以先设为4或8测试。

第二步:确认调整生效

ethtool -l eth0

再次查看 Combined 行,应该变成你设置的数字。

第三步:让多队列真正利用多核

单纯增加队列还不够,需要把每个队列的中断绑定到不同CPU核心上。
irqbalance 自动分配最简单:

systemctl start irqbalance
systemctl enable irqbalance

如果希望手动绑定,可以查看中断号:

cat /proc/interrupts | grep eth0

然后通过 echo mask > /proc/irq/IRQ_NUMBER/smp_affinity 手动绑定每个中断到不同核心。
对新手推荐直接用 irqbalance 即可。

避坑指南:最容易出错的三个地方

  1. 队列数超过硬件限制:执行 ethtool -L 时如果报错 Operation not supported,说明当前的驱动或固件版本不支持你设置的数量。可以尝试更新驱动或减少队列数。
  2. 驱动加载参数:有些网卡需要在内核模块加载时传递参数才能开启多队列(例如 igb 驱动需要 RSS=4)。可以查看现有驱动参数:
   modinfo igb | grep RSS

如果驱动有 RSS 参数且默认是0或1,需要在 /etc/modprobe.d/ 下添加配置文件并重启。

  1. NUMA 架构上的性能损失:在多 CPU 插槽的服务器上,队列中断应尽量绑定在物理网卡所在的 NUMA 节点上的核心。irqbalance 默认会考虑这一点,但如果手动绑定,一定要先确认 lscpu 中的 NUMA 拓扑。

验证优化效果

查看队列和中断分布

ethtool -S eth0 | grep queue
cat /proc/interrupts | grep eth0

观察中断计数:如果每个队列的中断次数大致均匀增长,说明多队列正在分担流量。

压测吞吐量

使用 iperf3 做简单测试(先确保已安装):

  • 服务端:iperf3 -s
  • 客户端:iperf3 -c 服务端IP -P 4 -t 30

比较优化前后的带宽和重传率。
多队列优化后,多线程测试的吞吐量通常能提升30%~100%以上。

监控丢包

netstat -s | grep -i drop

如果优化前有大量 RX dropped,开启多队列后通常明显下降。

结语

网卡多队列优化是低成本、高收益的调优手段。
按照本文的步骤依次检查硬件支持、调整队列数量、绑定CPU中断,最后用 ethtool 和 iperf3 验证,基本都能取得显著效果。
如果你在操作中遇到驱动不支持或参数报错,不妨先更新固件或换用主流网卡型号,这条路值得走一趟。

分享到:
上一篇
服务器跨网段访问路由配置从零开始实操指南
下一篇
Linux内核模块编译加载教程:入门编写并运行你的第一个模块
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意