优先选mode=4(802.3ad/LACP),需Linux端配置lacp_rate=fast和xmit_hash_policy=layer3+4,交换机端启用LACP并确保速率/双工/VLAN一致,实测iperf3验证吞吐是否接近N倍单卡。

想靠多网卡聚合提升总吞吐,关键不是简单把网卡“绑一起”,而是选对模式、配对交换机、调好哈希策略。带宽叠加只在特定模式下生效,且必须软硬协同,否则可能白忙一场。
优先考虑 mode=4(802.3ad / LACP)
这是目前最可靠、最主流的带宽叠加方案,能真正实现多网卡并发传输,同时兼顾冗余与自动故障恢复。
- Linux 端需加载 bonding 模块并指定 mode=802.3ad,配置 lacp-rate=fast 和 transmit-hash-policy=layer3+4(推荐,按源/目的IP+端口分发,避免单流乱序)
- 交换机端必须开启 LACP,并将对应端口加入同一聚合组(如 Cisco 的 channel-group mode active,H3C 的 link-aggregation mode dynamic)
- 所有参与聚合的网卡速率、双工模式、VLAN 设置必须完全一致,否则 LACP 协商失败
mode=0(balance-rr)慎用,仅限可控环境
轮询模式理论上可叠加带宽,但实际中极易出问题。
- 要求交换机端口必须静态聚合(非LACP),且关闭STP或做特殊处理,否则 MAC 地址抖动会导致丢包
- 同一 TCP 流的数据包可能经不同路径到达,引发乱序,影响高吞吐场景下的实际性能
- 适合内网直连、无交换机或自研设备的封闭测试环境,生产系统不建议
别忽略底层细节:网卡与内核协同
再好的配置,若硬件和参数没对齐,吞吐也上不去。
- 确认网卡型号一致、驱动版本较新,避免因 offload 能力差异导致负载不均
- 检查 /proc/net/bonding/bond0,确认所有 slave 状态为 Up,MII Status 为 up,且当前活动端口数 ≥2(LACP 下)
- 适当调大 net.core.somaxconn、net.ipv4.tcp_rmem 和 net.ipv4.tcp_wmem,匹配聚合后的带宽潜力
验证是否真提升了吞吐
别只看 ifconfig 显示的 bond0 速率,要实测。
- 用 iperf3 在另一台服务器上压测:客户端指定多线程(-P 8)、长连接(-t 60),服务端绑定 bond0 IP
- 对比单网卡时的峰值,LACP 正常应接近 N×单卡吞吐(N 为有效活跃网卡数);若提升不明显,重点查交换机侧聚合状态和 transmit-hash-policy 是否生效
- 用 cat /proc/net/dev 观察各物理网卡 rx/tx 流量是否大致均衡











