BetterSWE DigestWhat is BetterSWE?

Deep Dive · Issue 20

How Burst Traffic Kills LLM Serving

A sudden flood of long prompts exposes four failure modes stacked across compute, scheduling, memory, and network.

Burst of long prompts hitting a GPU, decodes frozen

The prefill-decode collision

A Burst of Long Prompts Freezes Every Active Decode

Burst of long prompts hitting a GPU, decodes frozen

LLM inference runs in two phases. Prefill computes the attention for an entire prompt in one shot and is compute-bound, eating GPU FLOPs. Decode generates tokens one at a time and is memory-bound, limited by how fast the KV cache can be read. Under steady load, a serving engine interleaves these phases comfortably. A burst of new long prompts breaks that balance.

In a prefill-prioritizing scheduler like vLLM, a burst forces the system to pause every ongoing decode to compute the incoming prefills. A 32K-token prefill can hog 80-95% of the GPU for 2-8 seconds, starving ~200 concurrent decode users who may receive only 1 token in 5-10 seconds. The GPU is busy, the users are stuck, and adding more GPUs does not help because the problem is scheduling, not capacity.

A prefill burst stalls every active decode at once

Sarathi-Serve fixes this with chunked prefills: instead of computing a 4096-token prompt in one shot, it splits the prompt into 8 chunks of 512 tokens and interleaves them with running decodes in the same batch. New requests join without pausing anyone. This stall-free scheduling achieves up to 2.6× higher throughput for Mistral-7B on A100s and up to 5.6× for Falcon-180B with pipeline parallelism.

Head-of-line blocking

FCFS Scheduling Turns 90% of Latency Into Queue Wait

Long job blocking short jobs in a FCFS queue

Most serving engines schedule requests first-come-first-served with run-to-completion: once a request starts decoding, it runs until it emits its last token. Real-world LLM workloads from traces like ShareGPT and Alpaca have highly skewed, long-tail output length distributions. A few requests generate thousands of tokens while most finish in under a hundred.

Under burst traffic, a long job that arrived first blocks every short job behind it. Up to 90% of total latency can be pure queuing delay, not compute. The GPU finishes the work fast enough; the requests just sit in line.

  1. Long job arrives (2000 tokens)
  2. 10 short jobs arrive (50 tokens each)
  3. Long job starts decoding (holds GPU)
  4. Short jobs wait (90% of their latency)

FastServe replaces FCFS with a skip-join Multi-Level Feedback Queue that preempts at the token level, not the request level. Short jobs get boosted to a high-priority queue and bypass long ones mid-decode. The long job is paused, the short job runs, and the long job resumes when capacity frees up. Under the same average latency targets, this improves throughput by up to 31.4× compared to vLLM.

Memory allocation waste

Burst Concurrency Fragments VRAM and Halves Effective Capacity

VRAM fragmentation from naive contiguous allocation

When a burst of concurrent requests arrives, each needs KV cache space. Naive allocation pre-reserves a contiguous VRAM block sized for the maximum sequence length of every incoming request, even if the actual output is short. Under bursty multi-user loads, most of that reserved space is never touched.

The waste is severe. Naive allocation burns 60-80% of the KV cache budget on reserved-but-unused memory. On a 40GB A100, this drops effective capacity from ~50 concurrent sequences down to ~20. The GPU has room for 50; fragmentation leaves it serving 20.

Naive allocation reserves max-length blocks (gray = wasted). PagedAttention fills the same VRAM with 16-token blocks on demand.

PagedAttention, introduced in vLLM, divides the KV cache into fixed-size physical blocks of 16 tokens allocated on demand. A request that generates 50 tokens uses 4 blocks, not a 2048-token slab. Waste drops to under 4%, and a 40GB A100 recovers its full ~50-sequence capacity.

KV cache transfer saturation

Agentic Bursts Saturate the Network Moving KV State

Storage NIC saturation in disaggregated LLM serving under agentic burst

Multi-turn agentic applications accumulate long contexts, up to 1M tokens over hundreds of turns. Because most context is reused across turns, KV cache hit rates are typically ≥95%. A burst of agentic requests means loading massive cached KV states from external storage into the serving cluster.

Standard disaggregated architectures route all this traffic through prefill engines. An H200 prefill instance can produce around 60 GB/s of KV traffic, saturating prefill-side storage NICs while decode engine NICs sit idle. The bottleneck is the network path the KV cache takes, not the compute.

Standard path funnels all KV traffic through prefill NICs. DualPath adds a direct storage-to-decode route via RDMA.

DualPath introduces a dual-path loading mechanism: KV cache loads directly into decoding engines and transfers to prefill engines via RDMA over the compute network, bypassing the saturated storage NICs. This improves offline inference throughput by up to 1.87× and online serving throughput by an average of 1.96× without violating SLOs.

The KV Wall: why dense models cannot go cross-datacenter

In disaggregated prefill-decode architectures, burst traffic requires moving large KV states over the network. A dense model like MiniMax-M2.5 at 32K tokens emits ~60 Gbps of KV traffic per instance, exceeding typical cross-datacenter egress limits. This is the "KV Wall": the rate at which KV state must be exported makes cross-datacenter disaggregation unrealistic for dense attention.

Hybrid attention architectures like MiMo-V2-Flash drop KV export to 4.66 Gbps by keeping only a small sliding window in full attention and offloading the rest. That makes cross-cluster "Prefill-as-a-Service" viable, with routing decisions based on how much of the prefix is uncached.

The wrap

Burst Traffic Breaks Four Layers, Not One

Why it matters

Burst traffic is the stress test that separates a serving architecture that works on benchmarks from one that works in production. Each layer of the stack, compute scheduling, request queuing, memory allocation, and network transfer, has its own failure mode under burst, and fixing one does not fix the others. The systems that survive are the ones designed assuming traffic arrives in floods, not in a steady stream.

The short version

  • A **32K-token prefill** can freeze 200 active decodes for 2–8 seconds; **chunked prefills** (Sarathi-Serve) restore up to **5.6× throughput**.
  • FCFS scheduling turns **90% of latency** into queue wait; **iteration-level preemption** (FastServe) improves throughput by up to **31.4×**.
  • Naive VRAM allocation wastes **60–80%** of KV cache budget; **PagedAttention** drops waste to under **4%** by allocating 16-token blocks on demand.
  • Agentic bursts saturate prefill-side storage NICs at **60 GB/s**; **DualPath** routes KV loads directly to decode engines for **~2× throughput**.
  • Dense models hit a **KV Wall** at ~60 Gbps per instance; hybrid attention cuts it to **4.66 Gbps**, making cross-cluster serving viable.

Sources

  1. 1.DualPath: Breaking the Storage Bandwidth Bottleneck in Agentic LLM Inference
  2. 2.LLM Inference from First Principles: KV Cache and Serving
  3. 3.Breaking The KV Wall for Next Generation LLM Serving
  4. 4.LLM Serving Challenges: KV Cache and Batching
  5. 5.SIGCOMM'26: Service-Aware KV Cache Compression for Communication-Efficient Disaggregated LLM Serving
  6. 6.Fast Distributed Inference Serving for Large Language Models
  7. 7.Paper page - Fast Distributed Inference Serving for Large Language Models
  8. 8."The Effect of Scheduling and Preemption on the Efficiency of LLM Inference Serving"
  9. 11.Sarathi-Serve: Taming the Throughput–Latency Tradeoff in LLM Inference — Technical Review | Zhongzhu / Charlie
  10. 12.Taming Throughput-Latency Tradeoff in LLM Inference with ...