Paper: RSS++: load and state-aware receive side scaling
Conference paper in CoNEXT 2019
While the current literature typically focuses on load-balancingamong multiple servers, in this paper, we demonstrate theimportance of load-balancingwithina single machine (potentiallywith hundreds of CPU cores). In this context, we propose a newload-balancing technique (RSS++) that dynamically modifies thereceive side scaling (RSS) indirection table to spread the load acrossthe CPU cores in a more optimal way. RSS++ incurs up to 14xlower 95thpercentile tail latency and orders of magnitude fewerpacket drops compared to RSS under high CPU utilization. RSS++allows higher CPU utilization and dynamic scaling of the number ofallocated CPU cores to accommodate the input load while avoidingthe typical25%over-provisioning.
RSS++ has been implemented for both(i)DPDK and(ii)theLinux kernel. Additionally, we implement a new state migrationtechnique which facilitates sharding and reduces contentionbetween CPU cores accessing per-flow data. RSS++ keeps the flow-state by groups that can be migrated at once, leading to a 20% higherefficiency than a state of the art shared flow table
More information is available on ULTRA blog .