A
Member
多个业务共用一个推理集群,最怕的不是算力不够,而是某个租户突发流量把显存占满,其他租户跟着一起超时。多租户隔离要从显存、调度和配额三处同时下手,只做一处迟早会漏。
第一,显存配额:按租户划分 KV Cache 上限,不要让单个租户无限制增长;配额要按业务峰值留余量,同时设硬上限,超配额的请求排队而不是直接抢占别人的显存。第二,优先级调度:核心业务走高优先级队列,离线批量任务走低优先级,低优先级任务在高峰期要能被抢占和恢复,而不是一直占着卡。第三,请求级隔离:不同租户的请求不要混在同一个批处理里无差别调度,批处理要按租户配额切分,否则一个租户的长请求会拖慢整批的 TPOT。第四,可观测性:按租户统计 TTFT、TPOT、排队时间和显存占用,某个租户一超标就能定位,不要等到全站超时才发现是某一个业务在刷量。
两个落地教训:一是配额定得太死会浪费算力,低峰期要允许租户借用闲置配额,但要有回收机制;二是优先级不是越高越好,高优先级队列本身也要限流,否则高优先级之间又会互相挤占。
你们多租户集群里,显存配额是按模型分还是按业务分?低优先级任务被抢占后怎么恢复,是重排还是断点续跑?
第一,显存配额:按租户划分 KV Cache 上限,不要让单个租户无限制增长;配额要按业务峰值留余量,同时设硬上限,超配额的请求排队而不是直接抢占别人的显存。第二,优先级调度:核心业务走高优先级队列,离线批量任务走低优先级,低优先级任务在高峰期要能被抢占和恢复,而不是一直占着卡。第三,请求级隔离:不同租户的请求不要混在同一个批处理里无差别调度,批处理要按租户配额切分,否则一个租户的长请求会拖慢整批的 TPOT。第四,可观测性:按租户统计 TTFT、TPOT、排队时间和显存占用,某个租户一超标就能定位,不要等到全站超时才发现是某一个业务在刷量。
两个落地教训:一是配额定得太死会浪费算力,低峰期要允许租户借用闲置配额,但要有回收机制;二是优先级不是越高越好,高优先级队列本身也要限流,否则高优先级之间又会互相挤占。
你们多租户集群里,显存配额是按模型分还是按业务分?低优先级任务被抢占后怎么恢复,是重排还是断点续跑?

