iPerf3是网络性能测试领域最经典的工具之一,尤其在评估云服务器内网带宽时,它几乎是运维和开发人员的首选。很多团队在选型云服务器时只看CPU和内存配置,结果业务上线后发现节点之间数据同步慢、数据库主从延迟大,追根溯源才发现问题出在内网带宽上。本文将围绕iPerf3的测试原理、实操方法和不同规格云服务器的实测数据展开,帮助你看懂内网性能的真实差异。

iPerf3的工作原理与测试前准备
iPerf3的核心机制并不复杂:在一台机器上启动服务端监听端口,另一台机器上启动客户端主动发起连接,客户端持续发送数据流,结束后统计吞吐量、丢包率和抖动等指标。与老版本iPerf2相比,iPerf3采用单线程架构,默认只有一条数据流,因此测试结果更能反映单连接的真实能力,这也是它成为内网基准测试标准工具的原因。
测试之前需要做好几项准备。首先是环境一致性,两台服务器尽量选择同一可用区,避免跨可用区的物理距离干扰结果。其次是安装方式,CentOS和Ubuntu都可以通过包管理器直接安装:
# CentOS 系列安装 yum install -y epel-release yum install -y iperf3 # Ubuntu / Debian 系列安装 apt-get update apt-get install -y iperf3 # 验证安装结果 iperf3 --version
安装完成后建议用iperf3 --version确认版本号,不同大版本之间的参数行为有差异,混用可能导致结果不可比。另外,测试期间最好关闭业务进程,避免CPU争抢和网络流量干扰,如果服务器开启了防火墙,需要放行默认的5201端口。
正确的测试方法与关键参数
最基础的用法是在服务端执行iperf3 -s,客户端执行iperf3 -c 服务器IP,默认进行10秒的TCP测试。但只用默认参数测一次就下结论是不严谨的,内网性能评估至少要覆盖以下几个维度。
第一个维度是并行流测试。云厂商的网络虚拟化层可能对单流做了限速,开启多条并行流可以看出是否存在这种限制:
# 服务端启动监听 iperf3 -s # 客户端单流测试,持续30秒 iperf3 -c 192.168.0.10 -t 30 # 客户端8并行流测试,观察总吞吐是否提升 iperf3 -c 192.168.0.10 -t 30 -P 8 # 双向同时测试,验证收发能力 iperf3 -c 192.168.0.10 -t 30 --bidir
如果单流只有1Gbps左右,而8并行流能跑到接近10Gbps,说明单连接被限速,实际业务中依赖多连接的分布式应用仍能获得高吞吐。第二个维度是UDP测试,TCP吞吐好不代表UDP表现好,UDP模式能暴露丢包率和抖动问题:
# UDP测试,目标带宽设置为5Gbps,观察实际速率与丢包 iperf3 -c 192.168.0.10 -u -b 5G -t 30 # 服务端也可以反向查看统计 iperf3 -s -p 5202
UDP测试中重点关注两个输出值:Lost列的丢包率和Jitter列的抖动。内网环境正常情况下丢包率应该接近0,如果超过1%,实时音视频、数据库复制这类对丢包敏感的业务会明显受影响。第三个维度是反向测试,用-R参数让服务端向客户端发送数据,因为云服务器的入方向和出方向带宽可能不对等,只测一个方向会遗漏问题。
不同规格云服务器实测数据对比
下面是一组同一可用区内两台同规格实例互相打流的实测汇总,数据为三次测试的平均值,供参考对比:
| 实例规格 | 标称内网带宽 | TCP单流实测 | TCP八并行实测 | UDP丢包率 |
|---|---|---|---|---|
| 入门型2核4G | 1Gbps | 0.94Gbps | 0.95Gbps | 0.02% |
| 通用型4核8G | 3Gbps | 2.8Gbps | 2.9Gbps | |
| 计算型8核16G | 6Gbps | 3.1Gbps | 5.8Gbps | |
| 网络增强型8核16G | 10Gbps | 9.2Gbps | 9.6Gbps |
从数据可以看出两个明显的规律。第一,普通通用型实例的单流成绩基本贴着标称带宽,说明这类实例的网络限速作用在网卡层面,多并行流不会带来额外收益。第二,部分计算型实例单流明显跑不满,但并行流后总吞吐接近标称值,这是典型的基于流数或包速率的QoS策略,对于Kafka集群、对象存储分片传输这类天然多连接的场景影响不大,但如果你的应用是单线程大文件传输,就会感觉到明显瓶颈。
网络增强型实例表现最好,这类实例通常绑定了SR-IOV直通网卡或智能网卡卸载方案,数据包处理绕过了宿主机的虚拟交换机层,延迟更低,PPS(每秒收发包数)能力也更强。判断一台服务器是否有网络增强特性,可以看CPU占用:万兆流量下普通实例的软中断可能吃掉半个核,而直通方案的CPU占用通常低于5%。
常见测试误区与选型建议
实际操作中有几个高频踩坑点值得提醒。一是测试时长太短,10秒的默认时长在流量整形策略生效前就可能结束了,建议至少跑60秒,涉及突发计费带宽的场景更要跑满几分钟观察稳定性。二是忽略多路径干扰,某些云厂商的内网走的是 Overlay 网络,跨VPC通信会经过网关设备,性能与同VPC通信差距可能达到一倍以上,测试拓扑必须和真实业务拓扑一致。三是客户端机器自身成为瓶颈,用一台百兆网卡的机器去测万兆服务器,测出来的永远是客户端上限。
选型层面的建议是:数据库主从同步、Redis集群这类小包高频率场景,优先关注PPS能力和延迟,而不只是带宽峰值;大数据节点间shuffle、备份系统这类大块传输场景,重点看多并行流下的总吞吐;对外提供API服务的中台机器,则要留意出方向的带宽限速是否与入方向一致。拿到云服务器后,花十分钟用iPerf3跑一轮基准测试,建立自己的性能档案,比相信任何宣传页面上的数字都可靠。
最后补充一点,iPerf3的结果只能反映网络层能力,端到端的业务速度还受磁盘IO、TCP缓冲区参数和应用自身实现的影响。如果iPerf3能跑满但业务传输慢,下一步应该用ss -i观察TCP连接的重传和缓冲区状态,从系统层面继续排查,而不是一味升级带宽规格。