A worked example, rendered from real sample data. Sign in to run the tool on your own input.
algorithm=round-robin
upstreams=web-01,web-02,web-03
requests=1000
weights=1,1,1
seed=demo═══ What this tool did ═══
✗ No traffic was sent anywhere and nothing was measured from your infrastructure. There are no latency, CPU or health numbers here — none could be real. This page runs entirely on the server that rendered it and makes no outbound network calls.
✓ The distribution below is produced by running the actual selection algorithm 1,000 times over the pool you described. Round-robin, weighted round-robin and consistent hashing are exact; the ones that need traffic use a seeded generator, so the same seed always gives the same result.
═══ Pool ═══
Algorithm: round-robin
Upstreams: 3
Requests simulated: 1,000
Seed: demo
upstream weight share of weight
-------- ------ ---------------
web-01 1 33.3%
web-02 1 33.3%
web-03 1 33.3%
═══ Distribution ═══
upstream requests share vs even split vs its weight
-------- -------- ------ ------------- -------------
web-01 334 33.40% +1 100.2%
web-02 333 33.30% -0 99.9%
web-03 333 33.30% -0 99.9%
Spread: 333 … 334 requests (0.10% of total)
Gini coefficient: 0.0007 (0 = perfectly even)
ℹ Plain round-robin ignores weights entirely and gives every upstream exactly the same number of requests.
═══ Config for this pool ═══
upstream backend {
server web-01 max_fails=3 fail_timeout=10s;
server web-02 max_fails=3 fail_timeout=10s;
server web-03 max_fails=3 fail_timeout=10s;
keepalive 64;
}
═══ What this arithmetic cannot tell you ═══
• An even request count is not an even load. One upstream serving the slow endpoin
…
Run real round-robin, nginx smooth weighted, ketama consistent-hash, least-connections and power-of-two selection over a pool you describe. Part of the DevTools Surf developer suite. Browse more tools in the Developer Utilities collection.