1. 环境与前提准备
- 确认服务器类型(裸金属或VPS)、操作系统版本(建议Ubuntu 20.04/22.04)。
- 确保有root或sudo权限;关闭无关服务(nginx/mysql等)以避免干扰;设置恒定时区并同步时间:sudo apt install -y ntp && sudo systemctl enable --now ntp。
- 记录公网IP、内网带宽配额与机房(新加坡)信息,并准备至少一台远端客户端用于跨区域测试(例如中国/香港/欧洲节点)。
2. 安装必备工具
- 更新系统并安装测试工具:sudo apt update && sudo apt install -y iperf3 mtr traceroute iputils-ping fio sysbench python3-pip;
- 安装speedtest-cli与iperf3客户端:pip3 install speedtest-cli;确认版本:iperf3 --version;speedtest-cli --version。
3. 基础网络检查与信息采集
- 检查网络接口与MTU:ip addr show && ip link set dev eth0 mtu 1500(根据提供商建议调整)。
- 查看路由与BGP邻居信息(如有):traceroute -n 8.8.8.8;mtr --report 8.8.8.8 -c 100 > mtr_report.txt。
4. 带宽测试:iperf3(TCP)标准流程
- 在测试目标服务器启动iperf3服务:sudo iperf3 -s -p 5201 &;
- 在远端客户端执行:iperf3 -c <服务器IP> -p 5201 -P 10 -t 60 --logfile iperf_tcp_run1.txt;说明:-P 为并发流数,-t 测试持续秒数,重复3次取平均。
5. 带宽测试:iperf3(UDP)测抖动与丢包
- 服务器端同样运行iperf3 -s;
- 客户端执行UDP测试:iperf3 -c <服务器IP> -u -b 1G -t 60 -l 1400(-b 指定发送带宽),结果包含丢包与jitter。建议从低带宽递增以找到饱和点。
6. 延迟与抖动测量(ping / mtr)
- 连续ping测量:ping -c 200 -s 56 <服务器IP> > ping_report.txt,统计平均、最小、最大与丢包率。
- 使用mtr生成跳点统计:mtr --report --report-cycles 100 <服务器IP> > mtr_report.txt,用于定位哪一跳引入延迟或丢包。
7. 实际互联网带宽测试(speedtest-cli)
- 在服务器上运行:speedtest-cli --json > speedtest_result.json;
- 建议在不同时间段(高峰/非高峰)各跑3次,取中位数并保存时间戳供对比。
8. 存储与CPU基准(fio / sysbench)
- 磁盘IO读写:fio --name=seqwrite --filename=/tmp/testfile --size=1G --bs=1M --rw=write --iodepth=16 --numjobs=1 --runtime=60;
- CPU压测:sysbench cpu --threads=4 --time=60 run;记录ops/sec与延迟。
9. 多次测试与去噪策略
- 每项测试至少做3~5轮,先做10秒热身再开始正式采样;
- 在测试前确认无大流量任务,若为虚拟机需告知带宽竞态可能影响结果;保留测试原始日志(iperf、ping、mtr、fio)。
10. 结果处理与关键指标计算
- 对带宽取平均/中位数,计算标准差;延迟统计p50/p95/p99;丢包率按总发包数计算;
- 使用脚本(Python/pandas)读取json或txt,汇总到CSV并绘制时间序列或CDF图表,直观展现抖动与突发丢包。
11. 典型测试命令汇总(便于复制)
- iperf3 TCP:iperf3 -c
-P 10 -t 60;
- iperf3 UDP:iperf3 -c -u -b 500M -t 60;
- ping:ping -c 200 -s 56 ;mtr:mtr --report-cycles 100 。
12. 注意事项与排错建议
- 若带宽低于预期,检查MTU、TCP窗口(sysctl net.core.rmem_max rmem_default等)、中间防火墙限速;
- 若出现高丢包,使用tcpdump抓包定位丢包方向:sudo tcpdump -i eth0 host -w capture.pcap。
13. 示例结果解读要点
- 带宽:观察是否接近运营商承诺带宽并关注抖动时段;
- 延迟:p95/p99较高通常指链路不稳定或中间节点拥塞;丢包>1%需关注链路品质或线路故障。
14. 常见问题一:新加坡服务器为何在夜间带宽较低?
问:为什么测试显示夜间带宽下降?
答:可能是机房带宽共享峰值策略、同机房邻居流量激增或国际出口链路在夜间被其他流量占用。建议用mtr定位受影响跳点并联系机房客服确认链路状况。
15. 常见问题二:如何判断是本机配置问题还是线路问题?
问:我该如何区分是服务器配置导致性能差还是线路问题?
答:先本地做loopback与网卡基准(fio/sysbench),再从不同外部客户端对服务器并行测试。如果本地性能正常而远端多点都显示延迟或丢包,通常为网络链路或机房问题。
16. 常见问题三:生产环境如何稳定持续监控?
问:有什么推荐的持续监控方案?
答:部署Prometheus + node_exporter采集主机指标,结合Blackbox Exporter做ping/HTTP测试;用Grafana仪表盘展示带宽、延迟、丢包与磁盘IO,并设置告警规则(p95延迟、丢包率阈值)。
来源:新加坡原生服务器 性能基准测试与带宽延迟实测结果展示