The Sockets That Stayed

Six identical servers sit behind an L4 balancer configured for round robin. Clients hold long-lived WebSocket connections that last anywhere from a minute to several hours. After a day of traffic, two servers sit near 90% CPU while two others idle around 30%. What explains the skew?

A

Round robin always targets the least recently used backend, so its spread stays even and the skew must come from unequal hardware in the pool

B

Round robin equalizes connections handed out, not connections still open, so hosts that drew long-lived clients pile up

C

The balancer is hashing client IP, so every user behind one corporate NAT lands on the same backend host

D

TCP keepalive probes re-pin each client to the backend that answered first, so the rotation only applies to connections that go fully idle