用 AI 写压测报告与容量结论

压测报告写得像流水账,通常是因为只记录了「压了什么、跑了多少」,没写「据此能部署几台」。一份能进评审的压测报告只有三个硬指标:环境与参数可复现、结论有证据、容量建议可执行且带不确定性说明。AI 适合做初稿生成与格式校验,但容量数字必须由你亲手核对。

报告骨架

一、结论摘要        :三句话内说清安全容量、拐点位置、是否需要优化
二、环境           :服务版本与启动参数、实例规格、中间件版本、压测机规格与拓扑
三、场景与参数     :压测模型(定速/定并发)、档位、单档时长、预热时长、
                     连接复用方式、超时与重试配置、数据量与数据分布
四、结果数据       :按档位的 QPS、P50/P90/P99、错误率、资源水位表
五、瓶颈定位       :指标、日志、剖析三条证据链的结论
六、容量结论       :单实例安全容量、满足峰值所需实例数、冗余比例
七、风险与建议     :失效条件、未验证场景、优化项与预期收益
八、附录           :原始输出文件、监控面板链接、采集命令与时间点

八节里最容易被省掉的是第二节和第八节,而这两节正是别人复现你结论的唯一入口。缺了启动参数与数据量,「单实例 1200 QPS」这句话没有意义。

结果数据表长这样

档位(目标 QPS)实测 QPSP50P90P99错误率服务端 CPUGC CPU压测机 CPU
5005004ms8ms12ms0%22%1%18%
100010005ms11ms15ms0%41%1%30%
150015006ms14ms22ms0%58%1%42%
200019987ms20ms38ms0%76%2%55%
3000289012ms90ms260ms1.2%88%8%55%

压测机 CPU 一列不是装饰:它一旦接近饱和,后面所有结论都要作废。

让 AI 从原始数据生成初稿的提示词

你是性能测试负责人。下面是一次压测的原始数据与采集说明,请生成压测报告初稿。

【环境】Go 1.22,8 核 16G,GOMAXPROCS=8;MySQL 8.0 单机 8 核 32G;
        Redis 6 单节点;压测机 4 核 8G 同机房;数据量:订单 800 万行,用户 50 万。
【参数】wrk2 定速,连接 64,超时 2s,无重试,预热 60s,每档 300s。
【数据】<粘贴上表>
【原始输出】<粘贴 wrk2 输出、错误码分布、pprof top 输出>
【要求】
1. 严格区分「观测事实」与「推断」两类表述,推断必须标注依据的数据行;
2. 结果表保留所有档位,异常档位单独说明;
3. 容量结论必须写成:单实例安全容量 X QPS(对应 P99 Y ms)、满足峰值 Z QPS 需 N 台、
   按 30% 冗余取 M 台,并给出冗余计算过程;
4. 不确定性单列一节:列出本报告未覆盖的场景与会让结论失效的条件;
5. 不许出现我没提供的数字,缺数据的地方写「未采集」。

第 3、4 条是这个提示词的核心。多数 AI 初稿的问题不是格式,而是把「峰值吞吐 2890 QPS」直接写成了「容量 2890 QPS」,这跳过了「在哪个延迟约束下可接受」这一关键前提。

容量结论怎么算

容量结论的模板只有一句,但每个数字都要能追溯:

在 P99 ≤ 100ms 的约束下,单实例安全容量为 1200 QPS;
业务峰值为 6000 QPS,需 6000 / 1200 = 5 台;
按 30% 冗余取整为 7 台,可支撑 7 × 1200 × 70% ≈ 5880 QPS,
或在 7 台全量投入时支撑 8400 QPS,满足峰值并留出 30% 冗余。
步骤本例取值依据
确定延迟约束P99 ≤ 100ms由业务方给出的验收标准,不是压测里最漂亮的数字
找拐点2000~3000 QPS 之间3000 档 P99 260ms、错误率 1.2%
折算出安全水位1200 QPS拐点前档位下浮 40%,给抖动留空间
算实例数5 台峰值 6000 / 安全容量 1200
加冗余7 台5 × 1.3 向上取整
校验可用性允许 2 台故障7 台中损失 2 台仍有 6000 QPS 容量

注意最漂亮的那个数字(2890 QPS)通常不能当容量:它伴随 1.2% 错误率和 260ms 的 P99。安全容量必须落在拐点左侧,并且明确写出对应的延迟与错误率约束。

不确定性怎么写

不确定项会怎样影响结论报告里怎么写
数据量增长索引与缓存效率下降,安全容量随之降低说明当前数据量,给出数据量翻倍后需重压的条件
流量模型差异生产读写比、参数分布与压测不同列出压测的读写比与参数分布,注明未覆盖的接口
缓存命中率变化命中率下降会成倍放大数据库压力给出压测期间命中率,说明冷启动或失效时的风险
下游容量本服务扩容可能把压力转移给下游附下游在压测期间的自身水位
单机测试的局限未验证多实例共享中间件时的竞争明确本轮为单实例验证,多实例需补测

不确定性的写法有讲究:写「受多种因素影响,结论仅供参考」等于没写;写「若订单表数据量超过 2000 万行,需重新压测确认安全容量」才是可执行的条件。

报告评审前的自检

  • 每个结论都能指到附录里的原始文件与采集时间。
  • 环境与参数完整到别人可以照抄复现,包括启动参数、连接数与超时配置。
  • 错误率非零的档位是否被当成容量依据,如果是,必须注明。
  • 容量数字与延迟约束成对出现,没有孤立出现的 QPS。
  • 优化建议分两栏:直接扩容能解决什么、改代码能解决什么,避免用扩容掩盖代码缺陷。
  • 附录包含至少一份完整原始输出,而不是只有摘要表格。
  • 让 AI 做一遍反向校验:把报告交给它,要求它列出「哪些结论缺乏数据支撑」,再把缺的数据补齐。

小结:报告用固定的八节骨架,环境与附录必须完整到可复现;让 AI 生成初稿时明确要求区分观测与推断、给出容量计算过程与不确定性;容量结论按「延迟约束 → 拐点 → 安全水位 → 实例数 → 冗余」五步算,最漂亮的峰值数字不能当容量,最后用自检清单和 AI 反查把缺数据的结论补上。

笔记加载中…