AIToday
Large Language ModelsDaily Dose of Data SciencePublished: Sep 2, 2026, 10:00 JST2 min read

LLM serving: why continuous batching wins

LLM serving: why continuous batching wins

Key takeaway

  • Continuous batching is the key to high LLM throughput. It re-decides the batch at every pass.

  • This keeps the GPU busy even with variable output lengths.

  • Static and dynamic batching both wait for the slowest sequence.

3 Key Points

  1. What happened

    A technical explainer compares three LLM serving strategies—static, dynamic, and continuous batching. It shows continuous batching, which re-decides the batch at every forward pass, delivers the most throughput and is the default in major engines like vLLM and SGLang.

  2. Why it matters

    Static batching runs at the pace of its slowest member, wasting GPU capacity and latency. Dynamic batching adds a timer but still waits for the slowest sequence. Continuous batching lets finished sequences leave and waiting ones join, keeping the GPU saturated even when output lengths vary widely.

  3. What to watch

    The article notes chunked prefill, which splits long prompts into smaller chunks, is on by default in vLLM V1. It also flags that there is no universal best chunk size—it depends on the model, GPU, prompt length distribution, and which latency metric your SLO measures.

Ask the AI about this article →

Context & Analysis

The article explains that a GPU's forward pass is bottlenecked on reading weights from memory, not on math. This is why batching helps: loading weights once and pushing many sequences through the same pass spreads the memory cost. However, LLMs are autoregressive—each pass produces one token and depends on previous ones—so a fixed batch runs at the pace of its slowest member.

Static batching works for fixed-output models like classifiers or embedding models, where every request finishes at nearly the same step. Dynamic batching adds a timer but still treats the batch as one unit, so fast requests wait for slow ones. Continuous batching, with iteration-level scheduling, is the only strategy that keeps the GPU saturated when output lengths vary.

The article also highlights chunked prefill as a technique to mitigate stutter when a long prompt joins the batch. It splits prompts into smaller chunks, giving the scheduler more chances to run decodes. There is no universal best chunk size—it depends on the model, GPU, prompt distribution, and the latency metric an SLO targets. For live traffic with variable output lengths, continuous batching is the only strategy that holds up, and every major engine enables it by default.

FAQ

What is the difference between static and continuous batching?
Static batching fixes the batch before it starts and runs until the slowest member finishes. Continuous batching re-decides at every forward pass, letting finished sequences leave and waiting requests join.
Why does static batching perform poorly with LLMs?
LLMs generate one token per pass and stop at unpredictable lengths, so a fixed batch runs at the pace of its slowest member. Widening output length spread dropped static batching to roughly 81 tokens per second, while continuous batching held an order of magnitude higher, per Anyscale.
Daily Dose of Data ScienceRead Original Article

Get the latest Large Language Models news every morning

For example, today's edition would include:

  • Anthropic releases Claude Fable 5.1 and Mythos 5.1ITmedia AI+ · 1h ago
  • Anthropic's Claude Fable 5.1 Now on Snowflake Cortex AISnowflake AI Blog · 1h ago
  • BenchMIRT: AI benchmarks may measure the wrong skillsHugging Face Blog · 1h ago

AI-summarized, only the topics you pick — one digest a day via Email, Slack, or Discord.

Free · takes 30 seconds · unsubscribe anytimeWhat is AIToday? →

Ask AI

Ask AI anything about this article. Q&As are published on this page for other readers too.

Related Articles

Next articleAnthropic's Claude Fable 5.1 Now on Snowflake Cortex AI