{"id":27,"date":"2021-03-11T20:39:43","date_gmt":"2021-03-11T19:39:43","guid":{"rendered":"https:\/\/www.kth.se\/blogs\/nslab\/?p=27"},"modified":"2021-03-11T20:39:43","modified_gmt":"2021-03-11T19:39:43","slug":"our-conext-2019-paper-rss-load-and-state-aware-receive-side-scaling","status":"publish","type":"post","link":"https:\/\/www.kth.se\/blogs\/nslab\/2021\/03\/our-conext-2019-paper-rss-load-and-state-aware-receive-side-scaling\/","title":{"rendered":"Our CoNEXT 2019 paper &#8220;RSS++: load and state-aware receive side scaling&#8221;"},"content":{"rendered":"<div class=\"post-content-wrapper\"><div class=\"paperinfo-c\">\n<div class=\"paperinfo-i paperinfo-i-expand\">\n<div class=\"paperinfo-abstract\">\n<div class=\"pg\">\n<div class=\"pavb abstract format1\" data-format=\"1\">\n<div class=\"rm rml\">\n<p style=\"text-align: left\">While the current literature typically focuses on load-balancing among multiple servers, in <strong><a href=\"http:\/\/kth.diva-portal.org\/smash\/get\/diva2:1371780\/FULLTEXT01.pdf\">our upcoming CoNEXT 2019 paper<\/a><\/strong>, we demonstrate the importance of load-balancing within a single machine (potentially with hundreds of CPU cores). In this context, we propose a new load-balancing technique (RSS++) that dynamically modifies the receive side scaling (RSS) indirection table to spread the load across the CPU cores in a more optimal way. RSS++ incurs up to 14x lower 95th percentile tail latency and orders of magnitude fewer packet drops compared to RSS under high CPU utilization. RSS++ allows higher CPU utilization and dynamic scaling of the number of allocated CPU cores to accommodate the input load, while avoiding the typical 25% over-provisioning. RSS++ has been implemented for both (i) DPDK and (ii) the Linux kernel. Additionally, we implement a new state migration technique, which facilitates sharding and reduces contention between CPU cores accessing per-flow data. RSS++ keeps the flow-state by groups that can be migrated at once, leading to a 20% higher efficiency than a state of the art shared flow table.<\/p>\n<p>This is joint work with Tom Barbette, Georgios P. Katsikas, Gerald Q. Maguire Jr., and Dejan Kostic<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"paperinfo-c\">\n<div class=\"paperinfo-i\">\n<div class=\"pg\"><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>While the current literature typically focuses on load-balancing among multiple servers, in our upcoming CoNEXT 2019 paper, we demonstrate the importance of load-balancing within a single machine (potentially with hundreds of CPU cores). In this context, we propose a new load-balancing technique (RSS++) that dynamically modifies the receive side scaling (RSS) indirection table to spread [&hellip;]<\/p>\n","protected":false},"author":621,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-27","post","type-post","status-publish","format-standard","hentry","category-okategoriserat"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.kth.se\/blogs\/nslab\/wp-json\/wp\/v2\/posts\/27","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kth.se\/blogs\/nslab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kth.se\/blogs\/nslab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kth.se\/blogs\/nslab\/wp-json\/wp\/v2\/users\/621"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kth.se\/blogs\/nslab\/wp-json\/wp\/v2\/comments?post=27"}],"version-history":[{"count":1,"href":"https:\/\/www.kth.se\/blogs\/nslab\/wp-json\/wp\/v2\/posts\/27\/revisions"}],"predecessor-version":[{"id":28,"href":"https:\/\/www.kth.se\/blogs\/nslab\/wp-json\/wp\/v2\/posts\/27\/revisions\/28"}],"wp:attachment":[{"href":"https:\/\/www.kth.se\/blogs\/nslab\/wp-json\/wp\/v2\/media?parent=27"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kth.se\/blogs\/nslab\/wp-json\/wp\/v2\/categories?post=27"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kth.se\/blogs\/nslab\/wp-json\/wp\/v2\/tags?post=27"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}