1. 概述与准备
本文目标:在新加坡(ap-southeast-1 / sg)云服务器上进行带宽与延迟的可重复实测,并记录与分析结果。准备:本地或另一云端测试客户端(Linux/Mac/WSL),目标新加坡云主机(Ubuntu 20.04/22.04),具备sudo权限,安装常用工具(iperf3、mtr、traceroute、speedtest-cli/ookla)。
步骤:1) 在云厂商控制台选择新加坡区域,新建一台Ubuntu实例(最小2vCPU+2GB内存建议)。2) 分配公网IP并在安全组/防火墙中开放端口:TCP/5201(iperf3)、ICMP(ping)、必要的SSH端口。3) 登录后执行:sudo apt update && sudo apt install -y iperf3 mtr traceroute inetutils-ping curl
3. 配置与优化建议(测试前)
命令示例:sudo ufw allow 5201/tcp; sudo sysctl -w net.ipv4.tcp_window_scaling=1; sudo sysctl -w net.core.rmem_max=33554432; sudo sysctl -w net.core.wmem_max=33554432。检查MTU:ip link show eth0;如需设置:sudo ip link set dev eth0 mtu 1500。注意:关闭流量整形或QoS影响,记录原始配置以便还原。
4. 在新加坡服务器上启动 iperf3 服务端
命令:sudo iperf3 -s -D # 以守护进程启动;或 sudo iperf3 -s &> /var/log/iperf3-server.log 2&>&1 &。确认端口监听:ss -tunlp | grep 5201。
5. 从客户端执行基础延迟测试(ping 与 mtr)
命令与要点:ping -c 50 -i 0.2 <新加坡IP> 记录平均RTT、丢包率;mtr -rwzbc100 <新加坡IP> (运行100次)收集各跳延迟与丢包,保存为文本:mtr -rwzbc100
> mtr_sg_$(date +%F_%T).txt。若有单跳丢包高,记录对应ASN或设备。
6. 路由和路径排查(traceroute)
使用:traceroute -I -n <新加坡IP>(ICMP)或 traceroute -T -n (TCP)。对比客户端与第三方(例如另一云区域)到目标的路径差异,定位跨国链路瓶颈。
7. 带宽测试:使用 iperf3(TCP)
客户端命令示例:iperf3 -c <新加坡IP> -p 5201 -P 4 -t 60 -w 512K -J > iperf_tcp_$(date +%F_%T).json。其中 -P 并行流数,-t 测试时长,-w TCP窗口。建议测试用例:单流(-P1)、4流、8流,时长60秒,分别在不同时间段(高峰/非高峰)运行。
8. UDP带宽与抖动测试
在客户端执行:iperf3 -c <新加坡IP> -u -b 500M -l 1472 -t 60 -J > iperf_udp_500M.json。说明:UDP模式需指定带宽(-b),观察丢包/抖动字段。若出现大量丢包,逐步降低带宽直到丢包率可接受。
9. 使用 Speedtest / Ookla CLI 做端到端测速
安装并运行:curl -sS https://install.speedtest.net/app/cli/install.deb.sh | sudo bash && sudo apt install speedtest -y;或使用 community speedtest-cli:pip install speedtest-cli。运行:speedtest --accept-license --format=json > speedtest_$(date +%F_%T).json。记录server id、延迟与上传/下载速率。
10. 自动化、多时间点与并行测试策略
建议:写脚本轮询(cron)在不同UTC时段执行以上测试并保存JSON结果。示例cron任务:0 */6 * * * /usr/local/bin/run_net_tests.sh。脚本内包含环境信息(instance id、kernel、ifconfig、ethtool -S)、并将结果上传到集中存储(S3或FTP)。
11. 日志保存与结果解析方法
解析要点:iperf3 JSON 中取 end.sum_received.bits_per_second(或 sender),转换为Mbps = bits_per_second/1e6;ping 取 avg RTT 与mdev;mtr 输出看丢包与各跳延时。建议计算平均、标准差与95百分位数以反映稳定性。
12. 常见干扰项与排查清单
项列举:本地链路瓶颈(用本地到最近交换机ping)、防火墙或限速、云商端口限速、TCP slow start 与窗口大小、主机CPU或I/O 限制(top/iostat)。实测时同时监控 sar 或 dstat 记录系统资源。
13. 问:如何判断新加坡云服务器的带宽受限是链路还是服务器问题?
答:先对本地到服务器的多点测试:1) 在新加坡服务器本地跑 iperf3 -c 到另一个同区服务器,若能达到预期则链路到外网可能受限;2) 检查服务器CPU/DISK:top/iostat;3) 用 traceroute/mtr 确认跨国链路是否出现抖动或丢包;4) 修改 iperf3 参数(增加 -P、增大 -w)看吞吐变化,若受CPU限制并行增加会下降,说明为主机资源问题。
14. 问:如何把测试结果做成可读报告并给出结论?
答:将所有JSON/TXT统一导入脚本(Python可用 pandas),计算各测试的平均、95perc、丢包率与抖动,生成时间序列图(latency/throughput vs time)。在结论部分列出测试环境、测试样本数量、最高持续带宽、典型RTT与异常时段,给出是否达标及可能瓶颈。
15. 问:对想长期监控新加坡节点的人有哪些建议?
答:部署轻量级定时任务(每小时或更短)跑 ping/iperf3/Speedtest 并上传至监控平台(Prometheus+Grafana或ELK);设置阈值告警(丢包>2%或带宽低于阈值);并定期(周/月)复测并对比历史波动,必要时提供 traceroute 快照以便向云厂商申诉链路问题。