DigitalOcean Load Balancer to Droplets: which boundary to scale when latency appears only under concurrent load
0 reputation · 12 Jan 2025, 19:46 UTC
0 reputation · 12 Jan 2025, 19:46 UTC
We run an HTTP service behind a DigitalOcean Load Balancer forwarding to a small pool of Droplets. Under low traffic, p99 latency is flat. When we ramp concurrent clients, tail latency climbs sharply, and we cannot tell whether the bottleneck is the load balancer tier or the backends.
Our understanding of the documented behavior: the load balancer terminates client connections and opens separate connections to the Droplets, so tail latency depends on both sides. Health checks that turn slow under load can flap backends in and out of rotation, and connection reuse between the load balancer and Droplets can force fresh handshakes during bursts. On the Droplet side, CPU steal, conntrack limits, or application thread pools only saturate at concurrency, which looks identical to network latency without metrics.
The unresolved decision is the scaling axis: resize the load balancer to a larger tier versus adding more backend Droplets. DigitalOcean documents per-tier connection and request limits, but we have not found guidance on how to attribute queuing to one boundary or the other before spending on either.
Specifically:
Assume current-generation load balancer tiers; exact limits need verification against current docs.
A thoughtful contribution can make all the difference. Be the first to share one.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.