1.
准备工作与环境确认
- 确认云服务套餐(CPU、内存、带宽、磁盘类型IOPS、计费模式)和购买地域为香港;
- 在控制台开通必要服务:VPC、子网、弹性IP、负载均衡、云防火墙、快照备份、监控与告警;
- 准备测试账户和白名单IP,确保安全策略允许测试工具来源;
- 准备测试数据(脱敏)与数据库备份点,记录初始数据量与版本号以便对比。
2.
网络与DNS验收步骤
- 验证公网带宽与ISP:用iperf3测带宽(服务器A与B互测),命令示例:iperf3 -s(服务器端),iperf3 -c server_ip -P 10 -t 30;
- DNS解析生效:nslookup/ dig domain @8.8.8.8 和 @本地域名服务器,确认A/AAAA/TTL;
- 测试国内/香港/海外延时:ping/traceroute 到负载均衡IP并记录RTT与跳数,注意大陆访问延迟峰值。
3.
安全与合规验收
- 校验安全组/防火墙规则:只开放必要端口(80、443、22、应用端口),测试端口扫描(nmap -Pn -p 1-65535 server_ip);
- SSL证书部署验证:openssl s_client -connect domain:443 -showcerts,验证证书链、过期时间、域名匹配;
- 启用云防护(DDoS/抗CC)并记录策略,检查日志是否正常记录攻击事件。
4.
基础性能与系统参数调优
- 查看系统负载与资源:top、vmstat 1 5、iostat -xm 1 5、free -m,记录基线值;
- 网络与内核调优示例:sysctl -w net.core.somaxconn=1024; sysctl -w net.ipv4.tcp_tw_reuse=1; 调整文件句柄:ulimit -n 65536;
- 磁盘优化:确认磁盘类型(SSD/HDD),若并发高建议使用本地SSD或性能盘并开启多线程IO调度器(noop或deadline)。
5.
功能验收测试(UAT)步骤
- 编写用例覆盖登录/下单/支付/文件上传/接口幂等等关键路径;逐条验证返回码与数据一致性;
- 自动化回归:使用Selenium/Playwright或API测试(Postman/Newman)跑完整流程,记录错误堆栈与响应时间;
- 数据完整性:在数据库端比对交易流水、日志与快照,确认无数据丢失或重复。
6.
设定性能基线与目标
- 定义关键指标(SLA):P95响应时间、错误率<1%、并发用户数、吞吐TPS;
- 采集基线:在空闲与轻负载时段分别记录响应时间与系统指标作为对比基线;
- 制定测试场景:并发用户、持续时长(如30分钟、2小时浸泡)、突发峰值、并发增长曲线(ramp-up)。
7.
压力测试工具与脚本实操(示例)
- ApacheBench(简单):ab -n 10000 -c 200 http://域名/路径,适合单URL基准;
- wrk(多线程更真实):wrk -t12 -c400 -d60s --latency http://域名/路径;
- k6(脚本化场景):示例脚本(同一p段内,换行表示脚本行):
import http from 'k6/http';
import { sleep, check } from 'k6';
export let options = { vus: 200, duration: '2m' };
export default function() { let res = http.get('https://域名/'); check(res,{ 'status 200': r => r.status==200 }); sleep(1); }
- JMeter:使用非GUI模式 jmeter -n -t test.jmx -l result.jtl 并用Listeners或JMeter-Plugins分析。
8.
压力测试执行流程
- 预热:先用小并发(ramp-up)逐步升至目标并发,观测是否有故障;
- 并发测试:按照场景执行,记录各节点CPU、内存、磁盘IO、网络、应用响应、日志;
- 峰值/突发测试:快速提升并发至数倍峰值,验证限流/熔断/降级机制;
- 浸泡测试:持续长时间(2-6小时)中高负载,观察内存泄漏、连接泄露与性能衰退。
9.
监控与指标采集指导
- 主机级监控:top, vmstat, iostat, sar, dstat,使用脚本每分钟采样并保存;
- 网络监控:ss -s, netstat -anp | grep TIME_WAIT, tcpdump -i eth0 -w dump.pcap(抓包分析);
- 应用级监控:应用日志、慢查询日志、APM(如SkyWalking、New Relic)、负载均衡健康检查;
- 云监控:利用云厂商监控控制台抓取QPS、带宽、磁盘IOPS与告警事件。
10.
分析瓶颈与调优策略
- CPU高:查看线程争用、热点函数,优化代码或增加实例;
- IO高/延迟:考虑更换高性能盘、优化查询、加缓存、分库分表;
- 网络吞吐限制:申请提升带宽或使用CDN/边缘节点,检查MTU、TCP窗口设置;
- 连接池与DB:调大连接池或限制并发策略,避免DB连接耗尽。
11.
高可用与故障演练验收
- 验证实例宕机恢复:手动下线一台后观察LB流量切换与新实例接入;
- 数据库主从/读写分离验证:切主或延迟复制,确认应用能自动降级或失败转移;
- 灾备与跨区测试:若有跨区备份或异地DR,模拟主区不可用并验证切换时延与数据一致性。
12.
测试结束后的清理与回滚步骤
- 停止所有压力测试工具并确认无残留负载;
- 恢复内核参数与临时配置(如ulimit、sysctl);
- 清理测试数据、释放测试使用的临时资源(弹性IP、额外实例),并保存测试报告与监控快照作为上线依据。
13.
常见问题与注意事项
- 香港机房对大陆访问延迟受运营商影响,测试时应从目标用户线路发起压测或使用多线压测节点;
- 带宽计费与峰值限制:确认带宽是否按峰值计费,避免压测造成高额账单;
- 法律合规与测试流量:避免产生违法内容或对外部第三方接口造成影响,必要时先与ISP/厂商沟通。
14.
问:如何判断压力测试是否通过?
答:判断通过看是否满足事先定义的SLA指标,例如P95响应时间、错误率低于阈值、吞吐达到目标并且在同时触发自动扩容时系统稳定;同时无异常日志、无资源持续递增(如内存泄漏)并且故障演练通过。
15.
问:如果发现瓶颈,应如何定位优先级?
答:先看影响用户感知的指标(响应时间、错误率),若响应慢查CPU->锁/热点代码、若IO高查DB/磁盘、若网络高查带宽与连接数。优先修复对用户影响最大的瓶颈,同时在修复后再回测验证。
16.
问:在香港云服务器做压测要注意哪些本地特性?
答:注意香港与大陆网络链路的不稳定性与运营商差异、带宽计费策略、云厂商的跨境流量限制与云防护配置。压测前与厂商沟通大流量测试窗口,配置白名单并监控账单以避免超额费用。
来源:业务上线前云服务器香港购买的验收测试与压力测试要点