Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Better: distribute to the instance with the lowest % CPU by default, ala the Google Cloud NLB.


This is what ELB Classic did for a long time - but we're experimenting with new algorithms. The problem with this approach is that it's not cache friendly.

When you bring in a new server to a busy workload, it gets all of the new connections. That can put a lot of pressure on that host - and if the application relies on caching, which most do in some form, it can really make performance terrible and even trigger cascading failures.

Another problem is that if a single host is broken or misconfigured, throwing 500 errors, it is often also the fastest and lowest CPU box, because that isn't very expensive. It can suck in and blackhole all of the traffic.

Based on how these issues work out at scale, we've moved beyond simple load based load balancing (I know that sounds counter-intuitive) and into algorithms that try to achieve a better balance for a wider range of scenarios.


That's very hard to get right. If you don't have exactly the right cool downs and back offs, you get oscillating load.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: