OVHcloud作为欧洲老牌云服务商,在全球拥有三十多个数据中心,其私有网络方案vRack一直以高速率和低价格著称。官方宣称vRack可以提供高达数十Gbps的内网带宽,但实际体验中很多用户发现,用iPerf3测出来的结果和预期存在差距。这篇文章将从测试环境搭建、实测流程、结果分析和参数调优四个方面,完整演示如何在OVHcloud上做一次靠谱的内网带宽评测。

一、搭建iPerf3测试环境前的准备工作
做带宽测试之前,首先要保证两台服务器处于同一个vRack私有网络中。vRack是OVHcloud提供的二层私有网络技术,可以把不同区域、不同产品线的服务器接入同一个虚拟机架。在控制台创建vRack并添加服务器后,需要在系统里为私有网卡配置IP地址。OVHcloud的vRack默认不会通过DHCP分配地址,需要手动指定。
以两台Ubuntu系统为例,假设私有网卡分别为eth1,可以在两台机器上分别编辑网络配置。服务端使用10.0.0.1,客户端使用10.0.0.2,网段可以随意选择,只要不与公网网卡冲突即可。
# 服务端 /etc/netplan/01-vrack.yaml
network:
version: 2
ethernets:
eth1:
addresses:
- 10.0.0.1/24
# 客户端改为 10.0.0.2/24 即可
# 应用配置
sudo netplan apply
# 安装 iPerf3
sudo apt update && sudo apt install -y iperf3配置完成后先用ping命令确认两台机器在内网互通,同时用iperf3 -v确认版本不低于3.9,旧版本的并行流参数和JSON输出行为略有差异,会影响测试数据的对比意义。另外要注意关闭防火墙对5201端口的限制,或者干脆在测试期间临时停用防火墙服务。
二、单线程与多线程实测流程
iPerf3的基本用法是在服务端执行iperf3 -s监听,客户端发起测试。但只跑一次默认参数并不能反映真实带宽能力,建议按照单线程TCP、多线程TCP、UDP丢包三个层次依次测试。
第一步先跑单线程,观察基础的TCP吞吐量:
# 服务端 iperf3 -s # 客户端,持续60秒,每2秒输出一次 iperf3 -c 10.0.0.1 -t 60 -i 2
单线程测试受TCP窗口大小限制明显,尤其是默认的Linux TCP缓冲区参数较保守时,跨数据中心场景下单线程可能只能跑到两三个Gbps,这不代表链路不行。第二步使用-P参数开启多条并行流,模拟真实业务中多连接并发的场景:
# 8条并行流,双向同时测试 iperf3 -c 10.0.0.1 -t 60 -P 8 --bidir
第三步用UDP测试来验证链路的丢包和抖动情况。UDP没有重传机制,能更直接地暴露网络质量问题:
# 客户端以 5Gbps 速率发送 UDP iperf3 -c 10.0.0.1 -u -b 5G -t 30 iperf3 -c 10.0.0.1 -u -b 5G -t 30 --get-server-output
在同区域GRV(Gravelines)数据中心的实测中,两台Advania型号的实例通过vRack互联,单线程TCP大约在2.5Gbps左右,8并行流时可以稳定达到接近10Gbps,UDP在5Gbps发送速率下丢包率低于0.01%,延迟在0.3毫秒上下。跨区域走vRack的话,由于流量实际经过骨干网,延迟会上升到几个毫秒,吞吐也会有一定折损。
三、测速结果不理想时的调优手段
如果测出来的数字远低于预期,先不要怀疑平台限速,大多数情况是系统层面的TCP参数没有调优。Linux默认的TCP读写缓冲区对高带宽延迟积(BDP)链路来说太小,需要手动放大。可以用sysctl调整net.core.rmem_max和net.core.wmem_max,把它们提升到64MB以上,同时启用窗口缩放:
# /etc/sysctl.d/99-tcp-tuning.conf net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 net.ipv4.tcp_rmem = 4096 87380 67108864 net.ipv4.tcp_wmem = 4096 65536 67108864 net.ipv4.tcp_window_scaling = 1 net.core.default_qdisc = fq net.ipv4.tcp_congestion_control = bbr # 生效 sudo sysctl --system
把拥塞控制算法换成BBR并搭配fq队列,对高吞吐场景的提升非常明显,实测单线程速率经常能翻倍。另外iPerf3客户端也可以直接指定窗口大小来验证,例如-w 16M,如果在放大窗口后速率明显上升,就说明瓶颈确实在TCP缓冲区而不是物理链路。
除了内核参数,还有几个容易踩的坑需要排查:一是确认网卡协商速率,用ethtool eth1查看Speed是否为10000Mb/s,如果协商到了1G说明vRack配置或网卡驱动有问题;二是检查是否误走了公网地址,测试一定要用10.x的私网IP;三是CPU性能不足时iPerf3会成为瓶颈,特别是开启加密的老款实例,可以用-P分担或换更高主频的机型复测;四是虚拟化平台的CPU抢占会导致速率波动,建议多次测试取中位数而不是看单次峰值。
四、如何解读测试数据并指导架构决策
拿到一堆测试数字之后,关键是把它们转化为架构层面的判断。同区域vRack内万级吞吐和亚毫秒延迟,足以支撑MySQL主从复制、Redis集群脑裂探测、Kubernetes节点间通信等对网络敏感的场景。如果业务需要在欧洲和美国之间同步大量数据,就要接受跨区域vRack的毫秒级延迟,此时更适合采用异步复制加对象存储搬迁的架构,而不是强依赖同步内网带宽。
建议在正式上线前把iPerf3测试脚本化,纳入巡检流程,定期对比历史数据。一旦吞吐出现明显衰减,往往意味着vRack配置变更、实例规格调整或平台侧的网络策略更新,及早发现可以避免线上故障。配合--json参数输出结构化结果,还可以很方便地接入监控系统做趋势可视化,让内网带宽从一次性的测试指标变成持续可观测的运行时指标。