1.
概述与测试目标
本段说明测试目的:在韩国 CN2 线路上评估“真实吞吐能力”(即应用层有效带宽、丢包、时延与抖动)。目标是得到可重复、可比的数值,区分网络带宽、服务器CPU/磁盘瓶颈与协议开销。
2.
测试前的准备清单
准备:一台位于韩国且标注为 CN2 路由的服务器(root 权限)、一台国内或其他位置的测试客户端、开放测试端口(如 5201)、安装工具:iperf3、netperf、tcpdump、iftop、ethtool、sysstat (sar)、nc、ssh/scp、aria2。
3.
验证 CN2 路由性
操作步骤:1) traceroute -n -T -p 5201
或 mtr -n ,查看路径中是否包含“ct”/“china telecom”或带有 cn2 标识的 AS;2) 使用 tcptraceroute 或者使用 iperf3 的 -J 输出结合路由信息判断是否走 CN2。
4.
服务器与客户端的系统调整
步骤命令(在两端都执行):sysctl -w net.core.rmem_max=134217728 net.core.wmem_max=134217728 net.ipv4.tcp_rmem="4096 87380 134217728" net.ipv4.tcp_wmem="4096 65536 134217728" net.ipv4.tcp_window_scaling=1 net.ipv4.tcp_congestion_control=bbr(或 cubic),并确认 ethtool -k eth0 关闭或开启 TSO/GSO 以测试影响:ethtool -K eth0 tso off gso off gro off。注意记录默认值以便还原。
5.
硬件与CPU监控准备
步骤:安装并启动 sar: sar -u 1 > cpu.log &,使用 ifstat 或 iftop 监控网卡实时吞吐:ifstat -i eth0 1。测试时确保磁盘 I/O 不成为瓶颈(使用 iostat -x 1 检查),尤其用 scp/rsync 时。
6.
基础带宽测试:iperf3 TCP 单线程
启动服务端:iperf3 -s。客户端命令示例:iperf3 -c -t 60 -f m -J -V。说明:默认单连接 TCP,适合测试单流吞吐上限。记录输出的 sent/received Mbps 和 retransmits。
7.
并发流测试:iperf3 多线程
操作:iperf3 -c -P 8 -t 120 -f m -J。作用:模拟并行连接(浏览器、下载管理器场景)。逐步增加 -P 值(1,2,4,8,16)观察吞吐增长曲线与丢包/重传变化,找到拐点。
8.
UDP 测试:丢包与抖动评估
命令:iperf3 -c -u -b 500M -t 60 -P 1 -J。说明:UDP 不做拥塞控制,需逐步上探带宽并观测丢包率与 jitter。注意不要超过链路实际能力太多以免造成网络拥塞。
9.
应用层吞吐:scp/rsync/aria2 实测
步骤:1) scp 大文件:scp -l 0 -C bigfile root@:/dev/null 并在两端记录 ifstat;2) rsync --progress --inplace -e "ssh -T -c aes128-gcm@openssh.com -o Compression=no" bigfile root@:/dev/null;3) aria2c 多连接拉取:aria2c -x16 http:///file。目的:得到实际文件传输的有效吞吐。
10.
长时间稳定性测试与抖动
步骤:将 iperf3 设置为较长时间(如 1800s)并周期性记录:iperf3 -c -P 8 -t 1800 -i 60 -f m -J。每分钟保存样本,检查吞吐是否稳定或有周期性波动,结合 sar/iftop 分析 CPU 与网卡状态。
11.
抓包与精确分析
使用 tcpdump 抓包:tcpdump -i eth0 host and tcp -w test.pcap。之后用 Wireshark/ tshark 查看 TCP window、SACK、retransmission、复制 ACK、RTT 分布(tcp.analysis.retransmission, tcp.analysis.ack_rtt),计算有效载荷占比和协议开销。
12.
结果计算与误差控制
计算方法:从 iperf 输出取 mean Mbps。若希望得到应用有效吞吐,将抓包中 TCP payload bytes / 流量时间 计算为 Mbps。考虑 TCP/IP 协议开销(以太网 + IP + TCP 头约 54 bytes),实际有效应用层会比线速低 3~7%。进行 3~5 次重复取平均并报告最大/最小/中位。
13.
常见问题与排查步骤
举例:高丢包但链路带宽未满 → 检查 queue/traffic shaping(tc qdisc)、ISP 限速;高重传 → 可能 MTU/PMTUD 问题,检查 iperf3 输出与 iperf3 -M 设置;CPU 占满 → 查看 sar,考虑启用 NIC 中断均衡(irqbalance)或开启多队列。
14.
测试报告模板建议
建议包含:测试时间与时区、服务器/客户端配置(CPU、内核、NIC)、命令与版本、路由 traceroute 输出、每项测试原始数据(iperf JSON)、抓包摘要(丢包率、平均 RTT、抖动)、结论与建议(如提升 window、调整 offload、联系带宽提供方)。
15.
注意事项与合规性
注意不要在生产网络高峰期做大流量长时间测试以免影响他人;在做 UDP 压力测试前征得上游同意,避免触犯运营商流量管理策略或被封端口。
16.
常用命令速查(总结)
速查列表:iperf3 -s;iperf3 -c IP -P 8 -t 60;iperf3 -c IP -u -b 500M;traceroute -n IP;mtr -n IP;tcpdump -i eth0 net IP -w out.pcap;ethtool -k eth0;sysctl -p(应用参数)。
17.
Q1:如何判断测试结果是否属于“CN2 真实吞吐”而非本地瓶颈?
答:先在两端分别监控 CPU、磁盘、网卡(sar、iostat、ifstat)。若本地资源未饱和且 traceroute 显示走 CN2,iperf 多流仍能稳定达到高带宽且重传低,则可归因于线路;若本端 CPU 或网卡队列饱和,应先消除本地瓶颈。
18.
Q2:测试时为何需要改变 TSO/GSO/GRO 设置?
答:这些 offload 会使抓包和协议层表现看起来不同(在网卡上合并分片),可能掩盖真实的每包延迟和重传。关闭后能更准确地在 tcpdump 中看到分片与重传,便于定位问题;但关闭会增加 CPU 负载,所以测试两种状态对比更全面。
19.
Q3:如果测试结果波动大,该如何进一步定位?
答:按时间段分段测试(小时粒度)找出波动周期;同时使用 mtr 检查哪个跳点开始出现丢包;抓包分析 RTT 与重传点;结合 ISP/机房客服确认是否存在带宽共享或峰值调整策略。
来源:测试指南如何评估实用的韩国cn2服务器 的真实吞吐能力