Problems / LLM serving, medium

More replicas, slower answers

Coding agents run 20-step tasks, 1 a second, on 8 self-hosted model replicas with prefix caching. An inference router spreads the calls round robin, so each step of a session lands on a different replica from the last.

Unlock it once for 15 credits; everything inside it is free (runs, changes, Submit, results, hints). Sign in with Google to start; new accounts get free credits.

Your goals

Success ≥ 95% of tasks, p99 ≤ 30 s.

Test cases

Like a coding problem, a solution has to pass every case, not just the one it was built for. Submit in the lab runs all 5; 1 of them are hidden until then.

  1. As given. The problem’s own traffic, scheduled failures and seed.
  2. Peak hour. 25% more traffic than the problem states, with the same failures.
  3. A slow dependency. The main data store or model answers twice as slowly for part of the run.
  4. A server dies. One replica of the service with the most replicas is killed for part of the run.

The traffic

1 requests a second for 45 seconds: 100% task (writes).

The system

What each component does in this design, and what calls it. The simulator mimics each one from these settings.

ComponentIts job hereSettings
Load balancerLoad balancerTraffic enters here.Calls Agent API.Layer 4 balancers route by IP and port; layer 7 balancers read HTTP and can route by path or header.–
Agent APIApp serviceLoad balancer forwards to it.Calls Agent orchestrator.Little's law: throughput ≈ concurrency ÷ latency. 200 slots at 50 ms serve about 4,000 req/s.3 replicas × 500 slots · timeout 180 s
Agent orchestratorAgent orchestratorAgent API calls it.Calls Inference router, MCP tool servers.An agent loops: think, call a tool, read the result, repeat until done.400 slots · 20 steps
GPU replica 1Self-hosted serving poolInference router forwards to it.GPU servers batch requests together; throughput rises with batch size until memory runs out.2 slots
GPU replica 2Self-hosted serving poolInference router forwards to it.GPU servers batch requests together; throughput rises with batch size until memory runs out.2 slots
GPU replica 3Self-hosted serving poolInference router forwards to it.GPU servers batch requests together; throughput rises with batch size until memory runs out.2 slots
GPU replica 4Self-hosted serving poolInference router forwards to it.GPU servers batch requests together; throughput rises with batch size until memory runs out.2 slots
GPU replica 5Self-hosted serving poolInference router forwards to it.GPU servers batch requests together; throughput rises with batch size until memory runs out.2 slots
GPU replica 6Self-hosted serving poolInference router forwards to it.GPU servers batch requests together; throughput rises with batch size until memory runs out.2 slots
GPU replica 7Self-hosted serving poolInference router forwards to it.GPU servers batch requests together; throughput rises with batch size until memory runs out.2 slots
GPU replica 8Self-hosted serving poolInference router forwards to it.GPU servers batch requests together; throughput rises with batch size until memory runs out.2 slots
Inference routerInference router (KV-aware)Agent orchestrator calls it.Calls GPU replica 1, GPU replica 2, GPU replica 3, GPU replica 4, GPU replica 5, GPU replica 6, GPU replica 7, GPU replica 8.Routing a session back to the replica that holds its prefix can raise KV-cache hit rates from about 20% to 75%.100000 slots
MCP tool serversTool / MCP serverAgent orchestrator calls it.Tools give the model actions such as search or database queries; each call is another round trip.2000 slots

More llm serving problems