1. 准备阶段:确定测试目标与环境
- 明确目标:比较延迟、带宽、丢包率、并发HTTP吞吐、抗DDoS识别与切换(清洗)时间、稳定性(Uptime)。
- 环境准备:准备至少两台位于不同地区的测试机(例如内地/海外),安装ssh访问工具;确保测试机网络带宽高于目标服务器带宽以避免测试端瓶颈。
- 合规与授权:对任何“攻击性”压力测试(DDoS模拟)必须得到供应商书面授权或在供应商提供的测试平台上进行,避免违法。
2. 准备工具与安装命令
- 必装工具(Debian/Ubuntu 举例):ssh, iperf3, mtr, traceroute, curl, wrk, hping3(需谨慎), tcptraceroute, jq。
- 安装示例:sudo apt update && sudo apt install -y iperf3 mtr traceroute curl git build-essential libssl-dev && git clone https://github.com/wg/wrk.git && cd wrk && make。
- 日志与采集:创建测试目录 /root/hktest,确保有足够磁盘空间,准备结果CSV文件(metrics.csv),并在测试脚本中按时间戳追加。
3. 基线网络性能测试(延迟、丢包、路径)
- ping 与 mtr:mtr -n -c 100 <目标IP> 获取平均延迟与丢包;保存:mtr -n -r -c 100
> /root/hktest/mtr-<供应商>.txt。
- traceroute: traceroute -T -p 80 ,对比路由跳数与异常跳点。
- 记录字段:timestamp, provider, test_point, avg_rtt(ms), loss(%), hops。用awk或python脚本解析mtr输出并写入CSV。
4. 带宽与吞吐测试(TCP/UDP)
- iperf3 TCP:在目标服务器启动 iperf3 -s 。本地作为客户端运行 iperf3 -c -P 10 -t 60 记录吞吐;参数含义:-P 并发流,-t 时长。
- iperf3 UDP:iperf3 -c -u -b 1G -t 60,观测丢包与jitter。
- 多点并发:在不同测试机同时对同一目标发起 iperf 测试,模拟真实并发请求,记录峰值与抖动。
5. HTTP(S)并发与吞吐压力测试
- 使用 wrk:wrk -t4 -c200 -d60s http://<域名>/path 测量Requests/sec与延迟分布;记录99/95百分位延迟。
- curl + time:curl -o /dev/null -s -w "%{time_total}\n" http://<域名>/path 多次采样用于校验wr k结果一致性。
- 场景化脚本:写shell循环随机URI或并发不同路径,模拟真实站点访问模式并将结果写CSV供后续分析。
6. 抗DDoS与切换测试(合规、安全)
- 先与供应商沟通请求“抗DDoS演练”或使用供应商提供的演练环境/工具,不要私自用hping3对公网发起攻击。
- 记录项:攻击开始时间、清洗开始时间、清洗结束时间、业务恢复时间、丢包率变化。供应商通常会提供清洗报告,保存为证据。
- 若供应商接受由第三方在受控环境做模拟,可使用低强度 hping3 测试包(在授权下)并监控业务响应,命令示例(仅授权环境):hping3 --flood -V -p 80 --rand-source <目标IP>(非常危险,务必事先书面同意)。
7. 自动化脚本与数据收集示例
- 基本采集脚本(伪代码):for provider in list; ssh root@provider_ip "iperf3 -s &>/dev/null &"; sleep 2; iperf3 -c provider_ip -P10 -t60 | tee /root/hktest/iperf-$(provider).log; mtr -n -r -c100 provider_ip > /root/hktest/mtr-$(provider).txt。
- CSV格式建议:provider,timestamp,test_type,metric,value,units。用awk或python pandas汇总并可视化(matplotlib或Excel)。
- 评分模板:给每项指标设定权重(例如延迟20%,带宽25%,丢包15%,稳定性20%,抗DDoS响应20%),归一化后计算总分。
8. 结果分析与决策建议
- 对比建议:用表格列出各家平均延迟、99p延迟、TCP最大吞吐、UDP丢包、清洗时延、清洗后可用率。
- 异常排查:若某家在某测试点延迟高,结合traceroute定位到中间节点并反馈给供应商处理。
- 最终决策:根据业务类型(游戏、金融、媒体)给予不同权重;例如游戏优先低延迟,媒体优先带宽和稳定。
9. 常见注意事项与合规提示
- 合规性:任何模拟攻击必须书面授权;未授权测试可能导致法律责任。
- 测试窗口:建议在业务低峰进行并通知相关团队准备回滚或停止测试。
- 复测:多次在不同时间段复测,避免单次测试偏差导致误判。
10. 问:如何在不影响生产的前提下做高强度压力测试?
- 回答建议:在供应商提供的测试IP或预生产环境进行;与供应商约定测试时间与强度;使用分阶段递增流量的方法(Step-Up),并保持实时监控,出现异常立刻终止并回滚测试。
11. 问:如果发现供应商在某项指标明显落后,应如何与其沟通?
- 回答建议:先整理证据(mtr、iperf、wrk日志与时间线),按问题分类(延迟/丢包/清洗滞后)向售后提交工单并要求网络层路由或清洗策略调整,给出复测窗口并记录反馈时效。
12. 问:有没有快速的评分模板可以直接使用?
- 回答建议:可以按权重建立简单表格:延迟20%、带宽25%、丢包15%、稳定性20%、抗DDoS响应20%。对每项做0-100分归一化后加权求和,得分高者优先。附带建议:将所有原始数据保留以备后续复核。
来源:对比分析多家香港高防服务器旗舰供应商的性能表现