在数据中心升级万兆网络时,很多运维人员都会遇到一个实际难题:明明部署了万兆网卡和交换机,实测速度却远达不到理论值。去年有个客户,他们采购的10Gbps网卡在实际业务中却只能跑到3Gbps左右,但经过我们专业测试排查,最终发现是网卡驱动版本和交换机流控配置不匹配导致。那么,如何才能准确测试万兆网卡的真实传输速度?测试过程中有哪些容易忽略的关键细节?
一、万兆网卡测速的三种专业方法
1. iperf3实测法(推荐)
这是目前最准确的测试方案,需要两台服务器通过万兆交换机直连:
在被测服务器安装iperf3:
yum install iperf3 -y
在服务端启动监听:
iperf3 -s
在客户端发起测试(示例命令):
iperf3 -c 服务端IP -t 60 -P 8 -w 256K -O 3
参数说明:
- -P 8:启用8个并行线程
- -w 256K:TCP窗口大小设为256KB
- -O 3:跳过前3秒的热身阶段
2. 文件传输实测法
更贴近实际业务场景的测试方式:
使用dd命令生成测试文件:
dd if=/dev/zero of=testfile bs=1G count=10
通过scp传输:
scp -l 8192 testfile 目标服务器:/path/
记录传输时间,计算实际速率
3. 交换机端口计数法
在Cisco/Juniper等专业交换机上:
show interface xe-0/0/0 | match "bps|errors"
可查看端口实时速率和错误计数,适合长时间稳定性测试。
二、影响测速结果的六大关键因素
影响因素 | 典型症状 | 解决方案 |
---|---|---|
MTU设置不匹配 | 速度波动大,无法突破5Gbps | 两端统一设置为9000 |
TCP窗口太小 | 高延迟环境下速度下降 | 调整至256KB以上 |
中断分配不均 | CPU单核满载 | 使用irqbalance或手动绑定 |
流控配置错误 | 出现大量pause帧 | 关闭或改用PFC |
线缆质量问题 | 出现CRC错误 | 更换为认证DAC/AOC线缆 |
散热不良 | 测试后期速度下降 | 改善机箱风道 |
三、Mellanox万兆网卡调优实例
以ConnectX-4 Lx 10G网卡为例,经过调优后实测可达9.85Gbps:
驱动配置:
mlxconfig -d /dev/mst/mt4099_pciconf0 set LINK_TYPE_P1=ETH
启用硬件卸载:
ethtool -K eth0 tx on rx on tso on gso on gro on lro off
优化中断:
ethtool -C eth0 rx-usecs 50 tx-usecs 50
调整TCP参数:
echo "net.ipv4.tcp_rmem=4096 87380 6291456" >> /etc/sysctl.conf
测试时建议配合nmon工具监控系统资源使用情况,重点关注%sys CPU使用率和软中断(si)分布。如果发现单个CPU核心处理所有网络中断,需要通过以下命令重新分配:
echo "0-3" > /proc/irq/`cat /proc/interrupts | grep eth0 | awk '{print $1}' | sed 's/://'`/smp_affinity_list
万兆网络的实际表现是整套系统协同工作的结果,不能仅看网卡本身的规格参数。从实际工程经验来看,经过专业调优的Mellanox万兆网卡可以稳定达到理论值的95%以上吞吐量。对于金融交易等对延迟敏感的场景,还需要特别关注微突发流量下的表现,这时RoCEv2协议相比传统TCP/IP会有明显优势。建议企业在完成基础测试后,还要模拟真实业务流量进行72小时以上的稳定性测试,确保网络在各种负载条件下都能可靠工作。