[Bug]: Significant performance regression after upgrading from 1.80.5 to 1.81.x (UI + API slowness)

用户在使用 LiteLLM Proxy 时,将版本从 v1.80.5 升级到 v1.81.x(包括 v1.81.0 和 v1.81.3)。环境中包含 50 个内部用户、200 个模型,连接至 PostgreSQL 数据库,每秒约 10 个请求(10 RPS),并开启了回调至 Langfuse OTE

[Bug]: Significant performance regression after upgrading from 1.80.5 to 1.81.x (UI + API slowness)

[Bug]: Significant performance regression after upgrading from 1.80.5 to 1.81.x (UI + API slowness)

快速结论:该问题发生在将 LiteLLM Proxy 从 v1.80.5 升级到 v1.81.0 或 v1.81.3 后,导致整个 UI 和后端 API(如登录、模型加载、虚拟密钥加载、MCP 工具、内部用户列表等)显著变慢,部分管理 API 响应时间从约 300ms 恶化到 30 秒。优先排查是否为 1.81.x 版本中引入的性能回归,可尝试降回 v1.80.5 并注意数据库兼容问题。

问题场景

用户在使用 LiteLLM Proxy 时,将版本从 v1.80.5 升级到 v1.81.x(包括 v1.81.0 和 v1.81.3)。环境中包含 50 个内部用户、200 个模型,连接至 PostgreSQL 数据库,每秒约 10 个请求(10 RPS),并开启了回调至 Langfuse OTEL 以及 shuffle routing。升级后,UI 和管理 API 端点(如 /user/list)出现全面性能下降,但容器 CPU/内存以及数据库利用率未见明显异常。

部分用户反馈在调用 /v1/embeddings 端点进行数据索引时,CPU 飙升至 100% 并影响其他请求(包括 /v1/completions 和 UI 操作)。另有用户报告降级回 v1.80.5 后遇到数据模型不兼容问题,导致花费日志写入失败。

报错原文

DB read/write call failed: Error occurred during query execution: ConnectorError(ConnectorError {
  user_facing_error: None,
  kind: QueryError(PostgresError {
    code: "42P10",
    message: "there is no unique or exclusion constraint matching the ON CONFLICT specification",
    severity: "ERROR",
    detail: None,
    column: None,
    hint: None
  }),
  transient: false
})[Non-Blocking]
LiteLLM Prisma Client Exception - update spend logs: Error occurred during query execution: ConnectorError(ConnectorError {
  user_facing_error: None,
  kind: QueryError(PostgresError {
    code: "42P10",
    message: "there is no unique or exclusion constraint matching the ON CONFLICT specification",
    severity: "ERROR",
    detail: None,
    column: None,
    hint: None
  }),
  transient: false
})
Traceback (most recent call last):
  File "/usr/lib/python3.13/site-packages/litellm/proxy/db/db_spend_update_writer.py", line 1014, in update_daily_spend
    async with prisma_client.db.batch() as batcher:
  File "/usr/lib/python3.13/site-packages/prisma/client.py", line 874, in aexit
    await self.commit()
  File "/usr/lib/python3.13/site-packages/prisma/client.py", line 850, in commit
    await self.__client._engine.query( ...... )
  File "/usr/lib/python3.13/site-packages/prisma/engine/query.py", line 244, in query
    return await self.r

(注:以上错误是在降级回 v1.80.5 后出现的数据库不兼容问题,非 v1.81.x 本身报错,但相关于版本切换。)

原因分析

可能原因:

  • LiteLLM v1.81.x 中引入的性能回归,尤其是涉及数据库查询或回调处理的代码变更,导致管理 API 和部分处理(如 embeddings)响应变慢。Issue 讨论中用户确认其他版本(v1.80.5)正常,且容器和数据库资源未出现瓶颈。
  • 降级到 v1.80.5 时,由于数据库 schema 或数据模型变更,导致 Prisma 在执行 ON CONFLICT 更新花费日志时因缺少唯一约束而失败。这说明 v1.81.x 可能修改了表结构,降级后不兼容。
  • 回调至 Langfuse OTEL 可能加剧了性能问题,但用户报告即使禁用后某些场景下性能仍未完全恢复,因此可能不是根本原因。

环境排查

  • LiteLLM 版本:确认当前版本(v1.80.5、v1.81.0 或 v1.81.3)。
  • 数据库:PostgreSQL 版本及 Prisma schema 是否匹配当前 LiteLLM 版本。
  • 回调配置:是否开启了 Langfuse OTEL 或其他回调组件。
  • 路由策略:是否使用了 shuffle routing 或其他复杂路由。
  • 系统资源:容器 CPU 和内存使用率、数据库连接数和查询延迟。
  • 依赖版本:Python 版本、Prisma 客户端版本等。

解决步骤

  1. 可优先尝试:降级回 v1.80.5。 这是 Issue 中用户验证有效的临时方案。注意降级前备份数据库,或准备重建表结构以兼容旧版本。
  2. 如果降级后遇到数据库约束错误(如 42P10),可能需要手动修改数据库,为目标表(如 LiteLLM_SpendLog)添加相应的唯一约束,或重建表。
  3. 尝试暂时禁用回调(如 Langfuse OTEL),测试性能是否有改善。如果禁用后恢复,可将回调作为高优排查点。
  4. 如果必须使用 v1.81.x,建议关注官方后续修复版本(如 v1.81.4+),并在升级前先在测试环境验证。
  5. 检查 LiteLLM 的日志和 Prisma 查询日志,确认是否有异常慢查询或数据库死锁。

验证方法

在相同环境(相同用户量、模型数、请求负载)下,用 v1.80.5 和 v1.81.x 分别测试以下场景,对比 API 响应时间:

  • 登录流程(/auth/login 或类似端点)。
  • 加载模型列表(/models 或管理 UI)。
  • 加载虚拟密钥列表。
  • 内部用户列表 API(如 /user/list)。
  • /v1/embeddings 端点在高负载下的响应时间及 CPU 利用率。

若降级到 v1.80.5 后性能恢复正常,且数据写入无错误,则确认问题已解决。

参考来源

BerriAI/litellm #19921

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 10262

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注