1.
确定测试目标与关键性能指标(KPI)
在开始任何测试前,列出业务必须满足的KPI:吞吐(RPS、并发连接数)、响应时间(P50/P95/P99)、网络延迟(ms)、丢包率、磁盘IOPS/吞吐(MB/s)、CPU/内存利用率、可用性(SLA)、备份/恢复时间(RTO/RPO)和成本上限。示例:目标为支撑1000并发、P95响应<500ms、磁盘写入不超过50ms。
2.
准备测试环境与数据集
搭建与生产尽量相似的环境:选择相同的操作系统、软件版本、数据库配置和磁盘类型(SSD/云盘)。准备代表性数据集(规模、索引、文件大小)并写入测试实例。建议建立三台实例:控制端(测试发起器)、被测端(业务服务)、观测端(采集监控)。确保防火墙规则允许测试流量(如iperf3、HTTP端口)。
3.
网络连通性与延迟测试步骤
步骤:1) 使用 ping -c 50
测量丢包与平均延迟;2) 使用 mtr -r -c 100 定位路由问题;3) 使用 iperf3 -s 在被测端启动服务,控制端运行 iperf3 -c -t 60 -P 10 测试TCP吞吐,注意记录带宽和抖动;4) 对外网测试可用 curl -w '%{time_total}\n' -o /dev/null -s http:///path;判断标准:延迟稳定且满足业务要求、丢包<1%(对实时业务要求更低)。
4.
CPU与内存压力测试(基线与成长测试)
使用 stress-ng 或 sysbench:1) 安装:apt install sysbench 或 apt install stress-ng;2) CPU基线:sysbench --test=cpu --cpu-max-prime=20000 run,记录100%负载下响应;3) 并发增长:使用负载生成器(如wrk、ab)逐步增加并发,每步监测 top、htop、vmstat、sar;4) 判断:CPU持续90%以上且响应下降,说明需更高规格或优化代码/缓存。
5.
磁盘IO与数据库性能测试
使用 fio 和 sysbench mysql(或 pgbench):1) fio --name=randrw --rw=randrw --bs=4k --ioengine=libaio --iodepth=32 --numjobs=4 --runtime=60 --filename=/path/to/testfile 测量I/OPS和延迟;2) 对数据库用 sysbench / pgbench 运行 OLTP 测试(如 10 并发、10000 次事务);3) 测试快照、备份时间:执行备份并统计时间与占用资源;判断:磁盘平均延迟应低于业务阈值(例如写延迟<10ms),IOPS足够峰值需求。
6.
HTTP/应用层并发与压力测试
使用 wrk 或 ApacheBench:1) wrk -t4 -c500 -d60s http:///api/endpoint 模拟并发;2) ab -n 100000 -c 200 http:///path.html 获取请求分布;3) 监测应用日志、错误率、连接数和后端资源(数据库连接耗尽等);4) 渐增法:从低到高并发,每步增加并发直到达到失败阈值,记录P95/P99响应。
7.
高可用性与故障演练(故障转移测试)
步骤:1) 在非高峰时段进行;2) 模拟单点故障:关闭主节点服务或断网,观察负载均衡/备机是否接管;3) 验证会话持久性、数据一致性:进行写入,切换节点后校验数据;4) 测试自动重建时间:删除实例并从模板恢复,记录恢复时间是否满足RTO。
8.
安全性与合规测试(端口、权限与入侵防护)
实际步骤:1) 扫描端口:nmap -sT -p- 确保只开放必要端口;2) SSH安全:确认禁用密码登录、使用密钥、限制登录来源;3) 漏洞扫描:使用 OpenVAS/Nessus 做基础扫描;4) 权限审计:检查进程用户、文件权限及数据库访问控制;5) 日志与告警:配置 syslog/ELK 并触发告警测试。
9.
监控、采集与长期观测准备
部署监控:Prometheus + Grafana 或云监控服务,采集 CPU、内存、磁盘、网络、应用指标和自定义业务指标。步骤:1) 在被测端安装 node_exporter 或 agent;2) 配置 Dashboard 显示 P95/P99、错误率、吞吐等;3) 设置告警阈值并用模拟负载触发,确保告警到达实际运维渠道(邮件/钉钉/短信)。
10.
答:最关键是与业务直接相关的KPI:网络延迟(尤其面向APAC用户)、并发吞吐(最大并发与RPS)、响应时间(P95/P99)、磁盘IOPS与延迟以及高可用故障转移能力。按业务优先级做序,并用代表性流量做压测。
11.
问:如何在不影响现网的情况下模拟生产流量?
答:搭建隔离环境或使用灰度流量:1) 在云内同区域创建测试子网与测试实例,复制生产配置和数据(脱敏);2) 使用流量回放工具(如 tcpreplay、mitmproxy 回放真实请求)或生成脚本(wrk/jmeter)逐步放量;3) 监控生产与测试差异,避免把流量路由到真实用户。
12.
问:测试中发现不达标怎么办,有哪些处置步骤?
答:按优先级处理:1) 定位瓶颈(网络/CPU/IO/DB);2) 优化应用(缓存、连接池、SQL优化)并重测;3) 调整云配置(更大规格、更高IO盘或跨可用区部署);4) 若问题来源于云商(网络丢包、硬件限速),记录证据并与供应商沟通或申请迁移;5) 最后进行成本评估,决定是优化还是换实例规格。
来源:购买前测试建议确保新加坡云服务器购买后满足业务需求