---
source: ../../../core/performance-standards.md
source_version: 1.1.0
translation_version: 1.1.0
last_synced: 2026-03-24
status: current
---

> **语言**: [English](../../../core/performance-standards.md) | 简体中文

# 性能标准

**版本**: 1.1.0
**最后更新**: 2026-01-29
**适用范围**: 所有软件项目
**范围**: universal
**行业标准**: ISO/IEC 25010 Performance Efficiency
**参考**: [sre.google](https://sre.google/books/)

> **详细说明和优化技术请参阅 [性能指南](../../../core/guides/performance-guide.md)**

---

## 目的

本标准定义软件性能工程的综合指南，涵盖性能需求、测试方法和监控实践。

**参考标准**:
- [ISO/IEC 25010:2011](https://www.iso.org/standard/35733.html) - 性能效率
- [Google SRE Book](https://sre.google/books/) - 站点可靠性工程

---

## 性能需求模板

### NFR 格式

```markdown
### NFR-PERF-XXX: [标题]

**类别**: 性能效率 > [时间行为/资源利用/容量]
**优先级**: P1/P2/P3

**需求**:
| 百分位 | 目标 | 最大值 |
|--------|------|--------|
| p50 | Xms | Yms |
| p95 | Xms | Yms |
| p99 | Xms | Yms |

**条件**: [负载、数据量等]
**度量**: [工具、采样、报告]
```

---

## 常见性能目标

| 系统类型 | 响应时间（p95） | 吞吐量 | 可用性 |
|---------|----------------|--------|--------|
| **电商** | < 200ms | 1000+ rps | 99.9% |
| **内部工具** | < 500ms | 100+ rps | 99.5% |
| **批处理** | 不适用 | 10K+ 记录/分钟 | 99% |
| **实时系统** | < 50ms (p99) | 10K+ rps | 99.99% |
| **API 网关** | < 100ms | 5K+ rps | 99.95% |

---

## 性能测试类型

| 测试类型 | 目的 | 工具 |
|---------|------|------|
| **负载测试** | 验证正常负载下的性能 | k6, JMeter, Gatling |
| **压力测试** | 发现系统的断裂点 | k6, Locust |
| **浸泡测试** | 检测内存泄漏和资源耗尽 | k6（长时间运行） |
| **峰值测试** | 验证突发流量处理能力 | k6, JMeter |

---

## 性能监控

### 关键指标

| 指标 | 描述 | 告警阈值 |
|------|------|---------|
| 响应时间（p95） | 95% 请求的响应时间 | > 目标的 1.5× |
| 错误率 | 失败请求的百分比 | > 1% |
| 吞吐量 | 每秒请求数 | < 预期的 80% |
| CPU 使用率 | 处理器利用率 | > 80% |
| 内存使用率 | 内存利用率 | > 85% |

---

## 性能测试执行

### 测试类型定义

| 测试类型 | 目的 | 适用场景 |
|----------|------|----------|
| **Load Test** | 验证系统在预期负载下的行为 | 发布前验证、容量规划 |
| **Stress Test** | 找出系统极限与崩溃行为 | 架构变更、扩展验证 |
| **Soak Test** | 检测内存泄漏或资源耗尽 | 重大发布、资源密集服务 |
| **Spike Test** | 验证突发流量下的响应与恢复 | 营销活动前、促销事件 |

### Baseline 管理

**首次建立 Baseline：**
1. 在稳定版本上执行至少 3 次完整 Load Test
2. 取 p50、p95、p99 的中位数作为 baseline
3. 记录测试环境配置（硬件、数据量、并发数）
4. 将 baseline 与测试脚本一同存入版本控制

**漂移检测阈值：**

| 指标 | 可接受漂移 | 需调查 | 阻断 |
|------|-----------|--------|------|
| p50 Latency | < 5% | 5-15% | > 15% |
| p95 Latency | < 10% | 10-20% | > 20% |
| p99 Latency | < 10% | 10-25% | > 25% |
| Throughput | < 5% 下降 | 5-15% 下降 | > 15% 下降 |
| Error Rate | 无增加 | < 0.1% 增加 | > 0.1% 增加 |

### CI 触发条件

| 触发条件 | Load Test | Stress Test | Soak Test | Spike Test |
|----------|-----------|-------------|-----------|------------|
| 每次 commit | 否 | 否 | 否 | 否 |
| PR 合并至 main | 是（精简） | 否 | 否 | 否 |
| Release tag | 是（完整） | 是 | 否 | 否 |
| 排程（每周） | 是 | 否 | 是 | 否 |

### Performance Budget

| 概念 | 定义 | 示例 |
|------|------|------|
| **性能目标** | 目标性能水平 | p99 < 200ms |
| **性能预算** | 允许的劣化余量 | p99 可劣化至 220ms（10%） |
| **预算消耗** | 累积劣化百分比 | 本季已消耗 6% |
| **预算耗尽** | 触发冻结非必要变更 | 剩余 < 2% 时冻结 |

---

## 相关标准

- [部署标准](deployment-standards.md)
- [安全标准](security-standards.md)
- [测试标准](testing-standards.md)
- [需求工程](requirement-engineering.md) - NFR 文档
- [日志标准](logging-standards.md) - 性能日志

---

## 许可证

本标准采用 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 发布。
