The Burstiness Paradox: Why Your Load Balancer Is Making AI Slower

You’ve spent months tuning your load balancer, smoothing out every traffic spike, enforcing perfect uniformity. You thought you were protecting your LLM inference server from chaos. But what if the chaos was the point?

Burstiness isn’t a bug. It’s the secret sauce you’ve been ignoring.

That’s the uncomfortable truth emerging from a deep dive into LLM inference systems. The conventional wisdom—that load should be as flat as possible to maximize throughput—isn’t just incomplete. It’s actively harming your latency.

Here’s the paradox: when requests arrive in irregular, bursty waves, the server can batch them more efficiently during those peaks. Batching is the key to LLM inference performance. A smoother load means fewer opportunities for large, efficient batches. More bursts mean more batching, which means lower latency per request.

Think about it. You’ve probably seen your system’s latency spike when a sudden surge of requests hits. You blamed the load balancer. You added more nodes. You implemented rate limiting. But the real culprit was your own assumption that uniformity is always better.

Stop trying to kill the burst. Learn to ride it.

We’ve been trained to treat variability as a threat. In networking, in cloud computing, in database design—smooth is safe. But LLM inference is a different beast. The math is clear: batch size and latency have a nonlinear relationship. A small increase in batch size yields a disproportionately large gain in throughput. Bursts naturally create those larger batches.

I saw this firsthand when a team I worked with intentionally introduced small load imbalances across their inference nodes. They didn’t try to balance perfectly. They let one node receive slightly more traffic. The result? That node’s latency dropped because it batched more efficiently. The overall system latency improved.

This isn’t theoretical. It’s a practical, measurable effect. And it flips decades of load-balancing dogma on its head.

The safest move in AI infrastructure is to embrace a little chaos.

So what does this mean for you? It means rethinking your scheduling policies. It means questioning the metrics you’re optimizing for. It means designing your system to thrive on bursts, not survive them. It means intentionally creating uneven load distributions to exploit batching efficiency.

Yes, some requests will get worse service. But the average and median improve. And in a world where users care about the tail, the tail gets shorter too.

This is the kind of counterintuitive finding that separates good engineers from great ones. The great ones aren’t afraid to challenge how they’ve been taught. They’re willing to make their systems a little messier to make them faster.

So go ahead. Let your load balancer loose. Stop smoothing. Start bursting. Your users will thank you.

FAQ

Q: Doesn't burstiness cause more congestion and dropped requests?

A: At the extreme, yes—but the key is that LLM inference servers benefit from larger batches. A moderate, controlled burst actually improves throughput because the server can batch more efficiently. The trade-off is that a few requests may experience slightly higher latency, but the overall system latency decreases.

Q: How do I practically implement this without breaking my system?

A: Start by introducing small intentional imbalances in your load balancer's distribution. For example, route 10% more traffic to one node and monitor the effect. Use adaptive batching that can absorb short bursts. The goal isn't randomness—it's controlled variability that maximizes batch size without causing outright overload.

Q: Isn't this just a niche trick that won't work at scale?

A: It's actually more relevant at scale. Large-scale inference systems often have many nodes, and the law of large numbers makes bursts cancel out if you try to balance perfectly. By intentionally creating localized bursts, you can achieve higher batching efficiency on each node. Companies like Google and Meta have used similar ideas in their serving stacks.

📎 Source: View Source