Weighted Round Robin (WRR) is a deterministic scheduling and load balancing algorithm that cycles through a list of servers in a fixed order, but assigns a numerical weight to each server to control the proportion of traffic it receives. Unlike standard round robin, which treats all servers equally, WRR accounts for heterogeneous capacity by allowing more powerful servers to handle a larger share of requests. For example, a server with a weight of 3 may receive three consecutive requests before the algorithm moves to the next server in the cycle.
Glossary
Weighted Round Robin

What is Weighted Round Robin?
Weighted round robin is a load balancing algorithm that distributes requests across servers in a cyclical fashion, but assigns a weight to each server to proportionally direct more traffic to servers with higher capacity.
The algorithm is fundamental in heterogeneous fleet orchestration, where resources like servers or autonomous mobile robots have differing processing power, battery life, or payload capacity. It provides predictable, static distribution based on pre-configured weights, making it simple to implement and efficient for workloads where server capabilities are known and stable. However, it lacks the dynamic adaptability of algorithms like least connections or weighted least connections, as it does not consider real-time server load or health.
Key Features of Weighted Round Robin
Weighted round robin is a deterministic load balancing algorithm that distributes requests in a cyclical order, but assigns a static weight to each server to proportionally direct more traffic to higher-capacity resources.
Static Weight Assignment
The core mechanism of weighted round robin is the assignment of a static integer weight to each server in the pool. This weight represents its relative capacity or priority. A server with a weight of 3 will receive approximately three times the number of connections over a cycle compared to a server with a weight of 1. Weights are typically configured by a system administrator based on hardware specifications like CPU cores, memory, or network bandwidth.
Deterministic, Cyclic Scheduling
Unlike dynamic algorithms, weighted round robin uses a predictable, cyclic sequence. The load balancer iterates through the server list in order. For each server, it sends a number of consecutive requests equal to its weight before moving to the next server. This creates a fixed distribution pattern that is easy to model and debug. For a pool with weights [3, 1, 2], the request sequence over one full cycle would be: A, A, A, B, C, C.
Handling Heterogeneous Resources
This algorithm is specifically designed for environments with non-identical servers. It prevents underutilization of powerful servers and overloading of weaker ones, which is a key limitation of standard round robin. In a heterogeneous fleet of Autonomous Mobile Robots (AMRs), weights could be assigned based on battery capacity, maximum payload, or specialized tooling (e.g., a forklift AMR gets a higher weight for pallet-moving tasks).
Low Computational Overhead
Weighted round robin has minimal runtime computational cost. The algorithm maintains a simple counter or pointer to track its position in the cycle. There is no need to calculate real-time metrics like response times or active connection counts. This makes it extremely efficient for high-throughput systems where the overhead of decision-making must be negligible, such as in network packet switches or foundational load balancers.
Lack of Real-Time Adaptability
A significant limitation is its static nature. The algorithm does not adapt to changing server conditions. If a high-weight server becomes slow or congested, it will continue to receive a disproportionate share of traffic until its weight is manually reconfigured. It does not account for:
- Current server load or CPU utilization
- Network latency to the server
- Varying request processing complexity This makes it unsuitable for environments where server performance fluctuates dynamically.
Common Use Cases & Examples
Weighted round robin is ideal for stable, predictable environments with known resource disparities.
- Network Load Balancers (Layer 4): Distributing TCP/UDP connections across backend servers with different hardware profiles.
- DNS Load Balancing: Assigning multiple IP addresses with different priorities (weights) in a DNS SRV record.
- Task Queues in Robotics: In a mixed fleet, a dispatcher might assign more simple transport tasks to low-cost, high-availability AMRs (weight=2) and fewer complex manipulation tasks to slower, specialized robotic arms (weight=1).
- Legacy System Integration: When integrating new, faster servers with older hardware in a pool.
Weighted Round Robin vs. Other Algorithms
A technical comparison of Weighted Round Robin against other common load balancing algorithms, focusing on their mechanisms, suitability for heterogeneous fleets, and operational trade-offs.
| Feature / Metric | Weighted Round Robin | Round Robin | Least Connections | IP Hash |
|---|---|---|---|---|
Core Distribution Mechanism | Cyclical with capacity-based weights | Strict, equal cyclical rotation | Dynamic selection based on current active connections | Deterministic hash of client IP address |
Handles Heterogeneous Capacity | ||||
Session Persistence (Sticky Sessions) | ||||
Dynamic Load Awareness | ||||
Predictable Request Order | ||||
Overhead & Computational Cost | Low | Very Low | Medium (requires state tracking) | Low |
Ideal For Heterogeneous Fleets | ||||
Typical Use Case | Servers/AMRs with known, static capacity differences | Identical, stateless servers | Long-lived or variable-duration connections (e.g., database pools) | Stateful applications requiring client affinity |
Use Cases and Examples
Weighted round robin is a foundational algorithm for proportional resource allocation. These examples illustrate its practical application across computational and physical orchestration systems.
Heterogeneous Robot Fleet Tasking
In a warehouse with mixed autonomous mobile robots (AMRs) and manual forklifts, WRR assigns more pick-and-place tasks to higher-capacity AMRs. A system might assign a weight of 3 to a high-speed robot and 1 to a slower manual cart, ensuring the fleet's total throughput is maximized by leveraging each agent's inherent capability. This prevents underutilization of premium assets while ensuring all agents contribute.
Microservices & API Gateway Routing
An API gateway can use WRR to route requests to different versions of a microservice or to instances in different availability zones. For a canary deployment, the stable version may have a weight of 95 and the new canary version a weight of 5, allowing a controlled, proportional rollout of new code to a small subset of traffic for validation before a full cutover.
GPU Cluster Job Scheduling
In a machine learning training cluster with heterogeneous GPUs (e.g., A100s and V100s), a job scheduler uses WRR to assign training jobs. An A100 (higher FLOPs) may have a weight of 8 and a V100 a weight of 3. The scheduler cycles through the GPU list, assigning more compute-intensive jobs to the A100s. This simple, predictable scheduling ensures high-value hardware is fully utilized, directly optimizing infrastructure cost control for AI workloads.
Frequently Asked Questions
Weighted Round Robin is a foundational algorithm for distributing workload across heterogeneous resources. These questions address its core mechanics, applications, and trade-offs in modern orchestration systems.
Weighted Round Robin (WRR) is a deterministic load balancing algorithm that distributes requests across a pool of servers in a cyclical order, but assigns a numerical weight to each server to proportionally direct more traffic to those with higher capacity. It works by maintaining a list of servers with their assigned weights. The algorithm cycles through the list, but instead of sending one request per server per cycle, it sends a number of requests equal to the server's weight before moving to the next server. For example, a server with a weight of 3 will receive three consecutive requests in a cycle, while a server with a weight of 1 receives one, ensuring traffic distribution matches predefined capacity ratios.
Key Mechanism:
- Each server is assigned a static or dynamic weight (e.g., based on CPU cores, RAM, or processing speed).
- A scheduler iterates through the server list, granting each server a number of request slots equal to its current weight.
- The cycle repeats indefinitely, providing predictable, proportional distribution.
In Heterogeneous Fleet Orchestration, WRR can allocate tasks to robots or vehicles based on their capability weight, such as battery level, payload capacity, or sensor suite.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Weighted round robin is one of several core algorithms used to distribute workload efficiently. These related terms define the broader landscape of traffic management and resource allocation strategies.
Round Robin
The foundational algorithm upon which weighted round robin is built. Round robin distributes requests sequentially and equally across all servers in a pool, treating each server as having identical capacity. It is a simple, stateless method but does not account for differences in server performance.
- Cyclical Distribution: Requests are assigned to Server A, then Server B, then Server C, and back to Server A.
- Use Case: Ideal for homogeneous server fleets where all instances have identical specifications and capabilities.
Least Connections
A dynamic load balancing algorithm that directs new requests to the server with the fewest active connections at that moment. Unlike static round-robin methods, it responds to real-time load.
- Real-Time Awareness: Continuously monitors the connection count on each backend server.
- Optimal for Long-Lived Connections: Particularly effective for protocols like databases or persistent websocket connections, where request duration varies significantly.
Weighted Least Connections
An advanced hybrid of weighted round robin and least connections. It selects the server with the lowest number of active connections, but normalizes this count by the server's assigned capacity weight.
- Formula: Effectively chooses the server with the smallest value of (Active Connections / Weight).
- Dynamic & Proportional: Provides the real-time responsiveness of least connections while respecting predefined server capacity tiers, making it highly efficient for heterogeneous, dynamic environments.
IP Hash
A deterministic load balancing algorithm that uses a hash function on the client's source IP address to select a backend server. This ensures session persistence, as all requests from a specific client IP are directed to the same server.
- Session Affinity: Crucial for stateful applications where user session data is stored locally on a server.
- Potential for Imbalance: Can lead to uneven load distribution if a small number of client IPs generate disproportionate traffic.
Health Check
A critical orchestration mechanism used by load balancers to determine server availability. Periodic probes (e.g., HTTP GET, TCP SYN) verify if a server is operational before traffic is routed to it.
- Failure Detection: Automatically removes unhealthy nodes from the server pool (draining).
- Liveness vs. Readiness: Liveness probes check if the server is running; readiness probes check if it can accept traffic (e.g., warmed up, connected to DB).
Consistent Hashing
A distributed hashing technique that minimizes reorganization when servers are added or removed from a pool. It maps both servers and requests onto a hash ring, ensuring only a fraction of keys need remapping during scaling events.
- Scalability: Essential for large, elastic caching systems (e.g., Redis clusters, CDNs) and distributed databases.
- Virtual Nodes: Uses multiple points ("vnodes") per physical server on the ring to ensure an even load distribution.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us