1. 本段目标:明确为何测试香港服务器作为“中继”(relay)以及要达成的指标。
- 场景举例:作为TCP/HTTP代理、VPN节点、WireGuard或应用层转发器。
- 常见关注点:端到端延迟(RTT)、抖动、丢包、吞吐(goodput)、并发连接数、CPU/内存占用。
2. 步骤详情:准备一台香港VPS或机房服务器,并在本地与目标机上安装测试工具。
- 推荐工具(安装命令示例):
1) iperf3(带宽):apt-get install -y iperf3 或 yum install -y iperf3。
2) mtr/traceroute:apt-get install -y mtr traceroute。
3) hping3、tcpdump、tshark:apt-get install -y hping3 tcpdump tshark。
4) wrk/hey/wrk2(HTTP压测):编译安装或通过包管理器安装。
- 系统设置:关闭防火墙或在测试端口开放(注意安全策略)。
3. 实操步骤:示例用socat快速做TCP中继,示范命令与验证。
- 用socat在香港机上:socat TCP-LISTEN:9000,fork TCP:backend:80 (将9000端口转发到内部backend:80)。
- 验证:从客户端curl http://hk-server:9000/,若返回正常则中继建立成功。
- 其他中继选项:SSH隧道(ssh -L 本地:远端)、WireGuard配置、HAProxy/nginx stream配置用于高并发。
4. 具体命令与结果判断:逐步操作并解释关键字段。
- ping hk-server -c 100:观察平均RTT、最小/最大、丢包率。理想值:香港到东亚地区10–50ms,若>100ms需排查路由。
- mtr -rwzbc 100 hk-server:查看每跃点延迟与丢包。若前几跳丢包大多在上级ISP,经常提示链路问题。
- traceroute -T -p 80 hk-server:区分TCP与ICMP路由差异,发现中间有策略阻断或黑洞。
5. iperf3 操作指南与参数说明,含样例解读。
- 服务端(香港):iperf3 -s。
- 客户端(测试端):iperf3 -c hk-server -P 8 -t 60 -w 256k(8并发流,持续60秒,调整socket窗口)。
- UDP测试:iperf3 -c hk-server -u -b 500M -l 1M -t 30(测试目标带宽,注意丢包与延迟变化)。
- 结果解读:看Sender/Receiver带宽差异(表示丢包或重传)、retransmits 值高说明TCP层丢包或拥塞。
6. 深入测量并记录证据的步骤。
- 用hping3做大量小包延迟测试:hping3 -S -p 9000 --flood hk-server(谨慎使用,避免影响他人)。
- 抖动计算:用ping统计每个包RTT并用脚本计算标准差或用mtr汇总。
- 抓包分析:tcpdump -i eth0 -w capture.pcap host
7. HTTP/S中继评测步骤与关键指标获取方法。
- 使用wrk:wrk -t8 -c1000 -d60s http://hk-server:9000/ 跑并发压力。观察requests/sec与 latency distribution。
- TTFB测量:curl -o /dev/null -s -w '%{time_starttransfer}\n' http://hk-server:9000/(多次取平均)。
- 对比:直接访问后端和通过中继访问,记录吞吐与TBTB差异,差距过大说明中继成为瓶颈。
8. 持续监控项与排障流程:确保性能问题不是CPU或网卡限制造成。
- CPU/内存:top 或 vmstat 1 ;查看是否有单核饱和(特别是加密隧道会占用单核)。
- NIC指标:ethtool -S eth0 查看drop/errors;ethtool -k eth0 查看offload功能。
- 套接字队列与状态:ss -s;ss -tn sport = :9000 查看TIME_WAIT、estab等。
- IO/磁盘:iostat -x 1;如果中继产生日志或缓存,磁盘IO也会影响延迟。
Q1:如果对香港中继测得高延迟或丢包,我第一步应该检查什么?
A1:先从网络层到主机层按顺序排查:1) 用mtr看是哪个跃点出现延迟/丢包;2) 在香港机上看网卡错误(ethtool -S)与CPU占用(top);3) 抓包确认是否在对端或本端重传;4) 检查MTU/path MTU导致分片问题(ping -M do -s ...)。
Q2:做中继评测有哪些合理的基准值可以参考?
A2:参考值(仅供参考):从亚洲邻近地区到香港RTT常见10–50ms,从欧美则常见150–250ms;丢包率宜低于0.1%;并发连接数与吞吐取决于实例规格,观察CPU利用率在80%以下且网络队列无drop为佳。最终以业务SLA为准。
Q3:如何把上述测量纳入自动化监控并触发告警?
A3:采用Prometheus + node_exporter + blackbox_exporter / custom scripts采集关键指标:ping latency、packet_loss、iperf历史吞吐、CPU/NET错误;设置报警规则(如RTT超过阈值、丢包>0.5%、CPU>85%)并把抓包/日志链接附在报警中,便于快速定位。