Files
dify-app/docs/performance-baseline.md
T

129 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 性能基线指标
> 西安云美电子科技有限公司 - 企业知识库
> 版本:v1.0 | 创建时间:2026-06-06
---
## 1. 测试环境
| 项目 | 规格 |
|------|------|
| 服务器 | 8 核 CPU / 16 GB RAM / 100 GB SSD |
| 部署方式 | Docker Compose |
| Dify 版本 | 最新社区版(v1.x) |
| 模型 | DeepSeek-Chat |
| 知识库文档数 | 100-500 篇(初期) |
| 知识库分段方式 | 自动分段,500 tokens/段 |
---
## 2. 响应时间基线
| 场景 | 指标 | 目标值 | 可接受值 |
|------|------|:------:|:--------:|
| 首次响应(首 token) | TTFB | ≤ 3s | ≤ 5s |
| 简单问题完整回答 | 总耗时 | ≤ 8s | ≤ 15s |
| 复杂问题(跨分类检索) | 总耗时 | ≤ 12s | ≤ 20s |
| 多轮对话第 N 轮(N≤10) | 总耗时 | ≤ 10s | ≤ 15s |
| 流式输出首字延迟 | TTFB | ≤ 2s | ≤ 4s |
| 知识库索引构建(单文档) | 索引耗时 | ≤ 10s | ≤ 30s |
| 知识库索引构建(批量100篇) | 索引耗时 | ≤ 5min | ≤ 10min |
---
## 3. 准确率基线
| 场景 | 指标 | 目标值 | 可接受值 |
|------|------|:------:|:--------:|
| P0 核心问题回答准确率 | Top-1 准确率 | ≥ 95% | ≥ 85% |
| 制度流程类问题 | 回答准确率 | ≥ 98% | ≥ 90% |
| 产品技术类问题 | 回答准确率 | ≥ 95% | ≥ 85% |
| FAQ 类问题 | 回答准确率 | ≥ 98% | ≥ 90% |
| 不相关问题拒绝率 | 拒绝准确率 | ≥ 95% | ≥ 85% |
| 来源标注准确率 | 标注准确率 | ≥ 90% | ≥ 80% |
| 多轮对话上下文保持率 | 一致性 | ≥ 90% | ≥ 80% |
---
## 4. 并发与容量基线
| 场景 | 指标 | 目标值 | 可接受值 |
|------|------|:------:|:--------:|
| 并发用户数 | 最大并发 | ≥ 20 | ≥ 10 |
| 并发响应时间(10用户) | P95 延迟 | ≤ 10s | ≤ 20s |
| 并发响应时间(20用户) | P95 延迟 | ≤ 15s | ≤ 30s |
| 单知识库文档上限 | 最大文档数 | 1000 篇 | 500 篇 |
| 单知识库分段上限 | 最大分段数 | 50000 段 | 20000 段 |
| 单次检索返回 | Top-K 相关文档 | 3-5 段 | 3-10 段 |
---
## 5. 可用性基线
| 场景 | 指标 | 目标值 |
|------|------|:------:|
| 服务可用性 | Uptime | ≥ 99% |
| 计划外停机 | 月均 | ≤ 1 次 |
| 故障恢复时间 | MTTR | ≤ 30 min |
| 数据库备份频率 | RPO | 每日 |
| 数据恢复测试 | 频率 | 季度 |
---
## 6. 模型资源消耗基线
| 场景 | 指标 | 估算值 |
|------|------|--------|
| 单次问答(简单) | DeepSeek Token 消耗 | ~500-1000 tokens |
| 单次问答(复杂) | DeepSeek Token 消耗 | ~1500-3000 tokens |
| 每日 50 次问答 | 日 Token 消耗 | ~50K-100K tokens |
| 每月预估 | 月 Token 消耗 | ~1.5M-3M tokens |
---
## 7. 基线测量方法
### 7.1 响应时间测量
```bash
# 使用 curl 测量 TTFB
curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
-X POST http://<dify-host>/v1/chat-messages \
-H "Authorization: Bearer <api-key>" \
-H "Content-Type: application/json" \
-d '{"query":"差旅报销标准是什么?","inputs":{},"response_mode":"blocking","user":"test-user"}'
```
### 7.2 准确率测量
使用 `tests/test-cases.md` 中的 37 个测试用例,逐条执行并记录结果。
计算公式:
- Top-1 准确率 = 正确回答数 / 总测试问题数 × 100%
- 拒绝准确率 = 正确拒绝无关问题数 / 总无关问题数 × 100%
### 7.3 并发测量
```bash
# 使用 ab(Apache Benchmark)模拟并发
ab -n 20 -c 10 -p request.json -T application/json \
-H "Authorization: Bearer <api-key>" \
http://<dify-host>/v1/chat-messages
```
---
## 8. 性能调优建议
| 问题方向 | 调优手段 |
|----------|---------|
| 响应慢 | 优化知识库分段大小、调整 Top-K 参数、升级服务器 |
| 准确率低 | 优化分段策略、增加元数据标签、调整检索权重 |
| 并发不足 | 扩展 Worker 实例数、增加 Redis 内存、升级 CPU |
| Token 消耗高 | 优化 System Prompt 长度、调整上下文窗口、启用缓存 |
---
_最后更新: 2026-06-06_