Understanding Load Balancing: Types, Architectures, and Algorithms for High-Performance Clusters
This article explains the three main types of load balancing—DNS, hardware, and software—their advantages and disadvantages, typical combined architectures, and the key algorithms such as round robin, weighted round robin, least‑load, performance‑optimal, and hash‑based that drive high‑performance cluster scheduling.
High‑performance clusters are complex because they add a task scheduler and require appropriate allocation algorithms. A load balancer acts as the task scheduler; load balancing involves more than merely equalizing compute unit load.
Classification and Architecture
Common load balancing types are DNS load, hardware load, and software load.
1. DNS Load Balancing
Definition: Resolving the same domain name to different IP addresses, typically used for geographic load balancing. For example, northern and southern users receive different addresses.
Advantages: Simple, low cost, enables nearby access and faster response.
Disadvantages: Slow updates due to DNS caching, poor scalability, limited allocation strategies.
2. Hardware Load Balancing
Definition: Dedicated hardware devices (e.g., F5, A10) that perform load balancing.
Advantages: Powerful features (multi‑layer load, many algorithms, global load), high performance (over 1 million concurrent connections), high stability, built‑in security (firewall, DDoS protection).
Disadvantages: Expensive (starting around 150 k RMB, up to millions), limited extensibility.
3. Software Load Balancing
Definition: Load balancing implemented via software such as Nginx or LVS.
Advantages: Simple deployment and maintenance, inexpensive (just a Linux server), flexible for business‑specific extensions.
Disadvantages (vs. hardware): Moderate performance (≈50 k concurrent connections for Nginx), fewer features, typically lacks firewall/DDoS protection.
4. Typical Architecture
The three mechanisms can be combined: DNS for geographic distribution, hardware for cluster‑level balancing, and software for machine‑level balancing.
Algorithms
Load‑balancing algorithms are grouped into four categories based on their goals: task‑level distribution (equal count, proportion, weight), load‑aware distribution (CPU, connections, I/O), performance‑optimal distribution (fastest response), and hash‑based distribution (consistent hashing).
1. Round Robin
Definition: Assign tasks to servers sequentially without considering server state. Simple but may ignore unhealthy servers.
2. Weighted Round Robin
Definition: Variant of round robin that uses static server weights to reflect hardware capacity. Still ignores real‑time server health.
3. Least Load First
Definition: Assign tasks to the server with the lowest current load (e.g., connections, CPU, I/O). Improves over round robin but adds complexity for load monitoring.
4. Performance‑Optimal
Definition: From the client’s perspective, direct tasks to the server with the fastest response time. Requires frequent performance measurement.
5. Hash‑Based
Definition: Compute a hash on key request attributes (source IP, session ID) and route identical hash values to the same server, useful for stateful sessions.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
MaGe Linux Operations
Founded in 2009, MaGe Education is a top Chinese high‑end IT training brand. Its graduates earn 12K+ RMB salaries, and the school has trained tens of thousands of students. It offers high‑pay courses in Linux cloud operations, Python full‑stack, automation, data analysis, AI, and Go high‑concurrency architecture. Thanks to quality courses and a solid reputation, it has talent partnerships with numerous internet firms.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
