网络性能提升实战:单队列vs多队列性能实测对比

  发布时间:2025-11-04 04:08:19   作者:玩站小弟   我要评论
在某项目上线后,用户访问量激增,Kubernetes 集群承载的网络压力骤升。通过 Prometheus 监控发现,高峰期丢包严重;结合top命令观察,部分 CPU 核心软中断SI占用率飙升至 100 。

在某项目上线后,网络用户访问量激增,性能性Kubernetes 集群承载的提升网络压力骤升。通过 Prometheus 监控发现,实战实测高峰期丢包严重;结合 top 命令观察,单队s多队列对比部分 CPU 核心软中断SI占用率飙升至 100%,网络成为系统性能瓶颈。性能性

本文通过单队列与多队列网卡配置对比,提升观察丢包率、实战实测延迟和 CPU 利用率的单队s多队列对比差异,对比两种模式下的网络性能差异。

一、性能性实验准备

1️⃣ 主机角色与软件环境

服务器端 IP:10.xx.16.103客户端 IP:10.xx.16.102安装工具: 复制yum install -y iperf3 # 压测网络吞吐量 yum install -y sysstat # CPU 性能监控 (mpstat)1.2.

2️⃣ 网卡队列模式

查看当前网卡队列数复制ethtool -l enp1s01.

输出示例:

复制Channel parameters for enp1s0: Pre-set maximums: RX: 0 TX: 0 Other: 0 Combined: 1 Current hardware settings: RX: 0 TX: 0 Other: 01.2.3.4.5.6.7.8.9.10. 单队列 → RX:1 / TX:1多队列 → RX/TX 可大于 1,提升如 4 或 8

二、实战实测单队列压测

1️⃣ iperf3 测试带宽

UDP 模式,单队s多队列对比4 并发连接: 复制iperf3 -c 10.xx.16.103 -u -b 1G -P 41.

测试结果:

复制[root@reg ~]#iperf3 -c 10.xx.16.103 -u -b 1G -P 4 - - - - - - - - - - - - - - - - - - - - - - - - - [SUM] 0.00-10.00 sec 1.71 GBytes 1.47 Gbits/sec 0.000 ms 0/1267733 (0%) sender [SUM] 0.00-10.22 sec 1.13 GBytes 952 Mbits/sec 0.067 ms 427544/1267651 (34%) receiver1.2.3.4.5.

2️⃣ ping 测试丢包

复制[root@reg ~]# ping 10.xx.16.103 PING 10.xx.16.103 (10.xx.16.103) 56(84) bytes of data. 64 bytes from 10.xx.16.103: icmp_seq=3 ttl=64 time=0.276 ms 64 bytes from 10.xx.16.103: icmp_seq=5 ttl=64 time=17.7 ms 64 bytes from 10.xx.16.103: icmp_seq=6 ttl=64 time=14.7 ms 64 bytes from 10.xx.16.103: icmp_seq=7 ttl=64 time=12.4 ms 64 bytes from 10.xx.16.103: icmp_seq=8 ttl=64 time=16.1 ms 64 bytes from 10.xx.16.103: icmp_seq=12 ttl=64 time=16.6 ms 64 bytes from 10.217.16.103: icmp_seq=14 ttl=64 time=0.439 ms 64 bytes from 10.xx.16.103: icmp_seq=15 ttl=64 time=0.398 ms --- 10.xx.16.103 ping statistics --- 17 packets transmitted, 12 received, 29.4118% packet loss, time 16458ms rtt min/avg/max/mdev = 0.276/6.674/17.705/7.558 ms1.2.3.4.5.6.7.8.9.10.11.12.13. 丢包率 29%延迟波动大(最大达到 17ms)

3️⃣ CPU 负载分析

复制[root@localhost ~]# mpstat -P ALL 1 ..... 11时29分07秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 11时29分08秒 all 20.81 0.00 17.84 0.00 0.00 6.82 0.00 0.00 0.00 54.53 11时29分08秒 0 30.43 0.00 20.65 0.00 0.00 1.09 0.00 0.00 0.00 47.83 11时29分08秒 1 13.64 0.00 15.91 0.00 0.00 0.00 0.00 0.00 0.00 70.45 11时29分08秒 2 18.56 0.00 19.59 0.00 0.00 0.00 0.00 0.00 0.00 61.86 11时29分08秒 3 25.00 0.00 22.92 0.00 0.00 1.04 0.00 0.00 0.00 51.04 11时29分08秒 4 13.10 0.00 34.52 0.00 0.00 0.00 0.00 0.00 0.00 52.38 11时29分08秒 5 17.71 0.00 21.88 0.00 0.00 0.00 0.00 0.00 0.00 60.42 11时29分08秒 6 29.03 0.00 19.35 0.00 0.00 0.00 0.00 0.00 0.00 51.61 11时29分08秒 7 25.77 0.00 20.62 0.00 0.00 0.00 0.00 0.00 0.00 53.61 11时29分08秒 8 30.39 0.00 23.53 0.00 0.00 0.00 0.00 0.00 0.00 46.08 11时29分08秒 9 21.11 0.00 12.22 0.00 0.00 0.00 0.00 0.00 0.00 66.67 11时29分08秒 10 25.00 0.00 10.71 0.00 0.00 1.19 0.00 0.00 0.00 63.10 11时29分08秒 11 0.00 0.00 1.01 0.00 0.00 98.99 0.00 0.00 0.00 0.00 11时29分08秒 12 23.16 0.00 18.95 0.00 0.00 0.00 0.00 0.00 0.00 57.89 11时29分08秒 13 26.04 0.00 18.75 0.00 0.00 0.00 0.00 0.00 0.00 55.21 11时29分08秒 14 9.76 0.00 12.20 0.00 0.00 0.00 0.00 0.00 0.00 78.05 11时29分08秒 15 22.47 0.00 12.36 0.00 0.00 0.00 0.00 0.00 0.00 65.171.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20. %soft(软中断)高达 98% 在单核(第11核)说明网络中断处理高度集中,b2b供应网成为性能瓶颈

网卡队列利用率(看是否有单个队列打满)

复制[root@localhost ~]# ethtool -i enp1s0 driver: virtio_net #检查驱动类型 version: 1.0.0 firmware-version: expansion-rom-version: bus-info: 0000:01:00.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no [root@localhost ~]# cat /proc/interrupts |grep -i virtio 288 Edge virtio0-config 69: 0 0 0 0 0 0 0 23 0 0 0 3367977005 0 0 0 0 ITS-MSI 524289 Edge virtio0-input.0 70: 0 0 0 0 0 0 0 0 1 185898 0 0 0 0 0 0 ITS-MSI 5241.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.

三、多队列压测

1️⃣ 修改网卡队列数(KVM 虚拟机示例)

首先修改网卡为多队列 复制virsh console 10.xx.xx.103-host .... <interface type=bridge> <mac address=52:54:00:2a:c4:41/> <source bridge=dq/> <model type=virtio/> <driver name=vhost queues=8/> #新增队列为8,不要超过cpu核数 <address type=pci domain=0x0000 bus=0x01 slot=0x00 functinotallow=0x0/> </interface>1.2.3.4.5.6.7.8.9. 验证: 复制Channel parameters for enp1s0: Pre-set maximums: RX: 0 TX: 0 Other: 0 Combined: 8 Current hardware settings: RX: 0 TX: 0 Other: 0 Combined: 81.2.3.4.5.6.7.8.9.10.11.

2️⃣ iperf3 与 ping 测试

UDP 模式压测: 复制iperf3 -c 10.xx.16.103 -u -b 1G -P 41. 丢包率降为 0%复制64 bytes from 10.xx.16.103: icmp_seq=158 ttl=64 time=0.368 ms 64 bytes from 10.xx.16.103: icmp_seq=159 ttl=64 time=0.451 ms 64 bytes from 10.xx.16.103: icmp_seq=160 ttl=64 time=1.33 ms 64 bytes from 10.xx.16.103: icmp_seq=161 ttl=64 time=0.428 ms --- 10.xx.16.103 ping statistics --- 161 packets transmitted, 161 received, 0% packet loss, time 165183ms rtt min/avg/max/mdev = 0.295/1.329/42.263/3.980 ms1.2.3.4.5.6.7.8. ping 测试也无丢包,延迟稳定 <1.5ms

3️⃣ CPU 负载分析

检查cpu负载

复制[root@localhost ~]# mpstat -P ALL 1 ...... 12时04分31秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 12时04分32秒 all 55.94 0.00 17.79 0.00 0.00 22.54 0.00 0.00 0.00 3.73 12时04分32秒 0 46.67 0.00 33.33 0.00 0.00 0.00 0.00 0.00 0.00 20.00 12时04分32秒 1 68.04 0.00 24.74 0.00 0.00 7.22 0.00 0.00 0.00 0.00 12时04分32秒 2 65.66 0.00 19.19 0.00 0.00 5.05 0.00 0.00 0.00 10.10 12时04分32秒 3 85.86 0.00 12.12 0.00 0.00 1.01 0.00 0.00 0.00 1.01 12时04分32秒 4 18.00 0.00 3.00 0.00 0.00 79.00 0.00 0.00 0.00 0.00 12时04分32秒 5 73.74 0.00 25.25 0.00 0.00 0.00 0.00 0.00 0.00 1.01 12时04分32秒 6 74.49 0.00 19.39 0.00 0.00 6.12 0.00 0.00 0.00 0.00 12时04分32秒 7 64.89 0.00 26.60 0.00 0.00 2.13 0.00 0.00 0.00 6.38 12时04分32秒 8 50.51 0.00 37.37 0.00 0.00 7.07 0.00 0.00 0.00 5.05 12时04分32秒 9 87.76 0.00 12.24 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12时04分32秒 10 9.09 0.00 7.07 0.00 0.00 82.83 0.00 0.00 0.00 1.01 12时04分32秒 11 15.46 0.00 6.19 0.00 0.00 77.32 0.00 0.00 0.00 1.03 12时04分32秒 12 73.91 0.00 20.65 0.00 0.00 0.00 0.00 0.00 0.00 5.43 12时04分32秒 13 82.47 0.00 16.49 0.00 0.00 1.03 0.00 0.00 0.00 0.00 12时04分32秒 14 75.51 0.00 19.39 0.00 0.00 1.02 0.00 0.00 0.00 4.08 12时04分32秒 15 5.94 0.00 3.96 0.00 0.00 84.16 0.00 0.00 0.00 5.941.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20. %soft 分布在多个核上网络中断处理负载均衡,单核压力显著降低

四、性能瓶颈分析

项目

单队列

多队列

丢包率

高(≈30%)

低(0%)

ping 延迟

波动大(最大 17ms)

稳定 <1.5ms

CPU %soft

单核 98%

多核均衡分布

流量吞吐

约 235-242 Mbps

可线性提升至接近网卡速率

结论

1. 单队列模式下,中断处理集中在单核,导致软中断 CPU 饱和、丢包和延迟高。

2. 多队列模式通过多核并行处理网络流量,显著提升吞吐量,降低延迟和丢包。

3. 高并发、高速网络环境下,多队列几乎是网络性能优化的必备手段。高防服务器

五、配置命令汇总

修改为单队列: 复制ethtool -L eth0 rx 1 tx 11. 修改为多队列(示例 4 个队列): 复制ethtool -L eth0 rx 4 tx 41. 查看队列数: 复制ethtool -l eth01.

六、总结

单队列:适合低速、低并发场景,CPU 负载集中,容易成为瓶颈。多队列:充分利用多核 CPU,提高吞吐量、降低延迟和丢包率,适用于高性能场景、虚拟化环境和大流量应用。实践中,合理配置队列数并结合 RSS/RPS/XPS 可以让网络性能发挥到极致。

🔹 注意:队列数不宜超过 CPU 核心数,否则部分队列空闲,资源浪费。

  • Tag:

相关文章

  • 远程桌面设置教程(轻松掌握远程桌面设置,实现远程访问需求)

    摘要:随着科技的不断发展,越来越多的人需要在不同设备之间进行远程访问和控制。而远程桌面设置是实现这一需求的重要方法之一。本文将为大家介绍如何通过简单操作实现远程访问。什么是远程桌...
    2025-11-04
  • 从CPU原理看:为什么你的代码会让CPU原地爆炸?

    大家好,我是专门给程序员"填坑"的草捏子。今天要和大家聊一个惊心动魄的话题——为什么你的代码使得服务器CPU突然像坐火箭一样飙升,今天我们就从CPU的工作原理入手,彻底搞懂这个"非线性暴增"的底层逻辑
    2025-11-04
  • 如何设计和建造数据中心

    数据中心的主要组成部分有哪些?数据中心有两个主要方面:设施和驻留在设施内的IT基础设施,这两个方面共存并共同工作。设施设施是用于数据中心的物理建筑。简而言之,数据中心只是一个用于部署基础设施的大型开放
    2025-11-04
  • 英特尔以现代软件工具实现AI性能提升,让AI无处不在

    当前,AI已经成为推动企业创新发展的核心要素。随着生成式AI时代的到来,在给企业带来无限可能的同时,也对数据中心的算力等提出了更高的要求。面对CPU、GPU、DPU、NPU等多种算力架构,企业必须构建
    2025-11-04
  • 电脑星际战甲注册教程(让你在星际战甲中畅快享受战斗乐趣的详细指南)

    摘要:作为一款备受瞩目的电脑游戏,电脑星际战甲一直以其精美的画面和刺激的玩法吸引着众多玩家。而要开始在这个世界中展开你的冒险之旅,首先你需要进行游戏的注册。本文将为大家详细介绍电脑星际战...
    2025-11-04
  • 推荐几个不错的 Linux 服务器管理工具

    选择一款好的 Linux 服务器管理工具能够极大地提高运维效率,保障业务连续性。今天大姚给大家分享3款不错的 Linux 服务器管理工具,希望可以帮助到有需要的同学。Panel1Panel是新一代的
    2025-11-04

最新评论