Skip to content

性能自动调优

版本: v1.0.0+ | 实时监控 | 规则引擎 | 参数自动调整 | 负载预测

性能自动调优系统持续监控应用性能指标,通过规则引擎自动调整配置参数,确保最优运行状态。

核心特性

  • 📊 6 阶段管道追踪: 从意图识别到完整管道,全链路性能监控与百分位统计(P50/P90/P95/P99)
  • 🔍 瓶颈自动识别: 实时检测性能瓶颈,自动生成优化建议
  • ⚙️ 5 条内置规则: 数据库慢查询、数据库碎片、LLM 高延迟、内存压力、P2P 连接数自动调优
  • ❄️ 冷却期防抖: 每条规则 10 分钟冷却期,避免频繁调优震荡
  • 📈 调优历史记录: 完整记录每次调优动作,支持 500 条历史回溯

系统架构

性能数据源


┌──────────────────────┐
│  PerformanceMonitor   │
│  (6阶段管道追踪)      │
│  ├─ intent_recognition│
│  ├─ task_planning     │
│  ���─ tool_execution    │
│  ├─ rag_retrieval     │
│  ├─ llm_calls         │
│  └─ total_pipeline    │
└──────────┬───────────┘
           │ 指标采集 (每5分钟)

┌──────────────────────┐
│     AutoTuner         │
│  ┌────────────────┐  │
│  │   规则引擎      │  │
│  │ (5内置+自定义)  │  │
│  └───────┬────────┘  │
│          ▼           │
│  ┌────────────────┐  │
│  │ 冷却期检查     │  │
│  └───────┬────────┘  │
│          ▼           │
│  ┌────────────────┐  │
│  │ 调优动作执行   │  │
│  └────────────────┘  │
└──────────────────────┘

系统概述

双层架构

性能系统
├─ PerformanceMonitor (监控层)
│   ├─ 6 阶段 AI 管道性能追踪
│   ├─ 百分位统计 (P50/P90/P95/P99)
│   ├─ 瓶颈识别
│   └─ 优化建议生成
└─ AutoTuner (调优层)
    ├─ 规则引擎(内置 + 自定义规则)
    ├─ 冷却期防抖
    ├─ 调优历史记录
    └─ 自动参数调整

性能监控

追踪的管道阶段

阶段说明警告阈值危险阈值
intent_recognition意图识别可配置可配置
task_planning任务规划可配置可配置
tool_execution工具执行可配置可配置
rag_retrievalRAG 检索可配置可配置
llm_callsLLM 调用可配置可配置
total_pipeline完整管道可配置可配置

统计指标

每个阶段统计:
├─ 平均耗时 (Mean)
├─ P50 (中位数)
├─ P90
├─ P95
├─ P99
├─ 最小值 / 最大值
├─ 调用次数
└─ 异常比例

瓶颈识别

系统自动识别管道中的性能瓶颈并生成优化建议:

瓶颈分析:
  RAG 检索阶段 P95 = 2500ms (警告)
  → 建议: 优化向量索引, 减少检索文档数量
  → 建议: 启用 BM25 预过滤减少候选集

自动调优

内置规则

规则触发条件调优动作冷却期
db-slow-queries数据库查询慢增大 SQLite 缓存,启用 WAL10分钟
db-vacuum数据库碎片多执行 VACUUM10分钟
llm-high-latencyLLM 响应慢缩小上下文窗口10分钟
memory-pressure内存压力大触发 GC,发出警告10分钟
p2p-connectionsP2P 连接数过多降低连接上限10分钟

规则引擎配置

json
{
  "autoTuner": {
    "evaluationIntervalMs": 300000,
    "cooldownMs": 600000,
    "maxHistoryEntries": 500,
    "rules": [
      {
        "name": "custom-rule",
        "condition": "metrics.cpuUsage > 80",
        "action": "reduceParallelism",
        "cooldownMs": 300000
      }
    ]
  }
}

调优流程

1. 定期采集性能指标(默认每 5 分钟)
2. 评估所有规则条件
3. 条件满足 → 检查冷却期
4. 冷却期已过 → 执行调优动作
5. 记录调优历史
6. 发出事件通知

数据库表

performance_metrics

字段类型说明
idINTEGER主键
phaseTEXT管道阶段
durationREAL耗时(毫秒)
metadataTEXT附加信息(JSON)
session_idTEXT会话 ID
created_atDATETIME记录时间

关键文件

文件职责
src/main/monitoring/performance-monitor.js性能监控器(6 阶段追踪)
src/main/performance/auto-tuner.js自动调优引擎(规则引擎)
src/main/performance/performance-monitor.js性能数据采集器

相关文档

基于 MIT 许可发布