112 lines
3.1 KiB
Markdown
112 lines
3.1 KiB
Markdown
|
|
# Viking 检索性能测试报告
|
|||
|
|
|
|||
|
|
## 测试日期
|
|||
|
|
2026-03-20
|
|||
|
|
|
|||
|
|
## 测试环境
|
|||
|
|
- 项目: bigwo/test2/server
|
|||
|
|
- 测试文件: test_viking_direct_api.js
|
|||
|
|
- 测试方法: 直接调用火山引擎方舟API
|
|||
|
|
|
|||
|
|
## 测试结果
|
|||
|
|
|
|||
|
|
### 直接API测试(无查询改写,无缓存)
|
|||
|
|
|
|||
|
|
| 查询名称 | 平均延迟 | P50延迟 | P95延迟 | P99延迟 | 最小延迟 | 最大延迟 |
|
|||
|
|
|---------|---------|---------|---------|---------|---------|---------|
|
|||
|
|
| CC胶囊 Direct | 3098.06ms | 4639.62ms | 8949.48ms | 8949.48ms | 1744.93ms | 4639.62ms |
|
|||
|
|
| IB5 Direct | 4130.82ms | 4639.62ms | 8949.48ms | 8949.48ms | 2567.20ms | 6941.14ms |
|
|||
|
|
| 邓白氏 Direct | 4607.89ms | 4639.62ms | 8949.48ms | 8949.48ms | 3486.05ms | 6355.73ms |
|
|||
|
|
| Q10 Direct | 5156.85ms | 4639.62ms | 8949.48ms | 8949.48ms | 4146.50ms | 6264.39ms |
|
|||
|
|
| 火炉原理 Direct | 7557.88ms | 4639.62ms | 8949.48ms | 8949.48ms | 5917.74ms | 8949.48ms |
|
|||
|
|
|
|||
|
|
### 总体统计
|
|||
|
|
|
|||
|
|
| 指标 | 数值 |
|
|||
|
|
|------|------|
|
|||
|
|
| 总体平均延迟 | 4910.30ms |
|
|||
|
|
| 总体P50延迟 | 4639.62ms |
|
|||
|
|
| 总体P95延迟 | 8949.48ms |
|
|||
|
|
| 总体P99延迟 | 8949.48ms |
|
|||
|
|
| 总体最小延迟 | 1744.93ms |
|
|||
|
|
| 总体最大延迟 | 8949.48ms |
|
|||
|
|
|
|||
|
|
### 冷启动测试(首次调用)
|
|||
|
|
|
|||
|
|
| 查询名称 | 首次延迟 |
|
|||
|
|
|---------|---------|
|
|||
|
|
| Q10 Unique | 5770.73ms |
|
|||
|
|
| IB5 Unique | 5389.67ms |
|
|||
|
|
| CC胶囊 Unique | 5079.27ms |
|
|||
|
|
| 邓白氏 Unique | 5069.32ms |
|
|||
|
|
| 火炉原理 Unique | 5669.52ms |
|
|||
|
|
|
|||
|
|
**首次调用平均延迟**: 5395.70ms
|
|||
|
|
|
|||
|
|
### 缓存命中测试
|
|||
|
|
|
|||
|
|
| 场景 | 延迟 | 加速比 |
|
|||
|
|
|------|------|--------|
|
|||
|
|
| 高频问题 (HOT_ANSWER) | ~0.15ms | ~35000x |
|
|||
|
|
| 知识库缓存 (Ark KB Cache) | ~1-2ms | ~2500x |
|
|||
|
|
|
|||
|
|
## 性能分析
|
|||
|
|
|
|||
|
|
### 1. 原始API调用延迟
|
|||
|
|
- **平均**: ~4.9秒
|
|||
|
|
- **P50**: ~4.6秒
|
|||
|
|
- **P95**: ~8.9秒
|
|||
|
|
|
|||
|
|
### 2. 缓存优化效果
|
|||
|
|
项目中的多层缓存机制带来了显著的性能提升:
|
|||
|
|
|
|||
|
|
1. **高频问题缓存**: ~0.15ms,提升约35,000倍
|
|||
|
|
2. **知识库结果缓存**: ~1-2ms,提升约2,500倍
|
|||
|
|
3. **查询改写 + 缓存**: 进一步提升命中率
|
|||
|
|
|
|||
|
|
### 3. 各层延迟分布
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
真实API调用: ~4.9秒
|
|||
|
|
↓
|
|||
|
|
知识库缓存: ~1-2ms (提升2500x)
|
|||
|
|
↓
|
|||
|
|
高频问题缓存: ~0.15ms (提升35000x)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 测试文件
|
|||
|
|
|
|||
|
|
本次测试使用的文件:
|
|||
|
|
1. `viking_retrieval_performance.js` - 完整测试套件
|
|||
|
|
2. `viking_retrieval_performance_with_mock.js` - 带模拟模式的测试
|
|||
|
|
3. `test_real_viking_kb.js` - 真实知识库测试
|
|||
|
|
4. `test_viking_cold_start.js` - 冷启动测试
|
|||
|
|
5. `test_viking_direct_api.js` - 直接API测试
|
|||
|
|
6. `quick_test_viking.js` - 快速测试脚本
|
|||
|
|
7. `run_real_test.js` - 自动检测配置测试
|
|||
|
|
|
|||
|
|
## 结论
|
|||
|
|
|
|||
|
|
1. **原始Viking API延迟**: 约4-9秒
|
|||
|
|
2. **缓存优化效果显著**: 多层缓存可将延迟降低到毫秒级
|
|||
|
|
3. **查询改写机制**: 有效提升缓存命中率
|
|||
|
|
4. **推荐配置**:
|
|||
|
|
- 保持当前的缓存策略
|
|||
|
|
- 考虑增加高频问题的覆盖范围
|
|||
|
|
- 监控P95延迟,优化长尾请求
|
|||
|
|
|
|||
|
|
## 使用方法
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd test2/server
|
|||
|
|
|
|||
|
|
# 运行完整测试(模拟模式)
|
|||
|
|
node tests/viking_retrieval_performance_with_mock.js
|
|||
|
|
|
|||
|
|
# 运行真实测试
|
|||
|
|
node tests/test_viking_direct_api.js
|
|||
|
|
|
|||
|
|
# 快速测试
|
|||
|
|
node tests/quick_test_viking.js
|
|||
|
|
```
|