1.
测试前准备:沟通与风险控制
请先与3香港(或托管方)沟通测试计划,明确时间窗并申请白名单/放行或授权,否则高防系统会将真实测试误判为攻击并触发封禁。准备好测试用域名/IP、业务API清单与SLA目标(例如p95<500ms、错误率<0.1%)。制定回退方案、监测联系人和中断流程。小分段:1) 通知运营与安全;2) 申请IP/流量白名单;3) 设定测试时间与沟通窗口。
2.
搭建测试环境:分布式压测节点
不要从单点产生全部流量,建议在多地区部署压测机(例如香港、内地或云上多个可用区)。常用工具:wrk、k6、JMeter、locust、ab、siege。准备脚本:模拟真实链接保持(Keep-Alive)、Cookie、登录/会话和随机请求路径。小分段:1) 建立至少3-5台压力机;2) 确保版本一致并同步时间;3) 部署测试脚本与证书。
3.
负载场景设计:渐进、稳态、突发、持久
设计多类场景:基线(低流量)、渐进Ramp-up(逐步提升并发),稳态(维持目标并发10-30分钟),突发(短时100%-200%峰值),持久Soak测试(1-4小时)。每个场景记录开始/结束时间并标注脚本参数。小分段:1) 确定并发、请求率、并发连接数;2) 设置虚拟用户行为与think-time;3) 安排冷却与观察期。
4.
常用工具与命令示例
给出可复制命令:wrk示例:wrk -t12 -c800 -d600s --latency https://your-domain/path;k6示例(js脚本):k6 run --vus 500 --duration 10m script.js;ab示例:ab -n100000 -c500 https://your-domain/。JMeter建议使用分布式模式并使用非GUI运行。小分段:1) 本地单机工具用于小规模验证;2) 分布式工具用于真实高并发;3) 所有工具开启详细日志与延迟统计。
5.
系统与网络调优(被测端)
为避免服务器端成为瓶颈,检查并调整:ulimit -n 200000;sysctl 设置:net.core.somaxconn=65535、net.ipv4.tcp_max_syn_backlog=65535、net.ipv4.ip_local_port_range=1024 65535、net.ipv4.tcp_tw_reuse=1。Web服务(Nginx/HAProxy)调整 worker_connections、keepalive_timeout、open_file_cache 等。小分段:1) 修改内核参数并持久化;2) 调整服务配置重启验证;3) 记录每次改动并重复测试。
6.
监控指标与采集工具
测试期间必须同步采集指标:吞吐(RPS)、并发连接数、响应时延(p50/p95/p99)、错误率、CPU/内存、磁盘IO、网络带宽、conntrack表、TCP重传和丢包。工具推荐:Prometheus + node_exporter + cAdvisor + Grafana、netdata、iftop、sar、iotop、tcpdump。小分段:1) 配置采集与可视面板;2) 设置报警阈值;3) 同步压测时间戳保证对齐。
7.
测试执行:按步骤运行并记录
执行顺序:先做小流量验证(Smoke test),确认功能和日志;再跑Ramp-up直到目标并发;维持稳态并观察指标;执行突发与长时运行。每步记录起止时间、压测脚本、压力机IP与版本。小分段:1) 逐步放量避免一次性打满;2) 实时监控WAF/防护响应;3) 若触发防护,立即停止并联系运营。
8.
如何判断高防影响(高防策略识别)
观察异常模式:大量403/406或自定义拦截响应码、延迟突增而非带宽饱和、连接重置或请求被缓冲/丢弃。可通过对比非高防IP(若允许)与高防IP流量差异、检查WAF日志、与3HK防护团队日志交叉验证。小分段:1) 检查防护日志;2) 对比不同来源的请求响应;3) 记录触发规则与时间点。
9.
结果分析:关键数据解读
重点看错误率(HTTP 5xx/4xx)、延迟分布(p95/p99)、吞吐曲线与资源利用。当p99持续上升且错误率增加,说明不稳定。判断是否为网络层(丢包、SYN丢弃)或应用层(慢SQL、线程池耗尽)。小分段:1) 绘制时序图;2) 关联资源峰值与性能下降节点;3) 导出日志追踪请求链路。
10.
性能瓶颈定位方法
逐层排查:网络层(tcpdump分析、丢包率、带宽瓶颈)、内核(conntrack、文件句柄),应用层(线程/进程、数据库慢查询)、上游接口(外部依赖)。采用剥离法:禁用缓存/外部依赖仅压测静态页面,判断瓶颈位置。小分段:1) 静态与动态对比;2) 打开详细应用日志追踪慢请求;3) 使用APM(如Jaeger/Zipkin)追踪调用链。
11.
稳定性判定与SLA验收标准
给出示例标准:持续稳态期间错误率<0.1%、p95延迟小于SLA、CPU/IO不超过80%、网络丢包<0.1%。另外验证系统在短时突增后能在预期恢复时间内回稳(例如1-3分钟)。小分段:1) 定义通过/失败阈值;2) 编写验收报告;3) 列出需优化项与优先级。
12.
常见应对与优化建议
若发现瓶颈,可采取:增加实例/增加带宽、调整防护配置、优化缓存策略(CDN、Redis)、数据库读写分离、代码优化与连接池调整。针对高防误触,跟供应商协商增加测试白名单或放宽阈值。小分段:1) 迅速缓解措施(扩容、降级);2) 中长期优化(架构改造);3) 记录变更并复测。
13.
问题:在不触发3香港高防的前提下,如何做到高并发真实性测试? 回答:
可以通过提前沟通申请测试白名单或在高防控制台设置测试策略(放行指定源IP/路径),并使用多节点分布式压测生成真实会话(Keep-Alive/随机UA/带Cookie)。先做小流量探测并与防护团队同步时间窗口,保证防护设备不会误判为攻击。
14.
问题:哪些指标最能代表“稳定性”,出现哪些异常立即判定不稳定? 回答:
关键指标为错误率、p95/p99延迟、CPU/内存/网络利用率与丢包率。若错误率显著上升(>0.1%到1%)、p99突增或持续高于SLA、或者出现大量TCP重传/连接超时,则可判定不稳定并需中止测试定位原因。
15.
问题:测试结束后我如何撰写可执行的优化报告? 回答:
报告应包含测试场景/时间/脚本、关键原始数据曲线、异常时间点与对应日志、瓶颈层级分析、优先修复项(短中长期)与复测计划,并附上配置变更清单和回退步骤,便于运维与供应商协同跟进。
来源:如何通过性能测试判断3香港高防服务器在高并发时的稳定性