跳转至

性能优化指南

本文档描述 Project Chameleon 的性能优化策略,包括基准指标、缓存策略与数据库优化。

性能基准

关键指标

指标 目标值 说明
API 响应延迟 P95 ≤ 500ms 不含 LLM 生成时间
RAG 检索延迟 P95 ≤ 200ms 向量检索 + 上下文构建
首 Token 延迟 ≤ 1s 流式输出首字节
吞吐量 ≥ 100 QPS 单实例并发能力

监控端点

通过 /metrics 端点暴露 Prometheus 格式指标:

  • http_request_duration_seconds
  • rag_retrieval_latency_seconds
  • llm_first_token_latency_seconds

多级缓存策略

缓存层级

层级 存储 TTL 用途
L1 进程内存 60s 热点查询结果
L2 Redis 5min 跨实例共享
L3 磁盘 1h 大体积数据

缓存键设计

# RAG 查询缓存
cache_key = f"rag:{hash(query)}:{top_k}"

# 嵌入向量缓存
cache_key = f"embed:{hash(text)}"

数据库优化

PostgreSQL 索引

-- 会话查询优化
CREATE INDEX idx_sessions_updated ON sessions(updated_at DESC);

-- 消息查询优化
CREATE INDEX idx_messages_session ON messages(session_id, created_at);

连接池配置

# SQLAlchemy 连接池
engine = create_engine(
    DATABASE_URL,
    pool_size=10,
    max_overflow=20,
    pool_timeout=30
)

异步与并发

异步 I/O

所有外部调用使用 async/await:

async def process_request(query: str) -> Response:
    # 并行执行独立操作
    rag_task = asyncio.create_task(rag_search(query))
    context_task = asyncio.create_task(load_context())

    results, context = await asyncio.gather(rag_task, context_task)
    return generate_response(results, context)

相关文档