4、关键性能指标(KPI):轮换延迟、吞吐量、错误率、资源消耗(CPU/内存)
性能基准测试的核心在于定义可量化、可对比的指标。对于证书轮换调度器,我们关注四个维度的 KPI:轮换延迟(速度)、吞吐量(容量)、错误率(稳定性)和资源消耗(成本)。这四个指标共同构成调度器性能的完整画像。
4.1 指标定义与测量方法
下表列出了每个 KPI 的精确含义、测量单位以及 PromQL 查询示例,确保测试结果可复现、可对比。
| KPI 类别 | 定义 | 单位 | PromQL 示例(基于模拟指标) |
|---|---|---|---|
| 轮换延迟 | 从调度器发出轮换指令到证书实际生效(新证书被目标服务加载)的时间差。 | 毫秒 (ms) | histogram_quantile(0.99, rate(cert_rotation_duration_seconds_bucket[5m])) |
| 吞吐量 | 单位时间内成功完成的证书轮换操作次数。 | 操作/秒 (ops/s) | rate(cert_rotations_total[1m]) |
| 错误率 | 轮换操作中失败(超时、证书不匹配、服务拒绝等)的比例。 | 百分比 (%) | rate(cert_rotation_errors_total[5m]) / rate(cert_rotations_total[5m]) * 100 |
| 资源消耗 | 调度器进程占用的 CPU 和内存资源。 | CPU 核数 (cores) / 内存 (MB) | process_cpu_seconds_total / process_resident_memory_bytes |
测量要点:轮换延迟应使用 Histogram 类型指标记录,以便计算 P50、P99 等百分位值。吞吐量和错误率必须基于 Counter 类型指标,通过
rate() 函数计算瞬时速率。资源消耗使用 Gauge 类型指标,采样间隔建议 ≤15 秒。
4.2 四维 KPI 关系模型
这四个指标并非孤立存在,它们之间存在典型的权衡关系。下图展示了在基准测试中,随着并发轮换请求数增加,各指标的变化趋势及相互影响。
4.3 各 KPI 的基准测试场景
针对每个 KPI,我们设计独立的压测场景,以便精准定位瓶颈。
- 轮换延迟测试:固定低并发(如 1~5 并发),测量单次轮换的 P50/P99/P999 延迟。用于评估调度器内部处理链路的效率。
- 吞吐量测试:逐步增加并发数(如 10、50、100、200),记录每秒完成的轮换数。用于确定调度器的最大承载能力。
- 错误率测试:在吞吐量测试的同时,持续监控错误率。当错误率超过 1% 时,标记为“过载点”。
- 资源消耗测试:在吞吐量测试的每个阶梯,记录 CPU 和内存的稳态值。用于评估调度器的资源效率。
4.4 基准测试报告模板
每次基准测试应输出结构化的报告,包含以下关键字段。下表是一个示例报告片段:
| 并发数 | 吞吐量 (ops/s) | P99 延迟 (ms) | 错误率 (%) | CPU (cores) | 内存 (MB) | 状态 |
|---|---|---|---|---|---|---|
| 10 | 85 | 45 | 0.0 | 0.3 | 128 | 正常 |
| 50 | 320 | 78 | 0.0 | 1.2 | 256 | 正常 |
| 100 | 510 | 152 | 0.1 | 2.8 | 512 | 临界 |
| 200 | 480 | 890 | 3.5 | 4.5 | 1024 | 过载 |
关键结论:在并发数达到 100 时,吞吐量接近拐点(510 ops/s),P99 延迟仍在可接受范围(152 ms),错误率极低。当并发数翻倍至 200 时,吞吐量反而下降,延迟飙升,错误率突破 3%,系统进入过载状态。因此,该调度器的推荐工作负载上限为 100 并发。
4.5 基于 Prom 指标的持续监控
基准测试并非一次性活动。在调度器上线后,应通过 Prometheus 持续采集上述 KPI,并设置告警规则:
# 告警规则示例:高轮换延迟
- alert: HighRotationLatency
expr: histogram_quantile(0.99, rate(cert_rotation_duration_seconds_bucket[5m])) > 0.5
for: 5m
labels:
severity: warning
annotations:
summary: "证书轮换 P99 延迟超过 500ms"
# 告警规则示例:高错误率
- alert: HighRotationErrorRate
expr: rate(cert_rotation_errors_total[5m]) / rate(cert_rotations_total[5m]) * 100 > 1
for: 2m
labels:
severity: critical
annotations:
summary: "证书轮换错误率超过 1%"
通过将基准测试中确定的阈值(如 P99 延迟 500ms、错误率 1%)直接映射为 Prometheus 告警规则,实现从“测试”到“生产监控”的无缝衔接。