6.12 billion requests, 9,174 models, one full year of unsampled production traces โ the most comprehensive study of LLM serving workload behavior published to date.
A Year in LLM Serving: Workload Evolution, Caching and Load-Balancing
๐ Overview
A year of request-level production traces (April 2025 โ April 2026) from Chutes, covering 6.12B requests, 314K users, and 9,174 models. For the first time, the full unsampled picture of LLM serving behavior โ including prefix cache reuse and per-instance load โ is available for analysis and replay.
โ ๏ธ The problem being solved
Existing workload studies are short, sampled, or single-model, making it impossible to evaluate serving system designs under production-representative conditions. This paper closes that gap with a trace researchers can replay directly.
๐ฌ Key findings
ยท Workloads are non-stationary: request count and actual serving cost follow different trends โ short windows are insufficient for capacity planning
ยท Output tokens trend shorter: from hundreds early in the trace to below 100 by year-end
ยท 99% of cache reuse arrives within 15 minutes of the previous request (80% within 0.1 seconds)
ยท LRU matches or beats complex algorithms in most cases; ARC substantially underperforms at intermediate cache sizes
ยท Cache-first routing substantially outperforms round-robin and load-first, with load imbalance remaining within 5โ7%
ยท Sticky routing (user pinning) achieves the highest hit ratios but with orders-of-magnitude worse load imbalance โ not practical
๐ Experimental results
A 100K-token MiniMax-M2.5 request occupies ~27GB of KV state, requiring ~20.4GB of network transfer per cross-instance move. Routing volatility directly induces KV replication, creating a fundamental tradeoff between cache locality and load balance. Cache-first preserves locality while keeping imbalance low because the workload contains many single-turn sessions.
#
LLM# #
MLSystems#