问题现象:远程5路并发调用mindie-service接口,上下文3-5K。前面2路会实时响应,后面3路出现阻塞,等到前两路结束后才会有输出。
问题分析:请求输入或并发数太大,decode序列将block数量占用完,会导致后续请求无法进行prefill,形成阻塞decode序列将block数量占用完,新入队的请求即使做完prefill,也没有剩余资源进行decode推理,也会导致请求无法进行prefill,形成阻塞。
解决办法:在满足实际上下文长度需求下,尽量降低mindie配置文件中maxSeqLen、maxmaxInputTokenLen、maxPrefillTokens、maxIterTimes几个相关参数设置。比如原先设置maxSeqLen:32000,maxmaxInputTokenLen:24000,maxPrefillTokens:24000,maxIterTimes:8000,改为maxSeqLen:12000,maxmaxInputTokenLen:8000,maxPrefillTokens:8000,maxIterTimes:4000,修改后支持的实时并发数从2路增加到6路。
问题现象:远程5路并发调用mindie-service接口,上下文3-5K。前面2路会实时响应,后面3路出现阻塞,等到前两路结束后才会有输出。
问题分析:请求输入或并发数太大,decode序列将block数量占用完,会导致后续请求无法进行prefill,形成阻塞decode序列将block数量占用完,新入队的请求即使做完prefill,也没有剩余资源进行decode推理,也会导致请求无法进行prefill,形成阻塞。
解决办法:在满足实际上下文长度需求下,尽量降低mindie配置文件中maxSeqLen、maxmaxInputTokenLen、maxPrefillTokens、maxIterTimes几个相关参数设置。比如原先设置maxSeqLen:32000,maxmaxInputTokenLen:24000,maxPrefillTokens:24000,maxIterTimes:8000,改为maxSeqLen:12000,maxmaxInputTokenLen:8000,maxPrefillTokens:8000,maxIterTimes:4000,修改后支持的实时并发数从2路增加到6路。