单请求延迟 300ms,并发到 20 之后变成 3 秒。

原因:默认配置下,服务会把请求攒成批次一起算。批次越大吞吐越高,但排队时间也越长。

调参方向:

  • max_batch_size 调小,牺牲吞吐换延迟
  • max_wait_ms 调小,别等太久攒批
  • 用连续批处理(continuous batching),新请求可以插进正在跑的批次

我的场景是交互式,用户等不了,所以把 batch 压到 4,延迟稳定在 500ms 左右。

如果是离线批处理,反过来,batch 越大越好。

结论:这类参数没有最优值,取决于你的场景是延迟敏感还是吞吐敏感。

主楼