1. 概要与测试目标
目的:对比不同新加坡CN2产品(如CN2 GIA/GT或供应商标注的CN2线路)在带宽稳定性与延迟上的表现;小分段:a) 明确测试指标:平均带宽、吞吐波动、延迟(平均/中位/最大)、抖动、丢包;b) 明确测试场景:国内到SG单向与双向、不同时间段与并发流数。
2. 测试前准备与变量控制
步骤:1) 统一服务器配置(CPU、内存、网卡)、关闭防火墙或放通测试端口;2) 确保被测试的CN2主机带宽套餐相同或记录不同套餐;3) 测试时段:至少覆盖高峰/低峰并分24小时收集;4) 控制客户端环境:关闭其它大流量应用,或在干净的VPS/机房内测试。
3. 必备工具与安装命令
工具列表与安装(Debian/Ubuntu示例):1) iperf3:sudo apt update && sudo apt install -y iperf3;2) mtr:sudo apt install -y mtr-tiny;3) tcpdump:sudo apt install -y tcpdump;4) speedtest-cli(可选):pip3 install speedtest-cli;5) gnuplot或Python matplotlib用于绘图。
4. 测试拓扑与端口规划
拓扑:客户(中国或多地节点)↔ 公网 ↔
新加坡CN2主机;小分段:1) 在每个被测新加坡主机上启动iperf3 server(端口默认5201);命令:iperf3 -s -p 5201 -D(后台);2) 客户端从同一来源分别对不同供应商的SG节点发起测试。
5. 带宽测试:iperf3详细步骤
步骤:1) 单流TCP测试:iperf3 -c
-p 5201 -t 60 -i 10 > log1.txt;2) 多并发流测试:iperf3 -c -p 5201 -P 8 -t 120 -i 10 > log_multi.txt;3) 双向测试(server端加 -R):iperf3 -c -p 5201 -R -P 4 -t 60;4) 定时批量测试(每5分钟一次,使用cron):*/5 * * * * /usr/bin/iperf3 -c -p 5201 -P 4 -t 30 >> /var/log/iperf3_sg.log。
6. 带宽稳定性与日志采集方法
方法:1) 保存每次测试的带宽时间序列(iperf3 -J 可输出JSON);2) 用jq提取时间点带宽:cat log.json | jq '.intervals[].streams[].bits_per_second';3) 计算均值、中位、标准差(可用Python/pandas);4) 判定规则:标准差/均值 <10%视为稳定,>25%视为不稳定。
7. 延迟与抖动测试步骤(ping 与 mtr)
命令与采样:1) Ping 长时采样:ping -c 1000 -i 0.2 > ping_log.txt;分析平均、最小、最大、丢包;2) MTR 路径采样:mtr -r -c 100 > mtr_log.txt,重点查看每跳丢包率与平均延迟;3) 抖动计算:将每次响应时间取差的标准差作为抖动。
8. 路由与AS路径检查(Traceroute / BGP)
操作:1) 使用traceroute和tcptraceroute(tcp traceroute更贴近TCP实际路径):tcptraceroute 80;2) 记录AS路径:使用whois或在线bgp工具(bgp.he.net)核对对端AS是否CN2相关;3) 注意观察经由的中间节点是否存在间歇性路径切换。
9. 丢包与重传诊断(tcpdump 与 ss)
步骤:1) 在服务器端抓包:sudo tcpdump -i any host and port 5201 -w /tmp/iperf3.pcap;2) 用tshark/tcpdump统计重传:tshark -r iperf3.pcap -q -z "io,phs"(或用Wireshark查看TCP Retransmissions);3) 在Linux查看TCP重传/丢包:ss -s、cat /proc/net/netstat。
10. 大规模/长期自动化采集方案
实施:1) 编写脚本(bash或Python)定时调用iperf3、ping、mtr并保存JSON/CSV;2) 使用Prometheus + node_exporter + grafana抓取并展示带宽/延迟时间序列;3) 设定告警阈值(如丢包>0.5%或延迟飙升>50ms持续5分钟触发告警)。
11. 数据分析与判定标准
分析方法:1) 计算每小时/每日的平均带宽与95分位;2) 延迟以中位数和95分位为主,抖动用延迟标准差;3) 建议阈值:稳定带宽抖动<10%,丢包<0.1%,平均延迟(中国到新加坡)CN2 GIA常见在80ms以下(视省份),如超过预期需联系商家。
12. 结论与选购建议
建议:1) 若对延迟敏感(游戏、实时语音),优先选择标注为CN2 GIA或运营商承诺直连品质的线路,并要求测试窗口;2) 若仅需大带宽且成本敏感,可用CN2 GT或普通CN2做对比,重点看24小时稳定性数据;3) 要求供应商提供iperf3测试并保存原始JSON以便复查。
13. 问:如何快速判断某台新加坡CN2主机是否满足低延迟需求?
答:步骤:1) 从你的真实用户位置或测试节点运行 mtr -r -c 50 和 ping -c 100 ;2) 观察mtr结果中最后几跳延迟与丢包率,若末跳丢包接近0且延迟稳定(中位-平均差小),则基本满足;3) 再用 iperf3 -c -P 4 -t 60 检测实际吞吐,结合延迟判断是否满足低延迟场景。
14. 问:执行iperf3多并发测试时,如何避免本地瓶颈误判?
答:方法:1) 确认本地VPS/机器网络接口带宽(ethtool 或 iperf3本地测试),CPU负载低于70%;2) 测试前关闭防火墙/限速、或在不同机房用多个独立客户端比较;3) 使用双向测试(iperf3 -R)并在服务器端抓包核对TCP窗口与重传,排除本地限速误判。
15. 问:长期运行稳定性监测的最低实现方案是什么?
答:最简方案:1) 在客户侧部署一台轻量VPS,写一个cron脚本每5分钟运行一次iperf3 -c -P 2 -t 20 -J,将JSON追加到文件;2) 每小时运行一次 mtr -r -c 100 并保存结果;3) 每日用一个Python脚本统计均值/95分位并邮件汇报,出现异常(丢包/延迟超阈)再触发人工深入排查。
来源:新加坡主机cn2产品比较带宽稳定性与延迟评测报告