1.
准备与前提
- 你需要一台Digirdp新加坡VPS的root/管理员权限。
- 测试端(本地或另一台云主机)需能访问VPS,建议用Linux(Ubuntu/CentOS)做测试机。
- 安装常用工具:ping、mtr、traceroute、iperf3、speedtest-cli(pip安装)等。
2.
安装工具(一步到位)
- Ubuntu/Debian: sudo apt update && sudo apt install -y mtr iperf3 traceroute ping python3-pip
- CentOS: sudo yum install -y mtr iperf3 traceroute iputils
- 安装 speedtest-cli: sudo pip3 install speedtest-cli
- 验证: iperf3 --version && mtr --version && speedtest-cli --version
3.
延迟基础测试(Ping)
- 命令(Linux): ping -c 100 -i 0.2 新加坡VPS_IP > ping_result.txt
- 含义: -c 100 发100次,-i 0.2 每0.2秒一包,输出保存用于后续统计。
- 解析: 查看平均(avg)、最小、最大、标准偏差(若需用awk计算):awk -F'/' 'END{print "min="$4",avg="$5",max="$6",mdev="$7}' ping_result.txt
4.
逐跳与丢包定位(MTR)
- 命令: mtr -r -c 100 新加坡VPS_IP > mtr_report.txt
- 含义: -r 生成报告模式,-c 100 运行100次;mtr展示每跳的丢包/延迟,找出在哪一跳开始出现丢包。
- 注意: 终端防火墙或中间节点可能会限制ICMP,重点观察“Last”与“Loss%”。
5.
TCP路径与路由(traceroute/tcptraceroute)
- traceroute: traceroute 新加坡VPS_IP 或 tcptraceroute
新加坡VPS_IP 80(测试TCP 80端口)
- 用途: 判断TCP连接路径与是否存在明显跳数延迟;与mtr结合判断是否为中间路由问题。
6.
带宽与稳定性测试(iperf3)
- 在VPS上启动服务端: sudo iperf3 -s -D (-D 后台运行)
- 在本地作为客户端测试单向带宽: iperf3 -c VPS_IP -t 60 -i 10 -P 1 > iperf_single.txt (-t 60 持续60秒,-i 10 每10秒输出)
- 多流并发测试: iperf3 -c VPS_IP -t 180 -i 10 -P 8 > iperf_multi.txt (推荐长时测试以观测波动)
- 反向测试(VPS发流到你本地): 在本地启动iperf3 -s,在VPS上运行 iperf3 -c LOCAL_IP --reverse -t 180
7.
HTTP/下载测试与实际吞吐
- 创建测试文件:在VPS上sudo fallocate -l 1G /var/www/html/1G.bin并用nginx/Apache提供下载。
- 本地下载测试: curl -o /dev/null -w "%{speed_download}\n" http://VPS_IP/1G.bin >/tmp/curl_speed.txt 或使用 wget --report-speed=bits
- 目的: 检查实际HTTP吞吐是否接近iperf3结果,验证协议栈与磁盘影响。
8.
丢包细化与抖动(Jitter)计算
- 用ping输出计算抖动: ping -c 200 VPS_IP > ping200.txt,然后用awk计算延迟标准差或相邻包差值平均来估计抖动。示例:awk '/time=/{print $7}' ping200.txt | sed 's/time=//' | awk '{sum+=$1;sum2+=$1*$1; n++;} END{print "avg="sum/n",stddev="sqrt(sum2/n-(sum/n)^2)}'。
- mtr可以显示每跳延迟变化,若某跳延迟波动大即为抖动源。
9.
长期监控与自动化采集(Cron/脚本)
- 编写脚本 collect_net.sh 包含:ping -c 60、mtr -r -c 100、iperf3 -c VPS_IP -t 60,然后将结果保存到/var/log/nettest/$(date +%F_%T).log。
- Cron示例: */30 * * * * /root/collect_net.sh(每30分钟运行一次)。
- 可用Prometheus + Node Exporter +自定义脚本上报关键指标实现图表化。
10.
结果分析与报表生成
- 汇总指标:平均延迟、丢包率、带宽峰值、带宽稳定性(例如每10秒样本的均值和标准差)。
- 识别问题:若mtr显示链路中间某跳有高丢包但之后恢复,通常可忽略;若到目标末端丢包,则为VPS或运营商问题。
- 建议:保存原始日志并截图关键波动点用于提交工单。
11.
注意事项与排错建议
- 节点策略:部分运营商对ICMP限速导致Ping/MTR显示虚假丢包,用TCP traceroute与iperf3作为补充。
- 磁盘/CPU瓶颈:长时间iperf3满速测试时观察VPS CPU与网卡中断使用情况(top、iostat、sar)。
- 提供证据:向Digirdp提交工单时附上mtr_report.txt、iperf_multi.txt与时间戳。
12.
问:如何快速判断延迟是本地问题还是VPS端问题?
答:先从本地到VPS做ping和mtr(mtr -r -c 50 VPS_IP),若丢包/延迟在第一跳或本地网关出现,问题在本地网络;若中间或末端开始出现且持续到目标,问题在ISP或VPS侧。保存mtr报告并对比不同时间段的结果做判断。
13.
问:丢包高但iperf显示带宽正常,这说明什么?
答:这通常说明ICMP流量被限速或优先级较低,导致ping/mtr显示丢包但TCP流量(iperf)可正常传输。建议用iperf3长时间多流测试和HTTP下载验证真实吞吐,并将结果同时提交给服务商。
14.
问:如何把测试结果做成可读报表提交工单?
答:整理关键截图与日志:mtr_report.txt(标注丢包跳数)、ping结果统计、iperf3的每10秒带宽曲线(可用gnuplot或Excel画图)、测试时间和测试机器IP。用一页PDF概述问题、复现步骤和附件日志,提高工单响应效率。
来源:Digirdp新加坡VPS评测 包含延迟、丢包与带宽稳定性报告