Receive Side Scaling (RSS): How Do Network Cards Utilize All CPU Cores?
HomepageArticlesReceive Side Scaling (RSS): How Do Network Car...
Receive Side Scaling (RSS): How Do Network Cards Utilize All CPU Cores?
Introduction
As network speeds have evolved to 10, 25, 40, and even 100 Gbps, relying on a single CPU core to process all incoming network traffic is no longer practical.
If every incoming packet is handled by just one core, that core quickly becomes a bottleneck while the remaining CPU cores stay largely idle. To solve this problem, modern network adapters implement Receive Side Scaling (RSS).
What Is Receive Side Scaling (RSS)?
Receive Side Scaling (RSS) is a technology built into modern Network Interface Cards (NICs) that distributes incoming network packets across multiple CPU cores instead of sending them all to a single core.
This enables servers to fully leverage multi-core processors, improving network throughput, scalability, and overall system performance.
How Does RSS Work?
When packets arrive at the network interface card:
The NIC calculates a hash value based on connection information such as source and destination IP addresses, port numbers, and protocol.
Each network flow is assigned to a specific receive queue.
Every receive queue is associated with a different CPU core.
Multiple CPU cores process incoming packets in parallel while maintaining packet order for each individual connection.
This parallel processing significantly increases the server's ability to handle high network traffic efficiently.
Benefits of Receive Side Scaling
Improved Performance
RSS distributes network processing across multiple CPU cores instead of overloading a single core.
Higher Network Throughput
By utilizing multiple cores simultaneously, servers can process a significantly larger number of packets per second.
Lower Latency
Packets spend less time waiting to be processed, resulting in faster response times for network applications.
Better Application Performance
Applications such as web servers, databases, cloud services, and virtualization platforms benefit from more balanced CPU utilization and improved networking efficiency.
Where Is RSS Commonly Used?
Nginx and Apache web servers
Database servers
Hypervisors
Kubernetes clusters
Network-attached storage (NAS) and storage systems
RSS and Multi-Queue Networking
RSS relies on multiple receive queues within the network interface card.
Instead of directing all incoming traffic to a single queue, the NIC distributes different network flows across multiple queues. Each queue is assigned to a different CPU core, allowing packet processing to occur in parallel and maximizing the efficiency of multi-core processors.
Best Practices
Enable RSS in the operating system.
Keep the network adapter drivers up to date.
Configure the number of receive queues to match the available CPU cores and workload.
Monitor CPU load distribution using system performance monitoring tools to ensure traffic is balanced effectively.
FAQ
Do All Network Cards Support RSS?
No. RSS is primarily available on modern and enterprise-grade network adapters, although most contemporary server NICs support it.
Does RSS Increase Internet Speed?
No. RSS does not increase the bandwidth of the network connection itself. Instead, it improves the server's ability to process a larger number of packets and concurrent network connections more efficiently.
Conclusion
Receive Side Scaling (RSS) is a key networking technology that enables modern servers to take full advantage of multi-core processors. By distributing incoming network traffic across multiple CPU cores, RSS improves throughput, reduces latency, eliminates CPU bottlenecks, and enhances the performance of high-traffic workloads such as web servers, databases, virtualization platforms, and cloud-native applications.