人工智能实战:大模型队列积压怎么排查?从 Redis Queue 到优先级队列、超时丢弃与削峰填谷方案
一、问题场景:接口没报错,但用户一直在排队
大模型服务上线后,很多团队都会加队列。
初衷很简单:
高峰流量来了,不要直接打爆 GPU。架构通常是:
Client ↓ API ↓ Redis Queue ↓ Worker ↓ LLM Service刚开始效果很好:
1. 瞬时流量被削峰 2. GPU 不会被直接打爆 3. 接口可以快速返回任务已提交但运行一段时间后,新的问题来了:
1. 队列越来越长 2. 用户一直等不到结果 3. 短任务被长任务堵住 4. 高优先级用户和普通用户排在一起 5. 旧任务已经没意义了,仍然在执行 6. Worker 增加后 GPU 更慢我之前见过一个事故:
某天业务侧做活动,瞬时请求暴涨。
队列长度从:
20涨到: