3. 测试环境搭建:硬件准备与软件安装
做吞吐测试和抓包分析,说白了就是一场「实验室里的实战演习」。环境搭得好,后面分析数据才能顺风顺水。我见过太多人一上来就开测,结果网卡跑不满、交换机丢包、抓包文件损坏……嗯,这些坑我基本都踩过。今天咱们就把这套环境从头捋一遍。
3.1 硬件选型:别让设备拖后腿
硬件是地基。你想想看,如果服务器网卡只有千兆,却想测万兆的吞吐,那不是白费劲吗?我个人习惯,先定目标带宽,再选设备。
3.4.1 服务器
吞吐测试对 CPU 和内存要求不高,但 PCIe 通道数一定要够。我建议至少用双路 Xeon 或同等水平的 AMD EPYC。内存 16GB 起步,硬盘用 SSD,不然 iperf3 写日志时可能卡 I/O。
3.1.2 交换机
交换机要支持线速转发。别只看端口速率,背板带宽不够的话,多端口同时测试就会丢包。我一般选企业级三层交换机,比如华为 S5700 或 Cisco 3750 系列。家用交换机千万别用,它们的缓冲区太小,跑 iperf3 时延迟会忽高忽低。
| 设备类型 | 推荐型号 | 关键参数 |
|---|---|---|
| 服务器 | Dell R740 / H3C R4900 | 双路 Xeon、64GB RAM、SSD |
| 交换机 | 华为 S5735 / Cisco 3850 | 万兆上行、线速转发、大缓冲区 |
| 网卡 | Intel X710 / Mellanox ConnectX-4 | 双口 10G、PCIe 3.0 x8 |
3.1.3 网卡
网卡是吞吐测试的「咽喉」。我强烈建议用 Intel 或 Mellanox 的服务器网卡。Realtek 那种消费级网卡,跑千兆还行,一到万兆就各种掉线。另外,记得检查网卡固件版本——我曾经被一块旧固件的 X520 坑过,死活跑不满 10G,升级固件后直接正常。
3.2 软件安装:三件套缺一不可
软件方面,咱们主要用三个工具:iperf3 打流、tcpdump 抓包、Wireshark 分析。这三兄弟配合好了,什么问题都能揪出来。
3.2.1 iperf3:吞吐测试的瑞士军刀
iperf3 是目前最主流的吞吐测试工具。安装很简单:
# Ubuntu / Debian
sudo apt install iperf3
# CentOS / RHEL
sudo yum install iperf3
# macOS
brew install iperf3
装完之后,记得验证一下版本:iperf3 -v。我习惯用 3.9 以上版本,因为修复了旧版的一些 TCP 窗口问题。
-P 参数可以指定并行流数。比如 iperf3 -c 192.168.1.10 -P 4 会同时开 4 个流,能更充分地压榨带宽。
3.2.2 tcpdump:命令行抓包利器
tcpdump 是 Linux 下的抓包神器。安装命令:
sudo apt install tcpdump # Ubuntu
sudo yum install tcpdump # CentOS
我个人习惯用 -i 指定网口,-w 保存文件。比如:
sudo tcpdump -i eth0 -w test.pcap
这里要注意,抓包文件会很大。10Gbps 的流量,抓 10 秒就能生成几个 GB 的文件。所以抓包前先估算好磁盘空间。
-s 0 只抓包头。
3.2.3 Wireshark:图形化分析平台
Wireshark 是分析 pcap 文件的主力。安装方式:
# Windows / macOS 直接官网下载安装包
# Linux
sudo apt install wireshark
Wireshark 的过滤器是核心技能。我常用的几个:
tcp.port == 5201—— 只看 iperf3 的流量tcp.analysis.retransmission—— 快速定位重传包tcp.window_size == 0—— 检查窗口是否被耗尽
3.3 网络拓扑设计:画好你的测试蓝图
拓扑设计决定了测试的覆盖范围。我一般分三种场景:
3.3.1 直连拓扑(最简单)
两台服务器用网线直连,不经过交换机。这种拓扑适合测网卡极限性能,排除交换机干扰。
3.3.2 单跳拓扑(最常见)
两台服务器接在同一台交换机上。这是企业内网的标准场景,能测出交换机转发性能。
3.3.3 多跳拓扑(复杂场景)
经过多台交换机或路由器。适合模拟数据中心或广域网环境。
下面这张图是我常用的测试拓扑:
3.4 环境验证:别急着跑测试
硬件和软件都装好了,拓扑也连好了。别急着开测,先做几个快速验证:
- 连通性测试:
ping 192.168.1.10,确保两端能通。 - 网卡速率确认:
ethtool eth0,看 Speed 字段是不是你期望的值。 - 驱动版本检查:
ethtool -i eth0,确认驱动版本不是太老。 - 简单 iperf3 测试: 先跑 10 秒,看看有没有明显丢包。
iperf3 -c 目标IP -t 5 做快速验证。如果结果跟预期差太多,就回头检查网线、交换机端口配置和网卡驱动。别一上来就跑 60 秒,浪费时间。
环境搭好了,后面才能安心做测试。记住一句话:测试环境的质量,决定了测试结果的可信度。 别嫌麻烦,每一步都走扎实了,后面分析数据时你会感谢自己的。